二维码简单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"></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源码下载

分类: ASP.NET MVC

时间: 2024-10-04 21:09:46

二维码简单Demo的相关文章

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"></scri

二维码生成Demo

在C#中直接引用ThoughtWorks.QRCode.dll 类, 下载 dll 类 http://file.111cn.net/download/2013/06/29/201205161654200565.rar protected void Button1_Click(object sender, EventArgs e) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode

Swift 二维码扫描 简单实现

3.30看视频  学到了二维码简单的实现 还有一些动画的实现  今天就先记录一下二维码扫描的简单实现  不太好记手写一遍 学习的基础在于模仿嘛 创建一个实现二维码扫描的步骤 1.首先是懒加载创建 会话 输入设备  输出设备 // 先倒入框架 AVFoundation import AVFoundation //通过懒加载 创建输入设备 private lazy var deviceInput: AVCaptureDeviceInput? = { //获取设备摄像头 let device = AV

iOS中 扫描二维码/生成二维码详解 韩俊强的博客

最近大家总是问我有没有关于二维码的demo,为了满足大家的需求,特此研究了一番,希望能帮到大家! 每日更新关注:http://weibo.com/hanjunqiang  新浪微博 指示根视图: self.window.rootViewController = [[UINavigationController alloc]initWithRootViewController:[SecondViewController new]]; 每日更新关注:http://weibo.com/hanjunqi

js生成二维码

一.js 二维码生成demo ①.先下载 js qrcode 库 ②.使用极其简单 <!DOCTYPE html> <html> <head> <title>qrcode demo</title> </head> <body> <div id="qrcode"></div> <script src="https://ajax.googleapis.com/ajax

HP QR Code 实现二维码

二维码简单点说就是图片中含有数据信息,可以是url链接,也可能是其他的 首先下载该类,(http://download.csdn.net/detail/cgjcgs/9100365) 然后直接引入该类就可以开始编码了,使用该类中png方法直接就可以生成二维码很方便 参数$url表示生成二位的的信息文本: 参数$outfile表示是否输出二维码图片 文件,默认否: 参数$level表示容错率,也就是有被覆盖的区域还能识别,分别是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,

使用java解析和制作二维码

项目结构 文件源码 QR.zip 第一步:导入zxing的两个架包 core.jar和javase.jar 第二步:使用工具类 MatrixToImageWriter.java 1 package util; 2 import com.google.zxing.common.BitMatrix; 3 import javax.imageio.ImageIO; 4 import java.io.File; 5 import java.io.OutputStream; 6 import java.i

2016年大学生研究性学习和创新性实验计划项目 我的项目 :二维码数据反馈系统 第四周作业

参加软件班后介于一直没有实训的机会,感觉自己应该主动找点项目,提升自己的技术水平,这次在老师和同学的帮助下参加了2016年大学生研究性学习和创新性实验计划项目: 下面是我参与的项目的一些简介: 项目名:二维码数据反馈系统    简述:二维码具有面积小,信息容量大,安全性高,读取率高,纠错能力强等优点,不仅能够存储足够的物品信息,还具有抗干扰能力强.运用环境适应性好.使用成本低廉等优点, 现今成为各种产品  防伪的首要选择.        项目的创新点和特色 :传统的生产厂商通过条形码来记录商品信

Android实现二维码扫描登录网页

之前写过一个二维码扫描demo,用的Zxing的框架,点击下载,后续扫描二维码中出现一些问题,比如解决压缩图片,调整扫描窗口大小等等.后续单位要求做扫描登录实现,发现难点就是怎么知道你扫描的是这台电脑,后台必须获取到(后台技术的问题)然后把这个参数给我,再传递到后台,后台判断登录即可.这样自己扫描后直接传递个参数就可以实现登录了.效果如下: 大概代码实现:扫描跳转: //扫描登录a case R.id.tv_more_qr: if (PventQuickClick.isFastDoubleCli