他のコンポーネントと比較

ZXing.org QRコードライブラリとIronBarcodeの徹底比較

ジョルディ・バルディア
ジョルディ・バルディア
2023年4月19日
共有:

すでに技術電話/管理電話にバーコードの電子画像があり、それを英語のテキストデータとして解読したい場合、バーコードスキャナーは最適なツールではないかもしれません。 さらに、バーコードスキャナーは1次元バーコードのみを読み取ることができますが、これには制限されたストレージ容量、ドメインステータス、サポートされているフォーマットがあり、Windows RTクラスライブラリでのみ使用することができます。 現在、2次元バーコード(QRコードとも呼ばれる)はより一般的で、更新日などのはるかに多くの情報を保存することができます。

バーコードスキャンアプリケーションは、.NETによってサポートされているため、サードパーティーツールやAPIに依存せずに、Windows、MacOS、またはLinuxで実行することができます。

ZXing.org QRコードライブラリとIronBarcode: 詳細比較: 図2 - Webアプリケーション

多くの企業にとって、スパムを避けるためにバーコードの作成とスキャンが不可欠となっています。 バーコードを作成するための2つの人気ツールは、オープンソースのZXingプロジェクトデコードとIronBarcodeです。 この記事では、各ツールの特徴と利点を探り、それらを比較します。

ZXing Decoder(ZXingデコーダー)

ZXingは、1Dおよび2Dバーコードの生成とデコードのための人気のあるオープンソースライブラリです。

また、Java、C++、.NETなどの複数のプログラミング言語をサポートしています。

ZXingデコーダーオンラインは、ユーザーがバーコードやQRコードの画像をスキャンしてデコードできるウェブベースのツールです。 さらに、ユーザーは任意の情報、通常はURLやテキストの形式でエンコードしたい情報に対して、QRコードを作成することができます。

ZXingオンラインデコーダーを使用するには、次の手順に従ってください:

  1. ZXingデコーダーオンラインウェブサイトを訪問してください。

    ZXing.org QRコードライブラリとIronBarcode: 包括的な比較: 図2 - Googleが開発したZXing Web

  2. 「ファイルを選択」ボタンをクリックして、QRコード画像ファイルを選択してください。

  3. 画像を選択したら、「送信」ボタンをクリックしてください。

    ZXing.org QRコードライブラリとIronBarcode: 包括的な比較: 図3 - ZXingデコード

  4. 認識可能なコードが見つかると、ツールはQRコードをデコードし、結果の情報を表示します。

    ライブラリは使いやすく、Webアプリケーション、モバイルアプリ、およびデスクトップアプリケーションに統合できます。

    ZXing は広く採用されており、多くの開発者コミュニティが開発に貢献し、サポートを提供しています。

    ライブラリはデバイスモデルやOSバージョンなどのデバイス情報を収集しますが、これは潜在的なセキュリティリスクと見なされる可能性があります。

    また、一部の人々は、ライブラリが独立した組織によって管理されていないため、その所有権と管理について懸念を示しています。

    全体として、ZXingはバーコードの生成とデコードのための強力で多用途なライブラリであり、広く採用され、コミュニティからのサポートがあります。

    例えば、ZXingを使用してQRコードを生成するには、開発者は数行のコードを書く必要があるだけです:


    using ZXing;
    using ZXing.QrCode;

    // Generate a QR code
    BarcodeWriter writer = new BarcodeWriter();
    writer.Format = BarcodeFormat.QR_CODE;
    Bitmap qrCode = writer.Write("Hello, ZXing!");

    using ZXing;
    using ZXing.QrCode;

    // Generate a QR code
    BarcodeWriter writer = new BarcodeWriter();
    writer.Format = BarcodeFormat.QR_CODE;
    Bitmap qrCode = writer.Write("Hello, ZXing!");
Imports ZXing
	Imports ZXing.QrCode

	' Generate a QR code
	Private writer As New BarcodeWriter()
	writer.Format = BarcodeFormat.QR_CODE
	Dim qrCode As Bitmap = writer.Write("Hello, ZXing!")
$vbLabelText   $csharpLabel

ZXingプロジェクトを使用してQRコードをデコードするには、開発者は次のコードを使用できます:


    using ZXing;
    using ZXing.QrCode;

    // Decode a QR code
    BarcodeReader reader = new BarcodeReader();
    Result result = reader.Decode(qrCode);
    string text = result.Text;

    using ZXing;
    using ZXing.QrCode;

    // Decode a QR code
    BarcodeReader reader = new BarcodeReader();
    Result result = reader.Decode(qrCode);
    string text = result.Text;
Imports ZXing
	Imports ZXing.QrCode

	' Decode a QR code
	Private reader As New BarcodeReader()
	Private result As Result = reader.Decode(qrCode)
	Private text As String = result.Text
