(zxing.net)一维码EAN 8的简介、实现与解码
一、简介
一维码EAN 8:属于国际标准条码,由8个数字组成,属EAN的简易编码形式(EAN缩短码)。当包装面积小于120平方公分以下无法使用标准码时,可以申请使用缩短码。
依结构的不同,EAN条码可区分为:
- EAN 13码: 由13个数字组成,为EAN的标准编码型式(EAN标准码)。
- EAN 8码: 由8个数字组成,属EAN的简易编码型式(EAN缩短码)。
EAN码的全名为欧洲商品条码(European Article Number),于1977年,由欧洲十二个工业国家所共同发展出来的一种条码。目前已成为一种国际性的条码系统。EAN条码系统的管理是由国际商品条码总会(International Article Numbering Association)负责各会员国的国家代表号码之分配与授权,再由各会员国的商品条码专责机构,对其国内的制造商、批发商、零售商等授予厂商代表号码。
EAN码具有以下特性:
- 只能储存数字。
- 可双向扫瞄处理,即条码可由左至右或由右至左扫瞄。
- 必须有一检查码,以防读取资料的错误情形发生,位于EAN码中的最右边处。
- 具有左护线、中线及右护线,以分隔条码上的不同部分与撷取适当的安全空间来处理。
- 条码长度一定,较欠缺弹性,但经由适当的管道,可使其通用于世界各国。
EAN 8码的结构如下图:
EAN 8码具有以下特点:
- EAN 8码共8位数,包括国别码2位,产品代码5位,及检查码1位。
- EAN 8码从空白区开始共81个模组,每个模组长0.33mm,条码符号长度为26.73mm。
- EAN 8码左右资料码编码规则与EAN 13码相同。
二、实现
public ActionResult EAN_8() { EncodingOptions options = new EncodingOptions(); options.PureBarcode = false; //是否将内容字符串显示在图片上。false 为显示 true为不显示 options.GS1Format = true; //是否符合GS1 options.Width = 160; //图片宽度,根据内容的长度会自动增长 options.Height = 75; //图片高度 options.Margin = 10; //填充,在图片左右填充空白 10则左右各10 BarcodeWriter writer = new BarcodeWriter(); writer.Format = BarcodeFormat.EAN_8; writer.Options = options; //如需设置图片为其它颜色,使用此段代码 //BitmapRenderer renderer = new BitmapRenderer(); //renderer.Foreground = Color.Black; //renderer.Background = Color.White; //writer.Renderer = renderer; Bitmap bmp = writer.Write("69012341"); MemoryStream ms = new MemoryStream(); bmp.Save(ms, ImageFormat.Png); ms.Flush(); ms.Position = 0; return File(ms, "application/x-png"); }
测试图像如下:
三、解码