條形碼的三種維碼卻別:
①一維條形碼:
一維條形碼只是在一個方向(一般是水平方向)表達信息,而在垂直方向則不表達任何信息,其一定的高度通常是為了便於閱讀器的對准。
一維條形碼的應用可以提高信息錄入的速度,減少差錯率,但是一維條形碼也存在一些不足之處:
* 數據容量較小: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條碼。彩色條碼未來計划用於電影、電玩等商業性媒介上,以冀提供更高的安全性,甚至電影宣傳片連結或其他附加功能。