(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");
    }

 结果图片如下:

   

 

三、解码

点击查看

posted @ 2018-12-06 16:51  a boy  阅读(1402)  评论(0编辑  收藏  举报