zoukankan      html  css  js  c++  java
  • 条形码

          条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用。

     

    一维条形码

    一维条形码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息,其一定的高度通常是为了便于阅读器的对准。

    一维条形码的应用可以提高信息录入的速度,减少差错率,但是一维条形码也存在一些不足之处:

    * 数据容量较小:30个字符左右

    * 只能包含字母和数字

    * 条形码尺寸相对较大(空间利用率较低)

    * 条形码遭到损坏后便不能阅读

    生成一维条形码的方法

    先通过Visual Studio 2015的NuGet Package Manager下载安装Spire.Barcode

    // 创建BarcodeSettings对象
    BarcodeSettings settings = new BarcodeSettings();
    // 设置条形码类型为EAN-13
    settings.Type = BarCodeType.EAN13;
    // 设置条形码数据
    string tt = "111111789012";
    settings.Data = tt;
    // 使用校检和
    settings.UseChecksum = CheckSumMode.ForceEnable;
    //在底部显示条形码数据
    settings.ShowTextOnBottom = true;
    // 在底部显示条形码数据
    settings.X = 1f;
    // 初始化BarCodeGenerator对象, 传入以上设置
    BarCodeGenerator generator = new BarCodeGenerator(settings);
    //创建条形码图片并保存为PNG格式
    Image image = generator.GenerateImage();
    string ss = Server.MapPath("~/AAA/");
    string path = ss + tt + ".png";
    image.Save(path, System.Drawing.Imaging.ImageFormat.Png);
    ViewBag.ww = "~/AAA/" + tt + ".png";

    //视图

    <img src="@Url.Content(@ViewBag.ww)"  />

    二维条形码

    在水平和垂直方向的二维空间存储信息的条形码, 称为二维条形码(2-dimensional bar code)。

    与一维条形码一样,二维条形码也有许多不同的编码方法,或称码制。就这些码制的编码原理而言,通常可分为以下三种类型

    ⒈ 线性堆叠式二维码

    是在一维条形码编码原理的基础上,将多个一维码在纵向堆叠而产生的。典型的码制如:Code 16K、Code 49.PDF417等。

    2. 矩阵式二维码

    是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。典型的码制如:Aztec、Maxi Code、QR Code、 Data Matrix等。

    3. 邮政码

    通过不同长度的条进行编码,主要用于邮件编码,如:Postnet、BPO 4-State。

    网址二维码生成:

    链接:https://pan.baidu.com/s/1Rc99C3w-OWxIX-z9XJfzuA

    提取码:ryzp

    链接:https://pan.baidu.com/s/1BzCep2W1wyaVx1F8bxZ0jQ

    提取码:elri

    //创建 BarcodeSettings 对象
    BarcodeSettings settings = new BarcodeSettings();
    //设M条码类型为二维码
    settings.Type = BarCodeType.QRCode;
    //设M二维码数据
    string tt = "111111119";
    settings.Data = tt;
    //设M数据类型为数字
    settings.QRCodeDataMode = QRCodeDataMode.Numeric;
    //不显示文本
    settings.ShowText = false;
    //设M二维码错误修正级别
    settings.QRCodeECL = QRCodeECL.H;
    //设M宽度
    settings.X = 2.0f;
    //初始化 8arCodeGenerator 对象
    BarCodeGenerator generator = new BarCodeGenerator(settings);
    //创建二维码图片并保存为PNG格式 
    Image image = generator.GenerateImage();
    string ss= Server.MapPath("~/AAA/");
    string path = ss + tt+".png";
    image.Save(path);
    ViewBag.ww = "~/AAA/"+ tt + ".png";

    条码编码方式-----Code 39与code 128条形码的区别

    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 码可表示从 ASCII 0 到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更具灵性。

  • 相关阅读:
    ubuntu之路——day8.4 Adam自适应矩估计算法
    ubuntu之路——day8.3 RMSprop
    ubuntu之路——day8.2 深度学习优化算法之指数加权平均与偏差修正,以及基于指数加权移动平均法的动量梯度下降法
    ubuntu之路——day8.1 深度学习优化算法之mini-batch梯度下降法
    ubuntu之路——day7.4 梯度爆炸和梯度消失、初始化权重、梯度的数值逼近和梯度检验
    redis作为mysql的缓存服务器(读写分离)
    阿里云服务器上配置并使用: PHP + Redis + Mysql 从配置到使用
    小程序开发测试教程
    使用PHP并发执行任务–curl_multi应用
    PHP返回变量或数组的字符串表示:var_export()
  • 原文地址:https://www.cnblogs.com/lhl123/p/10574256.html
Copyright © 2011-2022 走看看