(zxing.net)一维码Code 128的简介、实现与解码

一、简介

一维码Code 128:1981年推出,是一种长度可变、连续性的字母数字条码。与其他一维条码比较起来,相对较为复杂,支持的字元也相对较多,又有不同的编码方式可供交互运用,因此其应用弹性也较大。

Code 128特性:

  1. 具有A、B、C三种不同的编码类型,可提供标准ASCII中128个字元的编码使用;
  2. 允许双向扫描;
  3. 可自行决定是否加上检验位;
  4. 条码长度可调,但包括开始位和结束位在内,不可超过232个字元;
  5. 同一个128码,可以由A、B、C三种不同编码规则互换,既可扩大字元选择的范围,也可缩短编码的长度。

Code 128各编码方式的编码范围:

  1. Code 128 A:标准数字和字母,控制符,特殊字符;
  2. Code 128 B:标准数字和字母,小写字母,特殊字符;
  3. Code 128 C/EAN 128:[00]-[99]的数字对集合,共100个,即只能表示偶数位长度的数字。

Code 128编码规则:开始位+[FNC1(为EAN 128码时加)] + 数据位 + 检验位 + 结束位。

Code128检验位计算:(开始位对应的ID值 + 每位数据在整个数据中的位置 * 每位数据对应的ID值) % 103。

二、实现

         public ActionResult CODE_128()
{
Code128EncodingOptions options = new Code128EncodingOptions();
options.ForceCodesetB = false; //如果为true,请不要为数字切换到代码集C. 不知道什么鬼
options.PureBarcode = false; //是否将内容字符串显示在图片上。false 为显示 true为不显示
options.GS1Format = false; //是否符合GS1
options.Width = ; //图片宽度,根据内容的长度会自动增长
options.Height = ; //图片高度
options.Margin = ; //填充,在图片左右填充空白 30则左右各15 BarcodeWriter writer = new BarcodeWriter();
writer.Format = BarcodeFormat.CODE_128;
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 128的简介、实现与解码

三、解码

 点击查看

上一篇:[ACM] poj 2456 Aggressive cows (二分查找)


下一篇:js中masonry与infinitescroll结合 形成瀑布流