(zxing.net)一维码Code 39的简介、实现与解码
一、简介
一维码Code 39:由于编制简单、能够对任意长度的数据进行编码、支持设备广泛等特性而被广泛采用。
Code 39码特点:
- 能够对任意长度的数据进行编码,其局限在于印刷品的长度和条码阅读器的识别范围。
- 支持设备广泛,目前几乎所有的条形码阅读设备都能阅读Code 39码,打印机也是同样情况。
- 编制简单,简单的开发技术就能快速生成相应的编码图像。
- 一般Code 39码由5条线和分开它们的4条缝隙共9个元素构成。线和缝隙有宽窄之分,而且无论线还是缝隙仅有3个比其他的元素要宽一定比例。39码因此得名。
Code 39码编码规则:
- 每五条线表示一个字符;
- 粗线表示1,细线表示0;
- 线条间的间隙宽的表示1,窄的表示0;
- 五条线加上它们之间的四条间隙就是九位二进制编码,而且这九位中必定有三位是1,所以称为39码;
- 条形码的首尾各一个”*”标识开始和结束。
Code 39码只接受如下43个有效输入字符:
- 26个大写字母(A – Z);
- 十个数字(0 – 9);
- 连接号(-),句号(.),空格,美圆符号($),斜扛(/),加号(+)以及百分号(%)。其余的输入将被忽略。
Code 39码通常情况下不需要校验码。但是对于精确度要求高的应用,需要在Code 39条形码后面增加一个校验码。由于可以合并两个字符来表达第三个字符.这样就可以用Code 39条形码来表示整个ASCII表.这样就产生了Code 39全ASCII码字型.
二、实现
public ActionResult CODE_39()
{
EncodingOptions options = new EncodingOptions();
options.PureBarcode = false; //是否将内容字符串显示在图片上。false 为显示 true为不显示
options.GS1Format = false; //是否符合GS1
options.Width = ; //图片宽度,根据内容的长度会自动增长
options.Height = ; //图片高度
options.Margin = ; //填充 左右填充 BarcodeWriter writer = new BarcodeWriter();
writer.Format = BarcodeFormat.CODE_39;
writer.Options = options; //如需设置图片为其它颜色,使用此段代码
//BitmapRenderer renderer = new BitmapRenderer();
//renderer.Foreground = Color.Black;
//renderer.Background = Color.White;
//writer.Renderer = renderer; Bitmap bmp = writer.Write("");
MemoryStream ms = new MemoryStream();
bmp.Save(ms, ImageFormat.Png);
ms.Flush();
ms.Position = ;
return File(ms, "application/x-png");
}
测试图像如下:

三、解码
(zxing.net)一维码Code 39的简介、实现与解码的更多相关文章
- 一维码Code 39简介及其解码实现(zxing-cpp)
一维码Code 39:由于编制简单.能够对任意长度的数据进行编码.支持设备广泛等特性而被广泛采用. Code 39码特点: 1. 能够对任意长度的数据进行编码,其局限在于印刷品的长度和条码阅读器的识别 ...
- (zxing.net)一维码Code 93的简介、实现与解码
一.简介 一维码Code 93: Code 93码与Code 39码的字符集相同,但93码的密度要比39码高,因而在面积不足的情况下,可以用93码代替39码.它没有自校验功能,为了确保数据安全性,采用 ...
- (zxing.net)一维码Code 128的简介、实现与解码
一.简介 一维码Code 128:1981年推出,是一种长度可变.连续性的字母数字条码.与其他一维条码比较起来,相对较为复杂,支持的字元也相对较多,又有不同的编码方式可供交互运用,因此其应用弹性也较大 ...
- 一维码Code 93简介及其解码实现(zxing-cpp)
一维码Code 93: Code 93码与Code 39码的字符集相同,但93码的密度要比39码高,因而在面积不足的情况下,可以用93码代替39码.它没有自校验功能,为了确保数据安全性,采用了双校验字 ...
- 一维码Code 128简介及其解码实现(zxing-cpp)
一维码Code 128:1981年推出,是一种长度可变.连续性的字母数字条码.与其他一维条码比较起来,相对较为复杂,支持的字元也相对较多,又有不同的编码方式可供交互运用,因此其应用弹性也较大. Cod ...
- (zxing.net)一维码EAN 8的简介、实现与解码
一.简介 一维码EAN 8:属于国际标准条码,由8个数字组成,属EAN的简易编码形式(EAN缩短码).当包装面积小于120平方公分以下无法使用标准码时,可以申请使用缩短码. 依结构的不同,EAN条码可 ...
- (zxing.net)一维码EAN 13的简介、实现与解码
一维码EAN 13:属于国际标准条码, 由13个数字组成,为EAN的标准编码型式(EAN标准码). 依结构的不同,EAN条码可区分为: EAN 13码: 由13个数字组成,为EAN的标准编码型式(EA ...
- (zxing.net)一维码UPC A的简介、实现与解码
一.简介 UPC(Universal Product Code)码是最早大规模应用的条码,其特性是一种长度固定.连续性的条 码,目前主要在美国和加拿大使用,由于其应用范围广泛,故又被称万用条码. U ...
- (zxing.net)一维码UPC E的简介、实现与解码
UPC(Universal Product Code)码是最早大规模应用的条码,其特性是一种长度固定.连续性的条 码,目前主要在美国和加拿大使用,由于其应用范围广泛,故又被称万用条码. UPC码仅可 ...
随机推荐
- FFmpeg库简介
1.FFmpeg基本组成 FFmpeg框架的基本组成包含AVFormat.AVCodec.AVFilter.AVDevice.AVUtils等模块库,如下图所示. libavformat:用于各种音视 ...
- Linux安装MariaDB+初始化数据库
背景说明: 在数据库中,mysql的是常用的数据库之一:作为一款开源的软件被广大公司所使用. 但是,mysql在被Oracle公司收购后,难免在以后会有取消开源的问题.所以急需一款新的数据库产品替换m ...
- Mysql 日志文件类型
简介: Mysql 中提供了多种类型的日志文件,分别反映 Mysql 的不同信息,了解它们很有必要. 1.Error log ( 错误日志 ) 错误日志记录了 Mysql Server 运行过程中所有 ...
- 使用crontab设置定时任务
配置文件 crontab主要的配置文件如下: /etc/crontab:系统cron表 /etc/cron.d/*:保存由软件包安装脚本创建的cron文件的目录 /var/spool/cron/*:保 ...
- UINavigation,UiView,ModalView Controller之间的关系
如果当前是个VC,那么就太简单了,直接就可以push到下一个vc AddShopViewController *controller = [[AddShopViewController alloc] ...
- Elasticsearch-PHP 处理JSON数组和对象
PHP中处理JSON数组和对象 客户端有一些混淆的资源是围绕着JSON的数组和对象,以及如何在PHP中指定它们.特别是,问题是由空对象和空数组导致的.这篇文章回告诉你一些在Elasticsearch ...
- AngularJS与服务器交互(4)
转自:http://itindex.net/detail/50919-angularjs-%E6%9C%8D%E5%8A%A1%E5%99%A8-%E4%BA%A4%E4%BA%92 对于AJAX应用 ...
- space defender,太空版植物大战僵尸 游戏基本框架的设计
- Ajax工作原理和原生JS的ajax封装
前言: 之所以用ajax作为博客的开篇,是因为无论从ajax的出现还是从它的作用上来说,ajax对于前端无疑是意义重大的.甚至可以说,是ajax带来了前端这个行业.当然,历史并不能说明当下,曾经的辉煌 ...
- Python入门之 字符串操作,占位符,比较大小 等
Python 字符串 常用的操作 切片 左包括右不包括的原则 ________________ 比较字符串大小 eg: cmp("a",'b') -1第一个比第二个小 0 ...