日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

.NET 二维码生成(ThoughtWorks.QRCode)

發布時間:2023/12/15 综合教程 38 生活家
生活随笔 收集整理的這篇文章主要介紹了 .NET 二维码生成(ThoughtWorks.QRCode) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引用ThoughtWorks.QRCode.dll (源代碼里有)

1、簡單二維碼生成及解碼代碼:

        //生成二維碼方法一
        private void CreateCode_Simple(string nr)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
            qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            qrCodeEncoder.QRCodeScale = 4;
            qrCodeEncoder.QRCodeVersion = 8;
            qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
            //System.Drawing.Image image = qrCodeEncoder.Encode("4408810820 深圳-廣州 小江");
            System.Drawing.Image image = qrCodeEncoder.Encode(nr);
            string filename = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg";
            string filepath = Server.MapPath(@"~Upload") + "\" + filename;
            System.IO.FileStream fs = new System.IO.FileStream(filepath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write);
            image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg);

            fs.Close();
            image.Dispose();
            //二維碼解碼
            var codeDecoder = CodeDecoder(filepath);
        }

        /// <summary>
        /// 二維碼解碼
        /// </summary>
        /// <param name="filePath">圖片路徑</param>
        /// <returns></returns>
        public string CodeDecoder(string filePath)
        {
            if (!System.IO.File.Exists(filePath))
                return null;
            Bitmap myBitmap = new Bitmap(Image.FromFile(filePath));
            QRCodeDecoder decoder = new QRCodeDecoder();
            string decodedString = decoder.decode(new QRCodeBitmapImage(myBitmap));
            return decodedString;
        }

2、源代碼演示,相對復雜的生成方式:

界面效果:

前端代碼:

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Code</title>
    <script src="~/Scripts/jquery-1.10.2.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#createCode").click(function () {
                var strData = $("#strData").val();
                var level = $("#level").val();
                var encoding = $("#encoding").val();
                var version = $("#version").val();
                var scale = $("#scale").val();

                $.post("/home/CreateCode_Choose", { strData: strData, level: level, qrEncoding: encoding, version: version, scale: scale }, function (data) {
                    $("img").attr("src", data);
                });
            });

        });

    </script>
</head>
<body>
    <div>
        <p>要生成的文字(支持中文):<input id="strData" type="text" value="123456 測試" /></p>
        <p>
            Encoding:<select id="encoding">
                <option value="Byte">Byte</option>
                <option value="AlphaNumeric">AlphaNumeric</option>
                <option value="Numeric">Numeric</option>
            </select>

        </p>
        <p>
            Correction Level:<select id="level">
                <option value="M">M</option>
                <option value="L">L</option>
                <option value="Q">Q</option>
                <option value="H">H</option>
            </select>
        </p>
        <p>Version:<input id="version" type="text" value="8" /></p>
        <p>scale:<input id="scale" type="text" value="4" /></p>
        <img src="" alt="" />
        <input id="createCode" type="button" value="生成" />
    </div>
</body>
</html>

后臺:

        /// 生成二維碼
        /// </summary>
        /// <param name="strData">要生成的文字或者數字,支持中文。如: "4408810820 深圳-廣州" 或者:4444444444</param>
        /// <param name="qrEncoding">三種尺寸:BYTE ,ALPHA_NUMERIC,NUMERIC</param>
        /// <param name="level">大小:L M Q H</param>
        /// <param name="version">版本:如 8</param>
        /// <param name="scale">比例:如 4</param>
        /// <returns></returns>
        public ActionResult CreateCode_Choose(string strData, string qrEncoding, string level, int version, int scale)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
            string encoding = qrEncoding;
            switch (encoding)
            {
                case "Byte":
                    qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
                    break;
                case "AlphaNumeric":
                    qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC;
                    break;
                case "Numeric":
                    qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC;
                    break;
                default:
                    qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
                    break;
            }

            qrCodeEncoder.QRCodeScale = scale;
            qrCodeEncoder.QRCodeVersion = version;
            switch (level)
            {
                case "L":
                    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
                    break;
                case "M":
                    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
                    break;
                case "Q":
                    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q;
                    break;
                default:
                    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;
                    break;
            }
            //文字生成圖片
            Image image = qrCodeEncoder.Encode(strData);
            string filename = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg";
            string filepath = Server.MapPath(@"~Upload") + "\" + filename;
            //如果文件夾不存在,則創建
            //if (!Directory.Exists(filepath))
            //    Directory.CreateDirectory(filepath);
            System.IO.FileStream fs = new System.IO.FileStream(filepath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write);
            image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg);
            fs.Close();
            image.Dispose();
            return Content(@"/Upload/" + filename);
        }

