C#條形碼


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM