Hướng dẫn lập trình ứng dụng đọc QR (Scan QR ) code sử dụng thư viện Zxing bằng VB.NET
Hôm nay, mình xin hướng dẫn các bạn lập trình một ứng dụng đọc QR code, sử dụng thư viện Zxing bằng ngôn ngữ VB.NET.
Đầu tiên, mình xin giới thiệu, thư viện Zxing. Zxing là dự án mã nguồn mở (viết tắt của Zebra Crossing), cho phép người dùng quét "Mã vạch đồ họa" 1D hoặc 2D, sử dụng máy ảnh trên thiết bị Android để Scan, Zxing cũng cung cấp một thư viện cho Visual Studio .NET. Thư viện Zxing hỗ trợ tạo và đọc rất nhiều loại mã code: Barcode (là UPC-A, UPC-B, UPC-C, UPC-D và UPC-E; EAN có các version EAN-8, EAN-13, EAN-14, Code 128 gồm Code 128 Auto, Code 128-A, Code 128-B, Code 128-C), nhưng trên thị trường hiện nay người ta thường sử dụng các dạng thông dụng trên thị trường mà ta thấy gồm UPC, EAN, Code 39, Interleaved 2of 5, Codabar và Code 128.
Dưới đây, là demo của chương trình đọc QR code:
Đầu tiên các bạn cần download bộ thư viện ZXing tại địa chỉ Tải thư viện Zxing .
1. Import thư viện Zxing vào:
Imports ZXing.Common
Imports ZXing
Imports ZXing.QrCode
2. Khai báo biến pic, và gfx để ta chụp image và đọc.
Dim pic As Bitmap = New Bitmap(190, 190)
Dim gfx As Graphics = Graphics.FromImage(pic)
3. Viết sự kiện Timer tick() sẽ tự động chụp hình QR code:
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
gfx.CopyFromScreen(New Point(Me.Location.X + PictureBox1.Location.X + 4, Me.Location.Y + PictureBox1.Location.Y + 30), New Point(0, 0), pic.Size)
PictureBox1.Image = pic
PictureBox1.Image = Nothing
End Sub
4. Viết sự kiện cho nút Scan:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Reader As New BarcodeReader()
PictureBox2.Image = pic
Dim result As Result = Reader.Decode(pic)
Try
Dim decoded As String = result.ToString().Trim()
TextBox1.Text = decoded
Catch ex As Exception
End Try
End Sub
Dưới đây là video hướng dẫn từng bước các bạn viết ứng dụng đọc QR code:
Chúc các bạn thành công! Các bạn đọc xong, rảnh tay like và share để ủng hộ laptrinhvb.net.
Thanks for watching!