源代碼演示下載:點擊下載

總結

以上是生活随笔為你收集整理的.NET 二维码生成(ThoughtWorks.QRCode)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 波多野结衣一级 | 天堂在线中文在线 | 国产精品久久久久久久久免费软件 | 国产精品拍拍 | 丝袜人妻一区二区三区 | 亚洲国产欧美在线人成 | 久久午夜夜伦鲁鲁片无码免费 | 日日射夜夜 | 欧美在线播放一区二区 | 国产综合福利 | 欧美a在线观看 | 日本激情小视频 | 好男人天堂网 | 污污免费在线观看 | 黄色自拍网站 | 欧美成人国产 | 精品久久人妻av中文字幕 | 男人操女人的网站 | 青娱乐在线视频免费观看 | 亚洲精品嫩草 | 91欧美在线 | 国产中文一区 | 天堂在线视频免费 | 色激情五月| 亚洲大片精品 | 国产高潮失禁喷水爽到抽搐 | 老司机av网站 | 精品视频三区 | 欧美一区二区在线观看 | 欧美日韩一级二级 | 99色网站| 欧洲女性下面有没有毛发 | 一区二区三区免费视频观看 | 一区二区三区亚洲 | 日韩精品一区在线视频 | 一卡二卡精品 | 日本在线h| av尤物在线 | 亚洲乱码一区二区三区在线观看 | 欧美少妇b | 国产精品久久久久久久午夜 | 色射网 | 色666| 日韩h在线 | 色婷婷久久一区二区三区麻豆 | 原来神马电影免费高清完整版动漫 | 国产精品亚洲视频 | 国产视频你懂得 | 欧美精品一区二区三区视频 | 国产伦精品 | 欧美一区二区三区视频在线观看 | 欧洲人妻丰满av无码久久不卡 | 好男人香蕉影院 | 亚洲一级黄色 | 久久成年网 | 看污片网站 | 免费日b视频 | 18欧美性xxxx极品hd | 短篇山村男同肉耽h | 中文字幕 欧美激情 | 欧美黄色一级 | 91av在线免费| 超碰在线cao | 九七影院在线观看免费观看电视 | 国产精品igao | 少妇一区二区三区 | 黄色片子免费看 | 免费特级毛片 | 久久精品久久精品久久精品 | 特级做a爰片毛片免费69 | 男人午夜免费视频 | 成人欧美激情 | 曰本丰满熟妇xxxx性 | 久插视频 | 亚洲天堂成人av | 女同av在线 | 欧美午夜网| 国产网站精品 | 男人肌肌桶女人肌肌 | 国产亚洲91 | 国产呦小j女精品视频 | 在线观看入口 | 亚洲一本在线观看 | 欧美福利一区二区 | 调教在线观看 | 国产一二三区在线视频 | 欧美三级午夜理伦三级中视频 | 五月天色丁香 | 在线观看欧美亚洲 | 午夜精品视频一区二区三区在线看 | 国产乱码精品一区二区三区亚洲人 | 国产伦理在线 | 亚洲二区在线 | 国产一区二区三区四 | 韩日av片 | 91欧美国产| 国产午夜电影在线观看 | 精品无码人妻一区二区三 | 欧美xxxx网站 |