0%

C# Qrcode製作

Qrcode 製作介紹

前言

現代人人手一支手機,因此只要有手機就能將Qrcode的內容,呈現在使用者的手機上,這樣不用使用者慢慢key網址,節省很多時間。

流程圖

result

撰寫產生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; //barcode格式
barCodeWriter.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8"); //編碼字元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; //圖片y
int deltaWidth = result.Width - overlay.Width; //圖片x

Graphics g = Graphics.FromImage(result); //圖型
g.DrawImage(overlay, new Point(deltaWidth / 2, deltaHeigth / 2)); //畫出圖片
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
return result;
}
}

Result

result

結語

利用Zxing程式庫就可以製作出客製化的Qrcode,讓使用者去掃描