rxing -wasm (英语)
WASM 用于常见的 rxing 函数 。 国家预防机制的联系是: https://www.npmjs.com/package/@deviceflow/rxing-wasm (中文(简体) ) 生锈的源头 https://github.com/deviceflow/rxing-wasm 页面存档备份,存于互联网档案馆。 。 。 .
这个叉子和 上游软件包时,除 wasm-pack 与 --web 旗帜.
用 v. 3. 0 解码多断层变化
版本 0.3.0 现在返回 BarcodeResult 在原生的javascript阵列中的对象。 这完全破坏了旧方法
它返回了内部状态的自定义对象.
数据
这个 convert_js_image_to_luma 函数用于将画布图像数据转换为 luma 8
rxing 所期望的格式。 下面可能有一个例子.
function decodeBarcode(canvas) {
let context = canvas.getContext('2d');
let height = canvas.height;
let width = canvas.width;
let imageData = context.getImageData(0, 0, width, height);
let data = imageData.data;
let luma8Data = convert_js_image_to_luma(data);
let parsedBarcode = decode_barcode(luma8Data, width, height);
return parsedBarcode;
}
这个 convert_canvas_to_luma 函数用于将画布转换为 luma 8
rxing 所期望的格式。 下面可能有一个例子.
function decodeBarcode(canvas) {
let height = canvas.height;
let width = canvas.width;
let luma8Data = convert_canvas_to_luma(canvas);
let parsedBarcode = decode_barcode(luma8Data, width, height);
return parsedBarcode;
}
这个 convert_imagedata_to_luma 函数用于将图像数据对象转换为 luma 8
rxing 所期望的格式。 下面可能有一个例子.
function decodeBarcode(canvas) {
let context = canvas.getContext('2d');
let height = canvas.height;
let width = canvas.width;
let imageData = context.getImageData(0, 0, width, height);
let luma8Data = convert_imagedata_to_luma(imageData);
let parsedBarcode = decode_barcode(luma8Data, width, height);
return parsedBarcode;
}
提示
使用 DecodeHintDictionary 类
添加提示为 set_hint(hint: DecodeHintTypes, value: string)函数返回 true 如果添加提示,则 false 如果不是的话。 提示值必须是 number 表示为 DecodeHintTypes。最容易使用的方法就是简单地通过其中的一个值 DecodeHintTypes。 。 。 .
使用 remove_hint(hint: DecodeHintTypes)函数返回 true 如果提示存在并删除 false 否则。 提示值与添加 hint 函数相同.
DecodeHintTypes 数值
以下数值可用于: DecodeHintTypes um.
Other:未指定,应用程序专用提示. 这可以是任意的字符串,只有一些解码员关心这个值.PureBarcode:图像是条码的纯单色图像. 应该是带"真"或"假"的绳子.PossibleFormats:一个逗号分隔列表(元素之间没有空格),其中有要搜索的条码格式的名称. 例如,寻找一个QrCode和一个Datamatrix,人们会在字符串"qrcode,datamatrix"中通过.TryHarder:多花点时间尝试找条码;优化精度而非速度. 用"真"或"假"来串.CharacterSet: 指定在解码时使用的字符编码。 这应该是字符编码的字符串映射.AllowedLengths: 允许编码数据长度 -- 拒绝其他任何内容。 逗号分隔的整数列表 .AssumeCode39CheckDigit:假设代码39使用支票数字。 有"真"或"假"的字符串.AssumeGs1:假设条码作为GS1条码处理,并根据需要修改行为. 例如,这影响到FNC1对代码128(aka GS1-128)的处理。 有"真"或"假"的字符串.ReturnCodabarStartEnd:如果为真,则返回Codabar条码中的起始和结尾数字,而不是剥去它们。 它们是α的,而其他的则是数字. 默认情况下,它们被剥去,但这使他们无法脱去. 有"真"或"假"的字符串.NeedResultPointCallback: 当找到可能的“结果点”时,需要通过召回方式通知呼叫者。 目前不支持 。 未来会映射到 a(x:数字,y:数字)=QQ函数.AllowedEanExtensions: EAN或UPC条码允许的扩展长度. 其他格式会忽略这一点. 被允许扩展长度的逗号分离列表,例如"2","5"或"2". 如果有扩展名是可选的, 请不要设置此提示 。 如果设置了这个系统,并找到刚果爱国者联盟或EAN条码,但扩展码没有,则完全不会返回结果.AlsoInverted: 如果真实, 也尝试解码为倒转图像 。 所有已配置的解码器都简单地称为有倒转图像的第二次. 有"真"或"假"的字符串.
结果元数据
结果元数据现在可通过 get_result_metadata_name 方法 BarcodeResult 课。 返回的结果是 Javascript Map 对象表示可用的解码元数据。 可能的密钥有:
OTHEROrientationByte_SegmentsError_Correction_LevelIssue_NumberSuggested_PricePossible_CountryUPC/EAN_ExtensionPDF417_Extra_MetaDataStructured_Append_SequenceStructured_Append_ParitySymbology_IdentifierIs_MirroredContent_Type
必须指出,并非所有的价值观都将为所有成果确定.
职能
pub fn convert_js_image_to_luma(data: &[u8]) -> Vec<u8>;
pub fn encode_barcode(
data: &str,
width: u32,
height: u32,
bc_type: BarcodeFormat,
) -> Result<String, String>;
pub fn decode_barcode(
data: Vec<u8>,
width: u32,
height: u32,
try_harder: Option<bool>,
) -> Result<BarcodeResult, String>;
pub fn decode_barcode_with_hints(
data: Vec<u8>,
width: u32,
height: u32,
hints: &mut decode_hints::DecodeHintDictionary,
) -> Result<BarcodeResult, String>;
pub fn decode_multi(
data: Vec<u8>,
width: u32,
height: u32,
hints: &mut decode_hints::DecodeHintDictionary,
filter_image: Option<bool>,
) -> Result<Vec<BarcodeResult>, String>;
pub fn encode_barcode_with_hints(
data: &str,
width: u32,
height: u32,
bc_type: BarcodeFormat,
hints: &mut EncodeHintDictionary,
) -> Result<String, String>;
贝塔特性
encode_barcode_with_hints 目前为α。 产出和行为是出乎意料的,而且记录也很差。 自身风险使用,特性可能改变,界面不稳定.