条形码的三种维码却别:
①一维条形码:
一维条形码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息,其一定的高度通常是为了便于阅读器的对准。
一维条形码的应用可以提高信息录入的速度,减少差错率,但是一维条形码也存在一些不足之处:
* 数据容量较小:30个字符左右
* 只能包含字母和数字
* 条形码尺寸相对较大(空间利用率较低)
* 条形码遭到损坏后便不能阅读
②二维条形码:
在水平和垂直方向的二维空间存储信息的条形码, 称为二维条形码(2-dimensional bar code)。
与一维条形码一样,二维条形码也有许多不同的编码方法,或称码制。就这些码制的编码原理而言,通常可分为以下三种类型
⒈ 线性堆叠式二维码
是在一维条形码编码原理的基础上,将多个一维码在纵向堆叠而产生的。典型的码制如:Code 16K、Code 49.PDF417等。
2. 矩阵式二维码
是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。典型的码制如:Aztec、Maxi Code、QR Code、 Data Matrix等。
3. 邮政码
通过不同长度的条进行编码,主要用于邮件编码,如:Postnet、BPO 4-State。
在许多种类的二维条形码中,常用的码制有:Data Matrix,Maxi Code,Aztec,QR Code,Vericode,PDF417,Ultracode,Code 49,Code 16K 等,其中:
* Data Matrix 主要用于电子行业小零件的标识,如英特尔(Intel)的奔腾处理器的背面就印制了这种码。
* Maxi Code 是由美国联合包裹服务(UPS)公司研制的,用于包裹的分拣和跟踪。
* Aztec 是由美国韦林(Welch Allyn)公司推出的,最多可容纳3832个数字或3067个字母字符或1914个字节的数据。
Generatel1为生成一维码的方法
Generatel2为生成二维码的方法
dll文件下载地址:https://files.cnblogs.com/files/lbjlbj/zxing.7z
控制器中:
public class ShowController : Controller { // GET: Show public ActionResult Index() { return View(); } public string Generate1(string text) { int width = 60; int height = 60; Random rd = new Random(10); string time = DateTime.Now.ToString("yyyyMMdd")+"erwei"; string path = Server.MapPath("~/Images" + "//" + time + ".Png"); string path1 = $"http://localhost:53183/Images/{time}" + ".Png"; BarcodeWriter writer = new BarcodeWriter(); writer.Format = BarcodeFormat.QR_CODE; QrCodeEncodingOptions options = new QrCodeEncodingOptions() { DisableECI = true, //设置内容编码 CharacterSet = "UTF-8", //设置二维码的宽度和高度 Width = width, Height = height, Margin = 1//设置二维码的边距,单位不是固定像素 }; writer.Options = options; Bitmap map = writer.Write(text); map.Save(path, ImageFormat.Png); return path1; } public string Generate2(string text) { int width = 80; int height = 60; Random rd = new Random(10); string time = DateTime.Now.ToString("yyyyMMdd")+rd.Next().ToString(); string path = Server.MapPath("~/Images" + "//" + time + ".Png"); string path1 = $"http://localhost:53183/Images/{time}" + ".Png"; BarcodeWriter writer = new BarcodeWriter(); //使用ITF 格式,不能被现在常用的支付宝、微信扫出来 //如果想生成可识别的可以使用 CODE_128 格式 //writer.Format = BarcodeFormat.ITF; writer.Format = BarcodeFormat.CODE_39; EncodingOptions options = new EncodingOptions() { Width = width, Height = height, Margin = 2 }; writer.Options = options; Bitmap map = writer.Write(text); map.Save(path, ImageFormat.Png); return path1; } }
视图中:
<div> <input id="txt" type="text" /> <input id="Button1" type="button" value="生成条形码图片" onclick="tiao()"/> <input id="Button1" type="button" value="生成二维码图片" onclick="Er()"/> <img src="" alt="" id="tx"/> <img src="" alt="" id="erwei"/> </div>
Ajax:
<script> function Er() { $.ajax({ url: "/Show/Generate1", data: { text: $("#txt").val() }, dataType: "text", success: function (data) { $("#erwei").attr("src",data); } }) } function tiao() { $.ajax({ url: "/Show/Generate2", data: { text: $("#txt").val() }, dataType: "text", success: function (data) { $("#tx").attr("src", data); } }) } </script>
③彩色条形码
彩色条码主要是结合带有视像镜头的手提电话或个人电脑,利用镜头来阅读杂志、报纸、电视机或电脑屏幕上的颜色条码,并传送到数据中心。数据中心会因应收到的颜色条码来提供网站资料或消费优惠。
彩色条码比二维条码优胜的地方,是它可以利用较低的分辨率来提供较高的数据容量。一方面,颜色条码无需要较高分辨率的镜头来解读,使沟通从单向变成双方面,二来较低的分辨率亦令使用条码的公司在条码上加上变化,以提高读者参与的兴趣。
新的彩色条码将使用4或8种颜色,在较少的空间中储存更多的资讯,并以小三角形取代传统的长方形。由CNET新闻中公布的图片看来,类似彩色版的二维QR条码。彩色条码未来计划用于电影、电玩等商业性媒介上,以冀提供更高的安全性,甚至电影宣传片连结或其他附加功能。