C#MVC生成二維碼


   首先大家看我的上一個文章寫得是WinFrom 實現條形碼生成讀取

這次我來呈現出MVC B/S 頁面實現 一維碼,二維碼

 

1.3 第三方類庫:ZXing.Net

 

1.3.1 說明

 

ZXing 是一個可生成和讀取 1D/2D(1維/2維) 條形碼的開源類庫。原先是Java版本,后由第三方衍生了支持QT、C++、.Net等版本。

 

.Net版本支持的平台:.Net 2.0, 3.5 and 4.0、Silverlight 4 and 5、Windows Phone 7.0, 7.1 and 8.0、Windows CE、Unity3D、Xamarin.Android 等等。

 

 在項目引用中的引用ZXing

 

 

進行聯網下載

 

 

 

 

需要的引用

 

 

 

 

 

首先視圖創建

一維碼生成:

 

如有看不懂下面下載源代碼

 

前台代碼:

 

<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div id="img1">@*實現圖片的盒子*@

</div>
<p>
顯示文本<input type="text" id="text1" name="name1" value="" /> @*文本框*@
<input type="button" onclick="qqq()" name="name11" value="一維碼生成" />@*一維碼生成按鈕*@
<input type="button" onclick="www()" name="name12" value="二維碼生成" />@*二維碼生成按鈕*@
</p>
<script>
function qqq() {
var name1 = $("#text1").val();//獲取文本框的值
$.ajax({//進行Ajax 提交到控制器 (下面有控制器方法的圖片)
url: '/Default/yi?name=' + name1,//路徑傳參
type: 'post',
success: function (rese) {//收到返回的一維碼圖片地址
$("#imge1").remove();//清空盒子中圖片
$("#img1").append("<img id='images' src=" + rese + " />");//在盒子中最加二維碼圖片顯示
}
})

}

后台方法:

 

public string yi(string name)
{
//設置條形碼規格
EncodingOptions encoding = new EncodingOptions();
encoding.Height = 120;//設置寬高
encoding.Width = 200;
//生成條形碼的圖片並保存
BarcodeWriter wr = new BarcodeWriter();
wr.Options = encoding;//進行指定規格
wr.Format = BarcodeFormat.EAN_13;//條形碼的規格 EAN13規格
Bitmap img = wr.Write(name);//生成圖片
string filepath = Server.MapPath("/image/");//獲取文件夾的絕對路徑
string qq= DateTime.Now.ToString("yyyyMMddHHmmss");//獲取當前時間的字符串格式
img.Save(filepath+qq+".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);//進行圖片保存


return "/image/"+qq+".jpg";//返回生成一維碼圖片的路徑
}

效果圖片:

 

 

簡單介紹 由前台Ajax提交到以上控制器方法中 執行生成一維碼並保存到image文件夾中

命名為當前時間的字符串格式再提交給前台 之后進行顯示一維碼

 

 

二維碼生成:

 

如有看不懂下面下載源代碼

 

前台代碼:如上同樣的代碼格式

<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div id="img1">@*實現圖片的盒子*@

</div>
<p>
顯示文本<input type="text" id="text1" name="name1" value="" /> @*文本框*@
<input type="button" onclick="qqq()" name="name11" value="一維碼生成" />@*一維碼生成按鈕*@
<input type="button" onclick="www()" name="name12" value="二維碼生成" />@*二維碼生成按鈕*@
</p>
<script>
function qqq() {
var name1 = $("#text1").val();//獲取文本框的值
$.ajax({//進行Ajax 提交到控制器 (下面有控制器方法的圖片)
url: '/Default/yi?name=' + name1,//路徑傳參
type: 'post',
success: function (rese) {//收到返回的一維碼圖片地址
$("#imge1").remove();//清空盒子中圖片
$("#img1").append("<img id='images' src=" + rese + " />");//在盒子中最加二維碼圖片顯示
}
})

}
function www() {
var name2 = $("#text1").val();
$.ajax({
url: '/Default/er?name=' + name2,
type: 'post',

success: function (rese) {
$("#imge1").remove();
$("#img1").append("<img id='images' src=" + rese + " />");
}
})
}
</script>

后台方法:

注釋如上圖一維碼注釋一樣

 

public string er(string name)
{
//1先設置二維碼的規格
QrCodeEncodingOptions qr = new QrCodeEncodingOptions();
qr.CharacterSet = "UTF-8";//設置編碼格式,否則會亂碼
qr.Height = 200;
qr.Width = 200;
qr.Margin = 1;//設置二維碼圖片周圍空白邊距

//2生成條形碼圖片保存
BarcodeWriter wr = new BarcodeWriter();
wr.Format = BarcodeFormat.QR_CODE;//二維碼
wr.Options = qr;//指定格式
Bitmap bitmap = wr.Write(name);//存放二維碼
//設置圖片的路徑

//進行保存
string filepath = Server.MapPath("/image/");
string qq = DateTime.Now.ToString("yyyyMMddHHmmss");
bitmap.Save(filepath+qq+".jpg",ImageFormat.Jpeg);
return "/image/" + qq + ".jpg";
}

 效果圖片:

 

如還有不懂請下載源代碼

百度網盤:https://pan.baidu.com/s/1HFyW2ZiBa98fHyt9qAOZqw

 提取碼::dl47

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM