利用ZXing.Net元件產生圖片
Google官方有提供一個API可以依據傳入的參數, 產生對應的QRCODE圖檔, 讓網站可以快速的做出屬於自己的QRCODE圖片。不過這個技術要是需要應用在公司系統裡, 就可能面臨許多未知數了。
- 萬一Google哪天這個API不玩了或是網址修改了, 系統是否有對應的方針呢?
- 萬一公司網路的ISP業者維修線路, 暫停網路服務, 公司是否可以忍受這期間系統無法使用的情況呢?
- 萬一公司對外網路設備掛點了, 是否可以忍受這期間系統無法使用的情況呢?
- 萬一...應該還有其他萬一...
所以基於我對自己程式的完美要求, 就想辦法去找找有沒有免費的QRCODE元件可以做到這個服務。
皇天不負苦心人呀, 花了2個小時就試出這個功能了, 只能說哥哥(Google)有你真好。
開發平台:Visual Studio 2010
元件:ZXing.Net (https://zxingnet.codeplex.com/)
step-01 將下載的元件(dll)放到網站bin目錄裡
step-02 加入參考
step-03 程式碼如下,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ZXing;
using ZXing.Common;
using System.Drawing;
using System.Drawing.Imaging;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
try
{
//QRCODE內容
string strQRstring = Request.QueryString["d"];
//QRCODE圖片高度
string strHeight = Request.QueryString["h"];
//QRCODE圖片寬度
string strWidth = Request.QueryString["w"];
BarcodeWriter bw = new BarcodeWriter();
bw.Format = BarcodeFormat.QR_CODE;
bw.Options.Width = int.Parse(strHeight);
bw.Options.Height = int.Parse(strWidth);
Bitmap bitmap = bw.Write(strQRstring);
//利用steam方式儲存圖片
bitmap.Save(Context.Response.OutputStream, ImageFormat.Jpeg);
}
catch { }
//將網頁型態指定為image/jpeg
Context.Response.ContentType = "image/jpeg";
Context.Response.End();
}
}
step-04 執行後帶入參數就以取得QRCODE圖片了
20150201
- 目前這個寫法若遇到QRCODE資料包含中文字則會顯示問號
reference web:
http://www.dami.tw/2012/11/26dami.html



留言
張貼留言