zoukankan      html  css  js  c++  java
  • (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。

    二、实现

     1         public ActionResult CODE_128()
     2         {
     3             Code128EncodingOptions options = new Code128EncodingOptions();
     4             options.ForceCodesetB = false; //如果为true,请不要为数字切换到代码集C. 不知道什么鬼
     5             options.PureBarcode = false; //是否将内容字符串显示在图片上。false 为显示 true为不显示
     6             options.GS1Format = false;    //是否符合GS1
     7             options.Width = 150;    //图片宽度,根据内容的长度会自动增长
     8             options.Height = 75;    //图片高度
     9             options.Margin = 30;    //填充,在图片左右填充空白 30则左右各15
    10 
    11             BarcodeWriter writer = new BarcodeWriter();
    12             writer.Format = BarcodeFormat.CODE_128;
    13             writer.Options = options;
    14 
    15             //如需设置图片为其它颜色,使用此段代码
    16             //BitmapRenderer renderer = new BitmapRenderer();
    17             //renderer.Foreground = Color.Black;
    18             //renderer.Background = Color.White;
    19             //writer.Renderer = renderer;
    20 
    21             Bitmap bmp = writer.Write("123456789");
    22             MemoryStream ms = new MemoryStream();
    23             bmp.Save(ms, ImageFormat.Png);
    24             ms.Flush();
    25             ms.Position = 0;
    26             return File(ms, "application/x-png");
    27         }

    测试图像如下:

        

    三、解码

       点击查看

  • 相关阅读:
    document.getElementById(), getElementsByname(),getElementsByClassName(),getElementsByTagName()方法表示什么以及其意义
    Go -10 Go Web 简单实现
    Go -09 Go 函数和方法区别
    Go -08 Go win 环境搭建
    Go-07 Go 规范代码风格
    Go-06 Go 语言注释(comment)
    Go-05 Go 转义字符
    Go-04 Go 语法要求和注意事项
    Go-03 Go 快速入门
    Go-02 搭建 Go 开发环境(mac系统)
  • 原文地址:https://www.cnblogs.com/weiweixiang/p/10075355.html
Copyright © 2011-2022 走看看