2021SC@SDUSC
截止到上篇博客,Zxing的关键解码部分基本解释完毕,这一篇博客主要讲解返回文本内容的方法,不涉及复杂算法,因此只介绍如何调用。
注:构造方法中提及的ResultPoint中存放的就是上图标明的辨识二维码的标志位的坐标信息
这里提到的格式基本都在博客(一)中有介绍
/*枚举此包已知的条形码格式。*/
public enum BarcodeFormat {
/*Aztec二维条码格式*/
AZTEC,
/*CODABAR 1D 格式*/
CODABAR,
/*Code 39 1D 格式*/
CODE_39,
/*Code 93 1D 格式*/
CODE_93,
/*Code 128 1D 格式*/
CODE_128,
/*Data Matrix 二维码格式*/
DATA_MATRIX,
/** EAN-8 1D 格式. */
EAN_8,
/** EAN-13 1D format. */
EAN_13,
/** ITF (Interleaved Two of Five) 1D 格式. */
ITF,
/*MaxiCode 二维码格式*/
MAXICODE,
/*PDF417 格式*/
PDF_417,
/*QR Code 二维码格式*/
QR_CODE,
/** RSS 14 */
RSS_14,
/** RSS EXPANDED */
RSS_EXPANDED,
/** UPC-A 1D format. */
UPC_A,
/** UPC-E 1D format. */
UPC_E,
/** UPC/EAN extension format. Not a stand-alone format. */
UPC_EAN_EXTENSION
}
常见一维条码编码格式介绍
在线条码生成器
常见二维条码编码格式介绍
/*表示解码器想要向调用者传回的有关解码结果的类型。*/
public enum ResultMetadataType {
/*未指定的、特定于应用程序的元数据。映射到未指定的对象。*/
OTHER,
/**表示图像中条码可能的近似方向。这个值以从正常的垂直方向顺时针旋转的角度给出。例如,一个从上到下读取的1D条形码将被认为具有“90”方向。这个键映射到一个Integer,其值在[0,360]范围内。*/
ORIENTATION,
/**
*2D条码格式通常对文本进行编码,但也允许一种“字节模式”,这种模式有时被用于编码二进制数据。
*虽然Result在这些格式的条形码中提供了完整的原始字节,但它并不只提供来自字节段的字节。
*这将映射到一个字节数组列表,该列表对应于条形码中字节段中的原始字节。*/
BYTE_SEGMENTS,
/*如果适用,表示使用的错误校正级别。值类型取决于格式,但通常是String类型。*/
ERROR_CORRECTION_LEVEL,
/*对于某些期刊,用整数表示期刊号。*/
ISSUE_NUMBER,
/*对于某些产品,将条形码中的建议零售价表示为格式化字符串。*/
SUGGESTED_PRICE,
/*对于某些产品,可能的生产国家用字符串表示ISO国家代码。有些地图指向多个可能的国家,比如“US/CA”。*/
POSSIBLE_COUNTRY,
/*对于某些产品,扩展文本*/
UPC_EAN_EXTENSION,
/*PDF417特定元数据*/
PDF417_EXTRA_METADATA,
/*如果代码格式支持结构化追加,并且当前扫描的代码是其中的一部分,那么序列号就会被给出
*/
STRUCTURED_APPEND_SEQUENCE,
/*如果代码格式支持结构化追加,并且当前扫描的代码是其中的一部分,那么奇偶校验就会给出。*/
STRUCTURED_APPEND_PARITY,
/**
* 条形码符号标识符。
* 注:根据GS1规范,标识符在添加到条形码内容之前可能必须替换FNC1/GS字符的前导。
*/
SYMBOLOGY_IDENTIFIER,
}
①用构造函数的方式调用(不常用,一般出现在测试样例里)
输出结果:
②将Reader解码结果赋值给Result,这是在实际应用中调用Result的常用方式
在安卓中:
在javase中:
在我们第一篇尝试运行Zxing的案例中:
输出结果:
欢迎提出宝贵意见,感谢观看!
参考: ZxingAPI