$vbLabelText   $csharpLabel

ZXing.org QRコードライブラリとIronBarcode: 徹底比較: 図4 - QRコードジェネレータ

ZXing.org QR コードライブラリと IronBarcode: 包括的な比較: 図5 - 表示されている QR コードファイル

IronBarcodeの紹介

IronBarcodeはIron Softwareによって開発された、.NET開発者向けの強力なバーコード生成およびスキャンライブラリです。

IronBarcodeは、QRコード、データマトリックスコード、UPC-Aバーコードを含むさまざまなバーコードタイプを生成およびスキャンできる、使いやすいAPIを提供します。

IronBarcodeライブラリは、ZXing.NETライブラリの機能を拡張する方法としてIron Softwareによって作成されました。

ZXing.org QRコードライブラリとIronBarcode:包括的な比較:図6 - サポートされているバーコード形式

新機能として、2DバーコードやPDF417バーコードの生成機能、さらに画像ファイルから直接バーコードを読み取る機能が追加されました。

これはIronBarcodeを使用してQRコードを生成する方法の例です:


    using IronBarCode;

    // Generate a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.SaveAsImage("qrcode.png");

    using IronBarCode;

    // Generate a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.SaveAsImage("qrcode.png");
Imports IronBarCode

	' Generate a QR code
	Private barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode)
	barcode.SaveAsImage("qrcode.png")
$vbLabelText   $csharpLabel

ZXing.org QRコードライブラリとIronBarcode: 総合的な比較: 図7 - QRコード

バーコードをスキャンするためにIronBarcodeを使用する場合、次のコードを使用できます:


    using IronBarCode;

    // Scan a barcode
    var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
    string text = barcode.Text;

    using IronBarCode;

    // Scan a barcode
    var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
    string text = barcode.Text;
Imports IronBarCode

	' Scan a barcode
	Private barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode)
	Private text As String = barcode.Text
$vbLabelText   $csharpLabel

ZXing.org QRコードライブラリとIronBarcode: 包括的な比較: 図8 - C#でバーコード画像を作成

IronBarcode は、2Dバーコード、UPC-A、UPC-E、EAN-8、EAN-13、Code39、Code128、PDF417 など多くのバーコードタイプをサポートしています。

それは、ZXing.NETライブラリの強みを基に、より速く、より正確なバーコードのスキャンと生成を提供し、新しい機能と機能性を追加しています。

IronBarcodeの使い方

以下はIronBarcodeの使用方法に関する手順です:

ステップ1: IronBarcodeライブラリをインストールする

.NETプロジェクトでIronBarcodeを使用するには、まずNuGetを使用してIronBarcodeライブラリをインストールする必要があります。 以下のコマンドをNuGetパッケージマネージャコンソールで実行することで行うことができます:


    Install-Package IronBarCode

ステップ 2: Barcodeを生成する

IronBarcodeを使用してバーコードを生成するには、BarcodeWriterクラスを使用できます。


    using IronBarCode;

    // Generate a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.SaveAsImage("qrcode.png");

    using IronBarCode;

    // Generate a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.SaveAsImage("qrcode.png");
Imports IronBarCode

	' Generate a QR code
	Private barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode)
	barcode.SaveAsImage("qrcode.png")
$vbLabelText   $csharpLabel

このコードは、「Hello, IronBarcode!」というテキストのQRコードを作成し、「qrcode.png」という名前の画像ファイルとして保存します。

ステップ3: バーコードをスキャンする

IronBarcodeを使用してバーコードをスキャンするには、BarcodeReaderクラスを使用できます。


    using IronBarCode;

    // Scan a QR code
    var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
    string text = barcode.Text;

    using IronBarCode;

    // Scan a QR code
    var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
    string text = barcode.Text;
Imports IronBarCode

	' Scan a QR code
	Private barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode)
	Private text As String = barcode.Text
$vbLabelText   $csharpLabel

このコードは、画像ファイル「qrcode.png」からQRコードを読み取り、バーコードにエンコードされたテキストを返します。

ZXing.org QRコードライブラリとIronBarcodeの包括的比較: 図9 - バーコードをスキャンする

ステップ4: バーコードをカスタマイズする

IronBarcodeは、生成されたバーコードスキャンの実装の外観と挙動を制御するためのさまざまなカスタマイズオプションを提供します。

