ZBar源码分析:zbar_symbol(2)
2021/12/6 1:17:05
本文主要是介绍ZBar源码分析:zbar_symbol(2),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
2021SC@SDUSC
zbar.h中定义解码符号类型zbar_symbol_type_e,对不同条形码类型进行定义:
typedef enum zbar_symbol_type_e { ZBAR_NONE = 0, ZBAR_PARTIAL = 1, ZBAR_EAN2 = 2, ZBAR_EAN5 = 5, ZBAR_EAN8 = 8, ZBAR_UPCE = 9, ZBAR_ISBN10 = 10, ZBAR_UPCA = 12, ZBAR_EAN13 = 13, ZBAR_ISBN13 = 14, ZBAR_COMPOSITE = 15, ZBAR_I25 = 25, ZBAR_DATABAR = 34, ZBAR_DATABAR_EXP = 35, ZBAR_CODABAR = 38, ZBAR_CODE39 = 39, ZBAR_PDF417 = 57, ZBAR_QRCODE = 64, ZBAR_CODE93 = 93, ZBAR_CODE128 = 128, ZBAR_SYMBOL = 0x00ff, ZBAR_ADDON2 = 0x0200, ZBAR_ADDON5 = 0x0500, ZBAR_ADDON = 0x0700, } zbar_symbol_type_t;
symbol.c中实现了zbar_get_symbol_name函数检索符号编码的字符串名称。返回指定符号类型的静态字符串名称,如果编码无法识别,则为“UNKNOWN”:
const char *zbar_get_symbol_name (zbar_symbol_type_t sym) { switch(sym & ZBAR_SYMBOL) { case ZBAR_EAN2: return("EAN-2"); case ZBAR_EAN5: return("EAN-5"); case ZBAR_EAN8: return("EAN-8"); case ZBAR_UPCE: return("UPC-E"); case ZBAR_ISBN10: return("ISBN-10"); case ZBAR_UPCA: return("UPC-A"); case ZBAR_EAN13: return("EAN-13"); case ZBAR_ISBN13: return("ISBN-13"); case ZBAR_COMPOSITE: return("COMPOSITE"); case ZBAR_I25: return("I2/5"); case ZBAR_DATABAR: return("DataBar"); case ZBAR_DATABAR_EXP: return("DataBar-Exp"); case ZBAR_CODABAR: return("Codabar"); case ZBAR_CODE39: return("CODE-39"); case ZBAR_CODE93: return("CODE-93"); case ZBAR_CODE128: return("CODE-128"); case ZBAR_PDF417: return("PDF417"); case ZBAR_QRCODE: return("QR-Code"); default: return("UNKNOWN"); } }
symbol.c中实现了zbar_get_config_name函数检索配置设置的字符串名称。返回配置的静态字符串名称,如果值不是已知配置,则返回空字符串。
const char *zbar_get_config_name (zbar_config_t cfg) { switch(cfg) { case ZBAR_CFG_ENABLE: return("ENABLE"); case ZBAR_CFG_ADD_CHECK: return("ADD_CHECK"); case ZBAR_CFG_EMIT_CHECK: return("EMIT_CHECK"); case ZBAR_CFG_ASCII: return("ASCII"); case ZBAR_CFG_MIN_LEN: return("MIN_LEN"); case ZBAR_CFG_MAX_LEN: return("MAX_LEN"); case ZBAR_CFG_UNCERTAINTY: return("UNCERTAINTY"); case ZBAR_CFG_POSITION: return("POSITION"); case ZBAR_CFG_X_DENSITY: return("X_DENSITY"); case ZBAR_CFG_Y_DENSITY: return("Y_DENSITY"); default: return(""); } }
zbar_get_modifier_name函数检索修饰符的字符串名称。返回修饰符的静态字符串名称,如果值不是已知标志,则为空字符串。
const char *zbar_get_modifier_name (zbar_modifier_t mod) { switch(mod) { case ZBAR_MOD_GS1: return("GS1"); case ZBAR_MOD_AIM: return("AIM"); default: return(""); } }
zbar_get_orientation_name函数检索定向的字符串名称。返回指定方向的静态字符串名称,如果无法识别方向,则为“UNKNOWN”:
const char *zbar_get_orientation_name (zbar_orientation_t orient) { switch(orient) { case ZBAR_ORIENT_UP: return("UP"); case ZBAR_ORIENT_RIGHT: return("RIGHT"); case ZBAR_ORIENT_DOWN: return("DOWN"); case ZBAR_ORIENT_LEFT: return("LEFT"); default: return("UNKNOWN"); } }
这篇关于ZBar源码分析:zbar_symbol(2)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-20测试人员都是画画大神,让我看看谁还不会用代码图?
- 2024-05-20年薪百万的程序员都在用的摸鱼方式……
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了