ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

QRCode4cj API参考:核心类与接口清单,开发前必看的完整速查表

2026/9/28 20:41:22 拓冰建站 浏览量
QRCode4cj API参考:核心类与接口清单,开发前必看的完整速查表 QRCode4cj API参考核心类与接口清单开发前必看的完整速查表【免费下载链接】qrcode4cj一维码/二维码扫描库。项目地址: https://gitcode.com/Cangjie-TPC/qrcode4cjQRCode4cj 是一个基于仓颉语言的一维码/二维码扫描与生成库提供二维码解码、条码解析、条码生成等完整能力。本文整理 QRCode4cj API 参考中的核心类与接口清单帮你快速掌握 Reader/Writer 入口、格式枚举、提示配置与结果解析等关键接口开发前先看这篇完整速查表少走弯路。一分钟看懂库结构QRCode4cj 的源码按格式 功能组织公共接口集中在common包中src/common/Reader/Writer 基类、Result 结果、格式与提示枚举、图像二值化等公共组件src/qrcode/QR 码的 detector / decoder / encoder 实现src/oned/EAN、UPC、Code 128、RSS 等一维码读写src/aztec/、src/datamatrix/、src/pdf417/、src/maxicode/其他二维码格式src/client/解码结果的客户端语义解析电话、邮件、WiFi、联系人等doc/feature_api.md官方接口文档每个格式的接口签名都有详细说明 记忆口诀入口在 common格式在各自目录结果在 client。核心入口两个接口 两个万能类Reader / Writer 接口一切读写的基础整个库围绕两个接口展开源码见 src/common/reader.cj 和 src/common/writer.cj接口核心方法作用Readerdecode(image)/decode(image, hints)在图像中定位并解码条码返回ResultReaderreset()复位内部状态支持连续扫描复用Writerencode(contents, format, width, height)将内容编码为BitMatrix图像所有具体格式的解码器/编码器如QRCodeReader、Code128Writer都继承这两个接口因此接口一旦熟悉所有格式类都可秒懂。MultiFormatReader / MultiFormatWriter最常用入口不想逐个格式试错时直接用这两个工厂类MultiFormatReader默认依次尝试 QR、Data Matrix、Aztec、PDF417、MaxiCode、一维码等全部解码器支持setHints()decodeWithState()组合优化连续扫码性能MultiFormatWriter根据BarcodeFormat自动分发到对应编码器一行代码生成任意支持的条码var reader MultiFormatReader() var result reader.decode(bitmap, hints) // 解码 var matrix MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, 300, 300) // 生成参数速查格式枚举与两大 Hint 配置BarcodeFormat16 种条码格式枚举定义于 src/common/barcode_for_mat.cj支持类别格式二维码QR_CODE、DATA_MATRIX、AZTEC、PDF_417、MAXICODE一维码UPC_A、UPC_E、EAN_8、EAN_13、CODE_39、CODE_93、CODE_128、CODABAR、ITF、RSS_14、RSS_EXPANDED辅助UPC_EAN_EXTENSION、NONEDecodeHintType解码提示12 种定义于 src/common/decode_hint_type.cj以HashMapDecodeHintType, Any形式传给decode常用项说明POSSIBLE_FORMATS限定只尝试指定格式提速TRY_HARDER牺牲速度换准确率适合终端相机扫描ALSO_INVERTED解码失败后对反色图像再试一次CHARACTER_SET指定解码字符集ASSUME_GS1按 GS1 标准处理 FNC1EncodeHintType编码提示19 种定义于 src/common/encode_hint_type.cj常用项包括MARGIN边距、ERROR_CORRECTION纠错级别、CHARACTER_SET、QR_VERSION、DATA_MATRIX_SHAPE、PDF417_COMPACT、AZTEC_LAYERS等。分格式 Reader/Writer 类清单每个格式的 Reader/Writer 都是薄封装重点看构造函数差异即可完整签名见 doc/feature_api.md一维码继承 OneDReader / OneDimensionalCodeWriter格式ReaderWriter源码Code 128Code128ReaderCode128Writercode_128_reader.cj、code_128_writer.cjCode 39Code39Reader支持校验位/扩展模式构造参数Code39Writercode_39_reader.cjCode 93 / Codabar / ITFCode93Reader等Code93Writer等src/oned/EAN-13 / EAN-8 / UPC-A / UPC-E继承UPCEANReader多decodeRow(...startGuardRange...)重载继承UPCEANWriterupc_ean_reader.cjRSS-14 / RSS-ExpandedRSS14Reader、RSSExpandedReader—仅解析src/oned/rss/一维码核心方法decodeRow(rowNumber, row: BitArray, hints): Result逐行扫描黑白像素。二维码继承 Reader / Writer格式ReaderWriter源码目录QR CodeQRCodeReaderQRCodeWritersrc/qrcode/Data MatrixDataMatrixReaderDataMatrixWritersrc/datamatrix/AztecAztecReaderAztecWritersrc/aztec/PDF417PDF417Reader同时实现多码扫描PDF417Writersrc/pdf417/MaxiCodeMaxiCodeReader仅解析—src/maxicode/结果处理Result 与客户端语义解析Result解码结果的统一载体定义于 src/common/result.cj常用方法getText()条码中的原始文本getBarcodeFormat()识别出的格式getResultPoints()条码在图像中的定位点如 QR 三个定位角getRawBytes()/getTimestamp()原始字节与解码时间戳ParsedResult / ResultParser把文本变成结构化数据Result里的只是字符串client包负责二次语义解析基类见 src/client/result/parsed_result.cj 与 src/client/result/result_parser.cj。常用解析器一览均在 src/client/result/解析器识别内容TelResultParsertel:电话号码EmailAddressResultParser/SMTPResultParser邮箱地址 /smtp:URIResultParser/URLTOResultParser通用 URI / 短链GeoResultParsergeo:经纬度坐标VCardResultParser/VEVENTResultParser联系人 / 日历事件WiFiResultParserWiFi 网络配置ISBNResultParser/ProductResultParser/VINResultParser书号 / 商品码 / 车架号SMSMMSResultParser等短信⚡ 小技巧ResultParser.parseResult(theResult)静态方法会自动挑选合适的解析器不必手动判断类型。多码扫描一张图里找出多个条码当一张图像含多个二维码时使用 src/multi/ 下的多码接口类说明源码MultipleBarcodeReader多码扫描接口decodeMultiple(image): ArrayResultmultiple_barcode_reader.cjGenericMultipleBarcodeReader通用实现包裹任意Reader逐个区域扫描generic_multiple_barcode_reader.cjQRCodeMultiReaderQR 专用多码识别基于 multi_finder_pattern_finder.cj 聚类定位qr_code_multi_reader.cjByQuadrantReader将图像四象限分治扫描提高定位成功率by_quadrant_reader.cj异常体系扫码程序必须处理的 4 种错误异常含义源码Qrcoder4cjNotFoundException图像中未找到条码not_found_exception.cjQrcoder4cjReaderException解码过程的通用异常MultiFormatReader内部靠它切换下一个解码器reader_exception.cjQrcoder4cjFormatException找到疑似条码但格式非法format_exception.cjQrcoder4cjChecksumException校验和不通过checksum_exception.cj编码侧还有Qrcoder4cjWriterException见 writer_exception.cj内容无法按该格式合法编码时抛出。开发前速查小结需求用什么扫任意格式MultiFormatReaderDecodeHintType.POSSIBLE_FORMATS只生成二维码MultiFormatWriterBarcodeFormat.QR_CODE相机连续扫码MultiFormatReader.setHints()decodeWithState()一图多码QRCodeMultiReader/GenericMultipleBarcodeReader结构化提取电话/WiFiResultParser.parseResult(result)查某个格式的完整签名doc/feature_api.md掌握以上核心类与接口后结合 README.md 中的编解码示例MultiFormatWriter生成 MultiFormatReader解码的完整闭环即可覆盖绝大多数扫码开发场景。【免费下载链接】qrcode4cj一维码/二维码扫描库。项目地址: https://gitcode.com/Cangjie-TPC/qrcode4cj创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考