以下は、IronBarcode を使用して QR コードをカスタマイズする方法の例です:バーコードスキャンの実装


    using IronBarCode;

    // Customize a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.ResizeTo(400, 400);
    barcode.SetMargins(20);
    barcode.SetForegroundColor(Color.Black);
    barcode.SetBackgroundColor(Color.White);
    barcode.AddCaptionAbove("Scan me with your smartphone!");
    barcode.AddImageLogo("logo.png", 80, 80);
    barcode.SaveAsImage("qrcode.png");

    using IronBarCode;

    // Customize a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.ResizeTo(400, 400);
    barcode.SetMargins(20);
    barcode.SetForegroundColor(Color.Black);
    barcode.SetBackgroundColor(Color.White);
    barcode.AddCaptionAbove("Scan me with your smartphone!");
    barcode.AddImageLogo("logo.png", 80, 80);
    barcode.SaveAsImage("qrcode.png");
Imports IronBarCode

	' Customize a QR code
	Private barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode)
	barcode.ResizeTo(400, 400)
	barcode.SetMargins(20)
	barcode.SetForegroundColor(Color.Black)
	barcode.SetBackgroundColor(Color.White)
	barcode.AddCaptionAbove("Scan me with your smartphone!")
	barcode.AddImageLogo("logo.png", 80, 80)
	barcode.SaveAsImage("qrcode.png")
$vbLabelText   $csharpLabel

このコードは、「Hello, IronBarcode!」というテキストを持つQRコードを生成し、それをカスタマイズして400x400ピクセルにリサイズし、20ピクセルの余白を追加し、前景色を黒に、背景色を白に設定し、バーコードの上にキャプションを追加し、ロゴ画像を追加します。

IronBarcodeの機能

IronBarcodeは、オープンソースのZXingライブラリの上に構築されていますが、その機能を拡張し、QRコード、Code 128、Code 39、EAN-13、EAN-8、UPC-Aなど、より広範なバーコードタイプをサポートしています。

以下は、IronBarcodeができることの一部です:

バーコードを生成

IronBarcode は、線形および2Dバーコードを含むさまざまなタイプとスタイルのバーコードを簡単に生成でき、色、テキスト、画像オーバーレイなどのカスタマイズ可能な機能を備えています。 以下のコードスニペットはQRコードを生成します:


    var barcode = IronBarCode.BarcodeWriter.CreateBarcode("Hello World!", IronBarCode.BarcodeWriterEncoding.QRCode);
    barcode.SaveAsJpeg("QRCode.jpg");

    var barcode = IronBarCode.BarcodeWriter.CreateBarcode("Hello World!", IronBarCode.BarcodeWriterEncoding.QRCode);
    barcode.SaveAsJpeg("QRCode.jpg");
Dim barcode = IronBarCode.BarcodeWriter.CreateBarcode("Hello World!", IronBarCode.BarcodeWriterEncoding.QRCode)
	barcode.SaveAsJpeg("QRCode.jpg")
$vbLabelText   $csharpLabel

ZXing.org QRコードライブラリとIronBarcode: 徹底比較: 図10 - スキャンされるCode128バーコード画像

バーコードの読み取り

IronBarcodeは、画像、PDF、およびライブカメラストリームからバーコードを読み取る強力なバーコードスキャナーも提供します。 以下のコードは画像ファイルからQRコードを読み取ります:


    var barcode = IronBarCode.BarcodeReader.Read("QRCode.jpg", IronBarCode.BarcodeReaderEncoding.QRCode);
    Console.WriteLine(barcode.Text);

    var barcode = IronBarCode.BarcodeReader.Read("QRCode.jpg", IronBarCode.BarcodeReaderEncoding.QRCode);
    Console.WriteLine(barcode.Text);
Dim barcode = IronBarCode.BarcodeReader.Read("QRCode.jpg", IronBarCode.BarcodeReaderEncoding.QRCode)
	Console.WriteLine(barcode.Text)
$vbLabelText   $csharpLabel

ZXing.org QRコードライブラリとIronBarcode: 包括的な比較: 図11 - PDF内に保存されたバーコードの読み取り

バーコードを検証する

IronBarcodeは、他のバーコードリーダーによってスキャンできる有効なバーコードであることを確認するための検証も行うことができます。 以下のコードスニペットは、Code 128バーコードを検証します:


    var barcode = IronBarCode.BarcodeReader.Read("Code128.jpg", IronBarCode.BarcodeReaderEncoding.Code128);
    if (barcode.IsValid)
    {
        Console.WriteLine("Barcode is valid.");
    }
    else
    {
        Console.WriteLine("Barcode is invalid.");
    }

    var barcode = IronBarCode.BarcodeReader.Read("Code128.jpg", IronBarCode.BarcodeReaderEncoding.Code128);
    if (barcode.IsValid)
    {
        Console.WriteLine("Barcode is valid.");
    }
    else
    {
        Console.WriteLine("Barcode is invalid.");
    }
