(zxing.net)一維碼UPC A的簡介、實現與解碼
阿新 • • 發佈:2018-12-06
一、簡介
UPC(Universal Product Code)碼是最早大規模應用的條碼,其特性是一種長度固定、連續性的條 碼,目前主要在美國和加拿大使用,由於其應用範圍廣泛,故又被稱萬用條碼。 UPC碼僅可用來表示數字,故其字碼集為數字0~9。UPC碼共有A、B、C、D、E等五種版本。
UPC A碼又稱UPC標準碼,它的結構如下圖:
每個UPC A碼包含部分如下圖:
UPC A碼具有以下特點:
- 每個字碼皆由7個模組組合成2線條2空白,其邏輯值可用7個二進位制數字表示,例如邏輯值0001101代表數字1,邏輯值0為空白,1為線條,故數字1的UPC-A碼為粗空白(000)-粗線條(11)-細空白(0)-細線條(1)。
- 從空白區開始共113個模組,每個模組長0.33mm,條碼符號長度為37.29mm。
- 中間碼兩側的資料碼編碼規則是不同的,左側為奇,右側為偶。奇表示線條的個數為奇數;偶表示線條的個數為偶數。
- 起始碼、終止碼、中間碼的線條高度長於數字碼。
二、實現
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"); }
結果圖片如下: