C语言调用code 128码,Code 39码与Code 128码区别

原标题:Code 39码与Code 128码区别

128 码与 Code 39 码有很多的相近性,都广泛运用在企业内部管理、生产流程、物流控制系统方面。不同的在于 Code 128 比 Code 39 能表现更多的字符,单位长度里的编码密度更高。当单位长度里不能容下 Code 39 编码或编码字符超出了 Code 39 的限制时,就可选择 Code 128 来编码。所以 Code 128 比 Code 39 更具灵性。

 CODE 39 码的编码规则是:

 1、 每五条线表示一个字符;

 2、 粗线表示 1,细线表示 0;

 3、 线条间的间隙宽的表示 1,窄的表示 0;

 4、五条线加上它们之间的四条间隙就是九位二进制编码,而且这九位中必定有三位是 1,所以称为 39 码;

 5、 条形码的首尾各一个*标识开始和结束。

 CODE 128 介绍

 CODE128 是一种高效率条码. 它一共映射了 106 种编码, 每种编码针对不同版本的 CODE128(CODE128A, CODE128B, CODE128C), 代表了不同的数据组合. 同时, 每种编码通过 11 个黑白条模块的组合实现. 终止符比较特殊,由 13 个模块组成.

 CODE128 码是广泛应用在企业内部管理、生产流程、物流控制系统方面的条码码制,由于其优良的特性在管理信息系统的设计中被广泛使用, CODE128 码是应用最广泛的条码码制之一。

 CODE128 码是 1981 年引入的一种高密度条码, CODE128 码可表示从 ASCII0 到 ASCII 127 共 128 个字符,故称 128 码。其中包含了数字、字母和符号字符;

 CODE 128 码的特点:

 1.可表示高密度数据和字符串;

 2.每个字符由 3 个条、 3 个空、 11 个单元构成,字符串可变长;

 3.符号内含校验码;

 4.有三种不同的版本: A(数字、大写字母、控制字符) B(数字、大小字母、字符) C(双位数字)

 CODE128A: 标准数字和字母, 控制符, 特殊字符

 CODE128B: 标准数字和字母, 小写字母, 特殊字符

 CODE128C: [00]-[99]的数字对集合, 共 100 个

 5.可用 128 个字符分别在 A、 B 或 C 三个字符串集合中。

 CODE128 码与 CODE39 码的区别:

 Code 128 码与 Code 39 码有很多的相近性,都广泛运用在企业内部管理、生产流程、物流控制系统方面。不同的在于 Code 128 比 Code 39 能表现更多的字符,单位长度里的编码密度更高。

当单位长度里不能容下 Code 39 编码或编码字符超出了 Code 39 的限制时,就可选择 Code 128 来编码。所以 Code 128 比 Code 39 更具灵性。

e7d54f4af166e645305e2560eebbabac.png

作者:_Somuns

来源:https://my.oschina.net/8824/blog/3137340返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现C语言调用zbar实现二维,需要进行以下步骤: 1. 下载zbar的源,并进行编译安装。 2. 在C程序中引用zbar的头文件,并链接zbar的库文件。 3. 使用zbar提供的API函数实现二维功能。 以下是一个简单的示例程序: ``` #include <stdio.h> #include <zbar.h> int main() { // 初始化zbar zbar_image_scanner_t *scanner = zbar_image_scanner_create(); zbar_image_scanner_set_config(scanner, 0, ZBAR_CFG_ENABLE, 1); // 读取二维图片 zbar_image_t *image = zbar_image_create(); zbar_image_set_format(image, *(int*)"Y800"); // 设置图片格式为Y800 FILE *file = fopen("qrcode.jpg", "rb"); fseek(file, 0, SEEK_END); long size = ftell(file); fseek(file, 0, SEEK_SET); char *data = (char*)malloc(size); fread(data, 1, size, file); zbar_image_set_size(image, 640, 480); // 设置图片大小 zbar_image_set_data(image, data, size, zbar_image_free_data); // 扫描二维 int n = zbar_scan_image(scanner, image); const zbar_symbol_t *symbol = zbar_image_first_symbol(image); for (; symbol; symbol = zbar_symbol_next(symbol)) { const char *data = zbar_symbol_get_data(symbol); printf("QR Code: %s\n", data); } // 释放资源 zbar_image_destroy(image); zbar_image_scanner_destroy(scanner); fclose(file); return 0; } ``` 在这个示例程序中,我们首先初始化了zbar,然后读取了一个名为qrcode.jpg的二维图片,并设置了图片的格式和大小。接着,我们调用zbar_scan_image函数扫描二维,并遍历所有扫描到的二维进行输出。最后,我们释放了所有的资源。 需要注意的是,这个示例程序仅供参考,实际使用时可能需要进行一些修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值