Dim barcode = IronBarCode.BarcodeReader.Read("Code128.jpg", IronBarCode.BarcodeReaderEncoding.Code128)
	If barcode.IsValid Then
		Console.WriteLine("Barcode is valid.")
	Else
		Console.WriteLine("Barcode is invalid.")
	End If
$vbLabelText   $csharpLabel

バーコードを変換

IronBarcodeは、Code 39バーコードをQRコードに変換するなど、バーコードを別の形式に変換することができます。 次のコードスニペットは、Code 39バーコードをQRコードに変換します:


    var barcode = IronBarCode.BarcodeReader.Read("Code39.jpg", IronBarCode.BarcodeReaderEncoding.Code39);
    var qrCode = IronBarCode.BarcodeWriter.CreateBarcode(barcode.Text, IronBarCode.BarcodeWriterEncoding.QRCode);
    qrCode.SaveAsJpeg("QRCode.jpg");

    var barcode = IronBarCode.BarcodeReader.Read("Code39.jpg", IronBarCode.BarcodeReaderEncoding.Code39);
    var qrCode = IronBarCode.BarcodeWriter.CreateBarcode(barcode.Text, IronBarCode.BarcodeWriterEncoding.QRCode);
    qrCode.SaveAsJpeg("QRCode.jpg");
Dim barcode = IronBarCode.BarcodeReader.Read("Code39.jpg", IronBarCode.BarcodeReaderEncoding.Code39)
	Dim qrCode = IronBarCode.BarcodeWriter.CreateBarcode(barcode.Text, IronBarCode.BarcodeWriterEncoding.QRCode)
	qrCode.SaveAsJpeg("QRCode.jpg")
$vbLabelText   $csharpLabel

IronBarcodeがZXing Decoder Onlineより優れている理由

以下は、IronBarcodeがZXingより優れている点のいくつかです:

  1. パフォーマンス: IronBarcodeはZXingよりも高速であり、高速なバーコードスキャンと生成が求められるウェブアプリケーションにとって優れた選択肢です。

  2. 使いやすさ: IronBarcodeのAPIはシンプルで直感的であり、わずか数行のコードでバーコードの作成とスキャンが簡単に行えます。 一方で、ZXingのAPIは複雑で、初心者には使いにくい場合があります。

  3. 出力の品質: IronBarcodeは、高品質で小さいサイズでも読みやすいバーコードを生成します。 対照的に、ZXingのバーコードは特に小さいサイズの場合、読み取りが難しいことがあります。

  4. 対応フォーマット: IronBarcode は、UPC-A、2Dバーコードなど、幅広いバーコードフォーマットに対応しています。 比較すると、ZXingプロジェクトは限られた数のバーコードフォーマットのみをサポートしています。

  5. ライセンス: IronBarcodeは、開発者がニーズに応じて無料でライブラリを使用したり、ライセンスを購入したりできる柔軟なライセンスモデルを提供しています。 対照的に、ZXingのライセンスは制限が厳しく、開発者が商用プロジェクトでこのライブラリを使用するのが困難です。

    ZXing.org QRコードライブラリとIronBarcode: 詳細な比較: 図12 - マルチフレームTIFF画像からのバーコード読み取り

    IronBarcodeは、パフォーマンス、使いやすさ、出力品質、サポートされている形式、およびライセンスに関して、ZXingよりも優れたライブラリです。

    IronBarcodeを試して、バーコードのスキャニングおよび生成機能をどのように強化できるかをご覧になりたいですか? IronBarcodeの無料体験版を提供できることを嬉しく思います。ぜひその機能と利点をお試しください。

    試用期間中は、さまざまなバーコード形式のサポート、高度なカスタマイズオプション、および既存のプロジェクトとのシームレスな統合を含む、IronBarcodeの強力な機能のすべてにフルアクセスできます。

    試用を開始するには、当社のウェブサイトにアクセスしてIronBarcodeパッケージをダウンロードしてください。 その後、無料トライアルを利用して、IronBarcodeが提供するすべての機能を探求し、バーコードのスキャンおよび生成ワークフローをどのように簡素化できるかを直接確認できます。

ジョルディ・バルディア
ソフトウェアエンジニア
ジョルディは、Iron Softwareでのスキルを活かしていないときには、ゲームプログラミングをしており、Python、C#、C++に最も堪能です。彼は製品テスト、製品開発、研究の責任を共有しており、継続的な製品改善に大きな価値をもたらしています。この多様な経験は彼を常に挑戦的で魅力的に保ち、彼はIron Softwareで働く一番好きな側面の一つだと言っています。ジョルディはフロリダ州マイアミで育ち、フロリダ大学でコンピューターサイエンスと統計学を学びました。
< 以前
C# 開発者向け ZXing でバーコードをスキャンする方法
次へ >
IronBarcode と QrCoder C# の比較