一、视图

@{
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 = ;
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;
}
}
}

四、效果

aaarticlea/png;base64,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" alt="" />

五、源码下载

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

六、相关资源推荐

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

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

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

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

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

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

  1. 使用zxing生成解析二维码

    1. 前言 随着移动互联网的发展,我们经常在火车票.汽车票.快餐店.电影院.团购网站以及移动支付等各个场景下见到二维码的应用,可见二维码以经渗透到人们生活的各个方面.条码.二维码以及RFID被人们应用 ...

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

    ZXing是一种开源的多格式1D/2D条形码图像处理库,在Java中的实现.重点是在手机上使用内置摄像头来扫描和解码设备上的条码,而不与服务器通信.然而,该项目也可以用于对桌面和服务器上的条形码进行编 ...

  3. phpqrcode生成动态二维码简单实例

    这是一个利用phpqrcode生成动态二维码简单实例,比微信官方提供的接口还要好用.二维码是动态的,不用生成图片,可自定义二维码大小,间隙,跳转地址等. 参数设置: include_once 'php ...

  4. 二维码简单Demo

    二维码简单Demo 一.视图 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name=&qu ...

  5. java生成/解析二维码

    package a; import java.awt.BasicStroke; import java.awt.Graphics; import java.awt.Graphics2D; import ...

  6. JAVA生成解析二维码

    package com.mohe.twocode; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.B ...

  7. C# PDF、winform 生成解析二维码

    PDF 生成.解析二维码 界面样式: 第一步:下载ThoughtWorks.QRCode.dll 类并引用 地址  http://download.csdn.net/detail/liwb1987/8 ...

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

    编码示例 package com.wolf_pan.qrcodesample; import android.graphics.Bitmap; import android.graphics.Colo ...

  9. Java生成与解析二维码

    1.下载支持二维码的jar包qrcode.jar和qrcode_swetake.jar, 其中qrcode_swetake.jar用于生成二维码,rcode.jar用于解析二维码,jar包下载地址(免 ...

随机推荐

  1. maven中的mirrors

    文章转自http://blog.csdn.net/technologyboy/article/details/17143641 简单点来说,repository就是个仓库.maven里有两种仓库,本地 ...

  2. 【转】取模(mod)与取余(rem)的区别——Matlab学习笔记

    昨天在学习Matlab的数学函数时,教程中提到取模(mod)与取余(rem)是不同的,今天在网上具体查了一下: 通常取模运算也叫取余运算,它们返回结果都是余数.rem和mod唯一的区别在于:    当 ...

  3. PAT A1021 Deepest Root (25 分)——图的BFS,DFS

    A graph which is connected and acyclic can be considered a tree. The hight of the tree depends on th ...

  4. AI 矩阵求导

    矩阵求导 参考链接: https://en.wikipedia.org/wiki/Matrix_calculus#Scalar-by-vector_identities

  5. C++ new/malloc、delete/free

    1.new和delete是运算符,可以被重载:malloc和free是库函数,不能被重载. 2.new会调用对象的构造函数,delete会调用对象的析构函数:malloc和free不会.

  6. linux内存源码分析 - 页表的初始化

    本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 本文章中系统我们假设为x86下的32位系统,暂且不分析64位系统的页表结构. linux分页 linux下采用四 ...

  7. 【LeetCode105】Construct Binary Tree from Preorder and Inorder Traversal★★

    1.题目 2.思路 3.java代码 //测试 public class BuildTreeUsingInorderAndPreorder { public static void main(Stri ...

  8. CF835F Roads in the Kingdom/UOJ126 NOI2013 快餐店 树的直径

    传送门--CF 传送门--UOJ 题目要求基环树删掉环上的一条边得到的树的直径的最小值. 如果直接考虑删哪条边最优似乎不太可做,于是考虑另一种想法:枚举删掉的边并快速地求出当前的直径. 对于环上的点, ...

  9. React-UI组件和容器组件

    UI组件负责页面的渲染,又叫傻瓜组件. 容器组件负责逻辑,又叫聪明组件. 当一个组件只有render函数的时候,就可以用无状态组件的形式来定义这个组件.无状态组件怎么定义呢?其实就是一个函数,接受pr ...

  10. 【LGR-048 五周年庆贺】洛谷6月月赛

    Luogu的五周年庆典比赛,还是比较满意的. 题目清新不毒瘤,数据优质不卡常,解法自然,为出题人点赞. 前三题的难度都很低,T5个人感觉还好.但是最后那个splay+hash是什么神仙东西. 最后好像 ...