1. 程式人生 > >(zxing.net)一維碼UPC A的簡介、實現與解碼

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

結果圖片如下: