0
0
Lập trình
Hưng Nguyễn Xuân 1
Hưng Nguyễn Xuân 1xuanhungptithcm

So sánh các thư viện tạo mã QR: ZXing và IronQR

Đăng vào 1 tháng trước

• 8 phút đọc

Giới thiệu

Thư viện mã QR là các tính năng tiên tiến được sử dụng để mã hóa và đọc mã QR, ví dụ như việc sử dụng webcam trong các chương trình để dễ dàng mã hóa và đọc dữ liệu. Các thư viện mã QR cho phép các lập trình viên quét mã QR chứa thông tin như URL, số điện thoại hoặc mã bảo mật. Do đó, chúng rất quan trọng trong marketing, bảo mật và quản lý hàng tồn kho, đặc biệt khi sử dụng máy quét mã QR. Một số thư viện mã QR phổ biến bao gồm ZXing và IronQR, được hỗ trợ bởi các nền tảng phát triển khác nhau với những tính năng riêng biệt.

Cách sử dụng mã QR trong C#

  1. Cài đặt gói QRCode từ NuGet.
  2. Nhập thư viện QRCode.
  3. Tạo hoặc đọc một mã QR với instance.
  4. Định nghĩa nội dung để mã hóa cho instance ghi.
  5. Lưu hình ảnh mã QR hoặc hiển thị dữ liệu đã đọc.

ZXing là gì?

Thư viện ZXing (Zebra Crossing) là một trong những thư viện mã nguồn mở được sử dụng rộng rãi nhất để xử lý mã QR. ZXing đã được tận dụng trong các xử lý mã vạch trên web và là một phần của ứng dụng web cho việc quét và mã hóa mã QR. ZXing chủ yếu được lập trình bằng Java nhưng cũng đã được chuyển sang các ngôn ngữ lập trình khác như C++, C# và JavaScript để mở rộng hỗ trợ cho các ứng dụng đa nền tảng.

Bộ giải mã ZXing được sử dụng rộng rãi trong các ứng dụng Android vì nó có khả năng cung cấp quyền truy cập webcam và camera từ camera điện thoại để sử dụng cho việc đọc mã QR trực tiếp trên các thiết bị tương thích như điện thoại thông minh. Nó quét Data Matrix, mã QR, UPC và mã vạch EAN cho việc gán nhãn sản phẩm, theo dõi hàng tồn kho và thanh toán qua điện thoại.

Cài đặt ZXing trong Visual Studio

ZXing cần được cài đặt thông qua Trình quản lý gói NuGet của Visual Studio để sử dụng trong ứng dụng C#. Cách cài đặt ZXing như sau:
Cài đặt thông qua Console của Trình quản lý gói.
Đi tới Visual Studio & Tools > Trình quản lý gói Console > Trình quản lý gói NuGet.
Cài đặt ZXing bằng cách làm theo các bước dưới đây:

Copy
Install-Package ZXing.Net
Install-Package ZXing.Net.Bindings.Windows.Compatibility

Khi việc cài đặt hoàn tất, chúng ta có thể nhập namespace vào tệp dự án.

Đọc mã QR bằng ZXing

Dưới đây là ví dụ mã để đọc mã QR,

Copy
using System;
using System.Drawing;
using System.Drawing.Imaging;
using ZXing;
using ZXing.Common;
// tải bitmap
Bitmap barcodeBitmap;
barcodeBitmap = (Bitmap)Image.FromFile("qr.png");
if (barcodeBitmap != null)
{
    LuminanceSource source;
    source = new BitmapLuminanceSource(barcodeBitmap);
    BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
    // phát hiện và giải mã mã vạch trong bitmap
    Result result = new MultiFormatReader().decode(bitmap);
    // thực hiện điều gì đó với kết quả
    if (result != null)
    {
        Console.WriteLine($"Định dạng mã vạch: {result.BarcodeFormat.ToString()} Văn bản mã vạch: {result.Text}");
    }
}

Mã này tải một hình ảnh mã QR vào một đối tượng Bitmap, sau đó chuyển đổi nó thành một LuminanceSource, và cuối cùng là một BinaryBitmap. Nó sử dụng MultiFormatReader, một phần của thư viện giải mã hình ảnh cốt lõi, để đọc và giải mã một mã QR. Nếu thành công, kết quả của văn bản mã vạch sẽ được hiển thị trên console.
Input:
Dưới đây là mã QR mẫu mà chúng ta sẽ sử dụng làm hình ảnh đầu vào.

Output:

IronQR

IronQR là một thư viện .NET được phát triển bởi Iron Software. Nó cho phép các lập trình viên tạo, đọc và xử lý mã QR trong các ứng dụng. Nó cung cấp một giải pháp đơn giản để sử dụng API để tạo mã QR tùy chỉnh với văn bản, URL hoặc dữ liệu ẩn, hoặc đọc và giải mã mã QR từ hình ảnh, PDF hoặc camera. IronQR cung cấp nhiều loại mã QR, mức lỗi và tùy chỉnh kích thước, màu sắc và logo.

Vì nó hỗ trợ tích hợp đơn giản với C#, .NET và ASP.NET, việc tích hợp khả năng mã QR có thể được thực hiện dễ dàng bởi các lập trình viên mà không cần tham khảo dịch vụ của ứng dụng bên ngoài hoặc dịch vụ bên thứ ba.

Tính năng của IronQR

Dưới đây là một số tính năng của IronQR.

  • IronQR đơn giản hóa việc tạo mã QR cho văn bản, URL hoặc nội dung nhúng. Chúng ta có thể làm cho chúng lớn hơn, tùy chỉnh màu sắc và thêm logo hoặc hình ảnh để phát triển mã QR thương hiệu.
  • Nó hỗ trợ giải mã mã QR từ các định dạng hình ảnh khác nhau, PDF hoặc camera trực tiếp, vì vậy nó rất phù hợp cho các trường hợp quét trực tiếp.
  • IronQR bao gồm hỗ trợ cho các tiêu chuẩn mã QR và mức lỗi khác nhau để đảm bảo hiệu suất mạnh mẽ ngay cả với các mã bị cắt hoặc bị tổn hại.
  • IronQR được tối ưu hóa cho tính toán hiệu suất cao và có thể tạo hoặc đọc mã QR hàng loạt, làm cho nó phù hợp nhất cho các ứng dụng doanh nghiệp.
  • Được tối ưu hóa và xây dựng cho .NET và C#, IronQR tích hợp tốt với Windows, ASP.NET và các ứng dụng .NET đa nền tảng.

Cài đặt IronQR

Sử dụng mã dưới đây trong console của Trình quản lý gói để cài đặt IronQR.

Copy
Install-Package IronQR

Chúng ta cũng có thể tìm thấy IronQR trên Trình quản lý gói NuGet bằng cách tìm kiếm bằng các từ khóa:

Đọc mã QR bằng IronQR

Mã dưới đây cho thấy cách chúng ta có thể đọc mã vạch với sự trợ giúp của IronQR.

Copy
using IronQr;
using IronSoftware.Drawing;
static void ReadData()
{
    // Mở tài sản để đọc một mã QR từ
    var inputBmp = AnyBitmap.FromFile("sample.png");

    // Tải tài sản vào QrImageInput
    QrImageInput imageInput = new QrImageInput(inputBmp);

    // Tạo một đối tượng QR Reader
    QrReader reader = new QrReader();

    // Đọc đầu vào và lấy tất cả các mã QR nhúng
    IEnumerable<QrResult> results = reader.Read(imageInput);
    foreach (var result in results)
    {
        Console.WriteLine($"Giá trị mã vạch: {result.Value}");
    }
}

Sử dụng mã trên có thể đọc mã QR bên dưới. Đầu tiên, chúng ta nhập các namespace cần thiết. Sau đó, chúng ta khởi tạo lớp yêu cầu, và sau đó, chúng ta tải đối tượng hình ảnh đã cho dưới dạng QrImageInput. Sau đó, với sự trợ giúp của QRReader, chúng ta có thể đọc giá trị mã QR từ hình ảnh. Cuối cùng, chúng ta sử dụng console để hiển thị giá trị đã đọc từ QR.

