close
1.前言:
傳統的一維條碼圖能記錄的資訊有限,而二維的條碼圖可記錄大量訊息,另外QR碼有容錯能力,可降低因為標籤部分磨損無法判讀的問題。本範例在利用open source的軟體,來建立QRCode的影像圖形。
2.說明:
QrCode.Net是一個MIT license的開放軟體,軟體最新版本可在下列網址下載:
本範例使用的版本為: 0.4 Pre-release
http://qrcodenet.codeplex.com/
QRCode的說明可參考以下網址:
http://en.wikipedia.org/wiki/QR_code
將軟體下載後解壓縮,在Gma.QrCodeNet.Encoding.Net35目錄下複製Gma.QrCodeNet.Encoding.Net35.dll到自己的專案bin目錄下。
加入參考:
Gma.QrCodeNet.Encoding.Net35.dll
加入命名空間:
using Gma.QrCodeNet.Encoding; using Gma.QrCodeNet.Encoding.Windows.Render;
程式碼:
//輸入要製作二維條碼的字串 string codeString = "http://einboch.pixnet.net/blog"; //實例化,設定錯誤修正容量 /* Level L (Low) 7% of codewords can be restored. Level M (Medium) 15% of codewords can be restored. Level Q (Quartile) 25% of codewords can be restored. Level H (High) 30% of codewords can be restored. */ QrEncoder encoder = new QrEncoder(ErrorCorrectionLevel.L); //編碼 QrCode code = encoder.Encode(codeString); //定義線條寬度 int moduleSizeInPixels = 12; //繪二維條碼圖初始化 GraphicsRenderer renderer = new GraphicsRenderer(new FixedModuleSize(moduleSizeInPixels, QuietZoneModules.Two), Brushes.Black, Brushes.White); //留白區大小 Point padding = new Point(10, 16); //取得條碼圖大小 DrawingSize dSize = renderer.SizeCalculator.GetSize(code.Matrix.Width); int imgWidth = dSize.CodeWidth + 2 * padding.X; int imgHeight = dSize.CodeWidth+2 * padding.Y; //設定影像大小 Image img = new Bitmap(imgWidth, imgHeight); pictureBox1.Width = imgWidth; pictureBox1.Height = imgHeight; //繪製二維條碼圖 Graphics g = Graphics.FromImage(img); renderer.Draw(g, code.Matrix, padding); pictureBox1.Image = img;
圖例:
文章標籤
全站熱搜
留言列表