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


    一、简介

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

    UPC A码又称UPC标准码,它的结构如下图:

    每个UPC A码包含部分如下图:

     

    UPC A码具有以下特点:

    1. 每个字码皆由7个模组组合成2线条2空白,其逻辑值可用7个二进制数字表示,例如逻辑值0001101代表数字1,逻辑值0为空白,1为线条,故数字1的UPC-A码为粗空白(000)-粗线条(11)-细空白(0)-细线条(1)。
    2. 从空白区开始共113个模组,每个模组长0.33mm,条码符号长度为37.29mm。
    3. 中间码两侧的资料码编码规则是不同的,左侧为奇,右侧为偶。奇表示线条的个数为奇数;偶表示线条的个数为偶数。
    4. 起始码、终止码、中间码的线条高度长於数字码。

    二、实现

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

    结果图片如下:

        

    三、解码

    点击查看

  • 相关阅读:
    Zookeeper中Watcher监听实现增删改
    Zookeeper
    pyspider爬豆瓣电影实例
    纵表与横表转换(实用)
    完善爬取糗百的段子
    为自己的爬虫更换代理和HTML头部
    我的第一个爬虫(爬取糗百的段子)
    django创建blog
    python-study-23
    python-study-22
  • 原文地址:https://www.cnblogs.com/weiweixiang/p/10077391.html
Copyright © 2020-2023  润新知