Input:
Dưới đây là hình ảnh đầu vào mà chúng ta sẽ sử dụng để đọc mã QR.

Output:

So sánh kỹ thuật giữa ZXing và IronQR

Nền tảng và Tích hợp

ZXing chủ yếu là một thư viện Java nhưng có các triển khai cho các ngôn ngữ như C#, C++, và Android, làm cho nó hoạt động trên nhiều nền tảng. Tuy nhiên, IronQR được phát triển natively cho .NET và có tích hợp natively với C#, thân thiện với môi trường, cung cấp tích hợp mạnh mẽ hơn cho các lập trình viên Microsoft.

Tính năng và Chức năng

ZXing có hỗ trợ tốt cho nhiều loại mã vạch, chẳng hạn như mã QR, nhưng cung cấp tùy chỉnh đơn giản hơn cho việc tạo mã. IronQR được thiết kế để tạo và đọc mã QR với nhiều khả năng tùy chỉnh như màu sắc, kích thước, logo và sửa lỗi.

Hiệu suất và Độ tin cậy

ZXing hiệu quả nhưng có thể cần thời gian của lập trình viên để tinh chỉnh cho khối lượng công việc cấp doanh nghiệp. IronQR được thiết kế cho hiệu suất cao trong các ứng dụng .NET và xử lý hình ảnh nhanh hơn với các tính năng cấp doanh nghiệp như tạo mã QR hàng loạt và quét hình ảnh mã QR.

So sánh mô hình cấp phép

Giấy phép ZXing

ZXing là một thư viện mã nguồn mở thường được sử dụng để mã hóa và giải mã mã QR và mã vạch dưới nhiều định dạng, chẳng hạn như PNG. Nó được phát hành dưới Giấy phép Apache 2.0, một giấy phép mã nguồn mở cho phép và hướng tới doanh nghiệp.

Các yêu cầu duy nhất là duy trì bản quyền gốc và thông báo giấy phép, cung cấp sự công nhận thích hợp và chỉ rõ liệu có thay đổi nào đã được thực hiện đối với mã nguồn.

Giấy phép IronQR

IronQR là một thư viện .NET thương mại và độc quyền được phát triển bởi Iron Software. Thư viện mã vạch .NET không phải mã nguồn mở và cần có giấy phép hoạt động để sử dụng ngoài thời gian dùng thử. IronQR có thể được tải về và thử nghiệm miễn phí với các giới hạn tính năng hoặc watermark, nhưng cần có giấy phép trả phí để chạy trong môi trường sản xuất. Iron Software cung cấp nhiều tùy chọn cấp phép.

Tất cả các giấy phép đều đi kèm với những lợi ích như cập nhật thường xuyên, hỗ trợ kỹ thuật cấp ưu tiên và quyền sử dụng thương mại. IronQR không cần công nhận nhưng không cho phép phân phối nhị phân của nó mà không có giấy phép hoạt động.

Kết luận

Cả IronQR và ZXing đều cung cấp tính năng mã QR và mã vạch vững chắc, nhưng phục vụ cho những nhu cầu khác nhau. ZXing, là một trình quét mã vạch hiệu quả và mã nguồn mở theo giấy phép Apache 2.0, phù hợp cho các lập trình viên cần một giải pháp miễn phí, tùy chỉnh cao và được hỗ trợ bởi cộng đồng, rất phù hợp cho các dự án có ngân sách thấp.
Ngược lại, IronQR có một thư viện thương mại với hỗ trợ cải thiện, cập nhật kịp thời và các tính năng cấp chuyên gia cho một trình đọc mã vạch phù hợp cho các môi trường doanh nghiệp. Các tổ chức cần độ tin cậy, sự đơn giản trong tích hợp và hỗ trợ chuyên gia có thể thích IronQR. Để tìm hiểu thêm về Giấy phép IronQR và các sản phẩm của họ trên Iron Software, hãy xem tại đây.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào