• (zxing.net)一维码UPC E的简介、实现与解码


    UPC(Universal Product Code)码是最早大规模应用的条码,其特性是一种长度固定、连续性的条  码,目前主要在美国和加拿大使用,由于其应用范围广泛,故又被称万用条码。 UPC码仅可用来表示数字,故其字码集为数字0~9。UPC码共有A、B、C、D、E等五种版本。

    • UPC E码又称UPC缩短码。
    • UPC E码是UPC A码的简化型式,其编码方式是将UPC A码整体压缩成短码以方便使用,因此其编码形式须经由UPC A码来转换。

    UPC E由6位数码与左右护线组成,无中间线。6位数字码的排列为3奇3偶,其排列方法取决于检查码的值。UPC-E码只用于国别码为0的商品。

    UPC E码结构如下图:

     

    1. 左护线:为辅助码,不具任何意义,仅供列印时作为识别之用,逻辑型态为010101,其中0代表细白,1代表细黑。
    2. 右护线:同UPC A码,逻辑型态为101。
    3. 检查码:为UPC A码原形的检查码,其作用为一导入值,并不属於资料码的一部份。
    4. 资料码:扣除第一码固定为0外,UPC E实际参与编码的部份只有六码,其编码方式,视检查码的值来决定。

    二、实现

    public ActionResult UPCE()
        {
            EncodingOptions options = new EncodingOptions();
            options.PureBarcode = false;
            options.GS1Format = false;
            options.Width = 110;
            options.Height = 75;
            options.Margin = 0;
    
            BarcodeWriter writer = new BarcodeWriter();
            writer.Format = BarcodeFormat.UPC_E;
            writer.Options = options;
    
            //如需设置图片为其它颜色,使用此段代码
            //BitmapRenderer renderer = new BitmapRenderer();
            //renderer.Foreground = Color.Black;
            //renderer.Background = Color.White;
            //writer.Renderer = renderer;
    
            Bitmap bmp = writer.Write("00123457");
            MemoryStream ms = new MemoryStream();
            bmp.Save(ms, ImageFormat.Png);
            ms.Flush();
            ms.Position = 0;
            return File(ms, "application/x-png");
    
            //Stream sm = BarcodeHelper.UPCE(new UPCEOptions("00123457"));
            //return File(sm, "application/x-png");
        }

     结果图片如下:

       

    三、解码

    点击查看

  • 相关阅读:
    (转)干货|一次完整的性能测试,测试人员需要做什么?
    (转)JMeter性能测试-服务器资源监控插件详解
    【Android Apk重新签名报错re-sign.jar之解决方法】
    CrackMe_001
    判断二叉树是否是镜像对称
    顺时针打印矩阵
    利用前序遍历和中序遍历构造二叉树
    二叉树的四种遍历方式
    最长回文子串
    同步/异步/阻塞/非阻塞
  • 原文地址:https://www.cnblogs.com/weiweixiang/p/10077660.html
Copyright © 2020-2023  润新知