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="width:230px;height:120px;" id="content"></textarea>
            <br />
            <input id="createBtn" type="button" value="生成二维码" />
        </div>
        <div>
            <textarea style="width: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源码下载

时间: 2024-10-09 06:55:06

APS.NET MVC4生成解析二维码简单Demo的相关文章

Java使用ZXing生成/解析二维码图片

ZXing是一种开源的多格式1D/2D条形码图像处理库,在Java中的实现.重点是在手机上使用内置摄像头来扫描和解码设备上的条码,而不与服务器通信.然而,该项目也可以用于对桌面和服务器上的条形码进行编码和解码.目前支持这些格式: UPC-A and UPC-E EAN-8 and EAN-13 Code 39 Code 93 Code 128 ITF Codabar RSS-14 (all variants) RSS Expanded (most variants) QR Code Data M

二维码简单Demo

二维码简单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">

几行代码搞定java生成解析二维码功能

最近公司要求扫描二维码和生成二维码的功能.而群里部分网友也提到了.我这里就写了一个demo,和大家分享.代码很简介,希望大家能够喜欢. 网友表示在网上搜索了很多,发现不是代码不全,就是jar不匹配. 我这里共享了一个zxing的2.2版本的例子,也提供了下载地址.实现代码如下: package com.herman.test; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcep

安卓开发中使用ZXing生成解析二维码

编码示例 package com.wolf_pan.qrcodesample; import android.graphics.Bitmap; import android.graphics.Color; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.util.Log; imp

Java使用QRCode.jar生成与解析二维码

正题:Java使用QRCode.jar生成与解析二维码demo 欢迎新手共勉,大神监督指正 # 不知道QRCode的请移步wiki,自行了解,这里不多做解释 *******创建二维码之前的工作******** 去下面给出的地址下载QRCode.jar包,此jar包已经包括 生成与解析 . 官网下载到的jar包是没有解析的 https://files.cnblogs.com/files/bigroc/QRCode.zip ***创建好你的测试类导好jar包开始吧*** 第一部分:生成二维码 pac

使用zxing生成和解析二维码

二维码: 是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的: 在代码编制上巧妙的利用构成计算机内部逻辑基础的0和1比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理: 二维码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息: 二维码相对于条形码的优势就是省空间: zxing简介: zxing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库

Java使用Zxing生成、解析二维码工具类

Zxing是Google提供的关于条码(一维码.二维码)的解析工具,提供了二维码的生成与解析的方法. 1.二维码的生成 (1).将Zxing-core.jar 包加入到classpath下. (2).二维码的生成需要借助MatrixToImageWriter类,该类是由Google提供的; package com.qlwb.business.util; //导入省略... /** * 二维码工具类 * */ public class MatrixToLogoImageWriter { priva

Java生成二维码解析二维码

package QrCode; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; imp

.Net mvc 使用QRCode生成和解析二维码

//index 控制器中的代码 using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Web; using System.Web.Mvc; using ThoughtWorks.QRCode.Codec; namespace MyQrCode.Controllers { public class IndexController : Controll