• APS.NET MVC4生成解析二维码简单Demo


    一、视图

    @{
        Layout = null;
    }
    
    <!DOCTYPE html>
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
        <script src="~/Scripts/jquery-1.8.2.min.js"></script>
        <script type="text/javascript">
            $(function () {
                //生成
                $('#createBtn').click(function () {
                    createImage();
                });
                //解析
                $('#analysisBtn').click(function () {
                    analysisImage();
                });
            });
    
            //生成二维码
            function createImage() {
                var content = $('#content').val();
                //ajax开始
                $.post("/ORCode/GetORImage/",
                    { "content": content },
                    function (data) {
                        $('#imgDiv').empty();
                        $('#imgDiv').append('<img id="ORImage" />');
                        $("#ORImage").attr("src", data);
                    });
                //ajax结束
            }
    
            //解析二维码
            function analysisImage() {
                //获取图片名称
                var imageUrl = $('#ORImage').attr("src");
                var array = imageUrl.split('/');
                var imageName = array[array.length - 1]; //如:123.jpg
    
                //ajax开始
                $.post("/ORCode/GetORImageContent/",
                    { "imageName": imageName },
                    function (data) {
                        $('#ORCodeContent').empty();
                        $('#ORCodeContent').text(data);
                    });
                //ajax结束
            }
        </script>
    </head>
    <body>
        <div style="text-align:center;">
            <div>
                <textarea style="230px;height:120px;" id="content"></textarea>
                <br />
                <input id="createBtn" type="button" value="生成二维码" />
            </div>
            <div>
                <textarea style="230px;height:120px;" id="ORCodeContent"></textarea>
                <br />
                <input id="analysisBtn" type="button" value="解析二维码" />
            </div>
            <div style="margin-top:20px;" id="imgDiv">
            </div>
        </div>
    </body>
    </html>

    二、控制器

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using Common;
    using System.Drawing;
    
    namespace QRCodeDemo.Controllers
    {
        public class ORCodeController : Controller
        {
            //
            // GET: /ORCode/
            public ActionResult Index()
            {
                return View();
            }
    
            [HttpPost]
            public ActionResult GetORImage(string content)
            {
                //if (string.IsNullOrEmpty(content))
                //{
                //    return Content("");
                //}
    
                string timeStr = DateTime.Now.ToFileTime().ToString();
                Bitmap bitmap = QRCodeOp.QRCodeEncoderUtil(content);
                string fileName = Server.MapPath("~") + "Content\Images\QRImages\" + timeStr + ".jpg";
                bitmap.Save(fileName);//保存位图
                string imageUrl = "/Content/Images/QRImages/" + timeStr + ".jpg";//显示图片  
                return Content(imageUrl);
            }
    
            [HttpPost]
            public ActionResult GetORImageContent(string imageName)
            {
                string fileUrl = Server.MapPath("~") + "Content\Images\QRImages\" + imageName;
                Bitmap bitMap = new Bitmap(fileUrl);
                string content = QRCodeOp.QRCodeDecoderUtil(bitMap);
                return Content(content);
            }
    } }

    三、二维码生成工具类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using ThoughtWorks.QRCode.Codec;
    using ThoughtWorks.QRCode.Codec.Data;
    using System.Drawing;
    
    
    namespace Common
    {
        public class QRCodeOp
        {
            /// <summary> 
            /// 生成二维码 
            /// </summary> 
            /// <param name="qrCodeContent">要编码的内容</param> 
            /// <returns>返回二维码位图</returns> 
            public static Bitmap QRCodeEncoderUtil(string qrCodeContent)
            {
                QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
                qrCodeEncoder.QRCodeVersion = 0;
                Bitmap img = qrCodeEncoder.Encode(qrCodeContent, Encoding.UTF8);//指定utf-8编码, 支持中文 
                return img;
            }
    
            /// <summary> 
            /// 解析二维码 
            /// </summary> 
            /// <param name="bitmap">要解析的二维码位图</param> 
            /// <returns>解析后的字符串</returns> 
            public static string QRCodeDecoderUtil(Bitmap bitmap)
            {
                QRCodeDecoder decoder = new QRCodeDecoder();
                string decodedString = decoder.decode(new QRCodeBitmapImage(bitmap), Encoding.UTF8);//指定utf-8编码, 支持中文 
                return decodedString;
            }
        }
    }

    四、效果

    五、源码下载

    APS.NET MVC4生成二维码简单Demo源码下载

    六、相关资源推荐

    1.asp.net 生成、解析条形码和二维码

    2.二维码生成与解析代码实现

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

    4.[开源]C#二维码生成解析工具,可添加自定义Logo

    5.QRCode二维码编码支持中文生成二维码的源码Asp.Net(C#)  

  • 相关阅读:
    netstat命令查看服务器运行情况
    分布式架构进化之路
    显示器 Linux 性能 18 (一个命令行工具传递)
    _00024 尼娜抹微笑伊拉克_云计算ClouderaManager以及CHD5.1.0群集部署安装文档V1.0
    CMDeviceMotion使用
    Ubuntu 安装和配置minicom
    树阵
    HTML5在input背景提示文本(placeholder)的CSS美化
    PowerDesigner反projectM连接ySql没有mySql odbc驱动器
    Flume 1.5日志收集和存款mongodb安装结构
  • 原文地址:https://www.cnblogs.com/zxx193/p/4939988.html
Copyright © 2020-2023  润新知