Qrcode 製作介紹
前言
現代人人手一支手機,因此只要有手機就能將Qrcode的內容,呈現在使用者的手機上,這樣不用使用者慢慢key網址,節省很多時間。
流程圖
撰寫產生Qrcode的程式
使用者掃Qrcode
將內容傳給使用者
前置準備
要使用的程序庫
nuget抓取Zxing
程式碼
使用程式庫
1 2 3 4
| using ZXing.QrCode; using ZXing; using ZXing.Common; using ZXing.Rendering;
|
內容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| public partial class Qrcode : Form { private string imagePath = @"{圖片位置}"; public Qrcode() { InitializeComponent(); this.pictureBox1.Image = GetQRCodeByZXingNet("https://dotblogs.com.tw/neil_coding", 200, 200); Console.WriteLine("1122222222222"); } private Bitmap GetQRCodeByZXingNet(String strMessage, Int32 width, Int32 height) { Bitmap result = null; try { BarcodeWriter barCodeWriter = new BarcodeWriter(); barCodeWriter.Format = BarcodeFormat.QR_CODE; barCodeWriter.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8"); barCodeWriter.Options.Hints.Add(EncodeHintType.ERROR_CORRECTION, ZXing.QrCode.Internal.ErrorCorrectionLevel.H); barCodeWriter.Options.Height = height; barCodeWriter.Options.Width = width; barCodeWriter.Options.Margin = 0; ZXing.Common.BitMatrix bm = barCodeWriter.Encode(strMessage); result = barCodeWriter.Write(bm); Bitmap overlay = new Bitmap(imagePath);
int deltaHeigth = result.Height - overlay.Height; int deltaWidth = result.Width - overlay.Width;
Graphics g = Graphics.FromImage(result); g.DrawImage(overlay, new Point(deltaWidth / 2, deltaHeigth / 2)); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } return result; } }
|
Result
結語
利用Zxing程式庫就可以製作出客製化的Qrcode,讓使用者去掃描