VintaSoft Barcode .NET SDK を使用して QR コードを認識および生成します。

ブログ カテゴリ: バーコード.NET

2025/06/24

VintaSoft Barcode .NET SDK は、Windows、Linux、 macOSでは、.NET、WPF、Web、MAUIでQRコードを認識・生成できます。数行のコードを追加するだけで、.NETアプリケーションにQRコードを認識・生成する機能を追加できます。

QRコードとは?

QRコードは2次元マトリックスバーコードで、世界で最も広く使用されている2次元バーコードです。このバーコードの名前は、その開発理念である「クイックレスポンス」、つまり任意の傾斜角度での高速認識を反映しています。QRコードバーコードの特徴は、明確に識別できる検索パターン(バーコードの角にある黒い四角)です。


QRコードバーコードの特徴

現代のメーカーはすべて、ISO/IEC 18004規格で規定されているQRコードバーコードを使用しています。AIM ITS/97-001規格では、QRコードモデル1が規定されていますが、これはバーコードの古いバージョンであり、使用は推奨されていません。

QR コード バーコードは、4 つのエンコード モードでさまざまなタイプの混合データを保存できます。

QR コード バーコードは、破損したバーコードの認識を可能にするリード ソロモン エラー訂正アルゴリズムを使用します。バーコードを作成するときに、予想される使用条件に応じて 4 つのエラー訂正レベルのいずれかが選択されます。エラー訂正レベルが高いほど、バーコードに格納できるデータ量は少なくなります。


バーコードマトリックスの構造

QR およびマイクロ QR バーコードマトリックスの構造は次のとおりです。



マイクロ QR バーコードとは?

マイクロ QR バーコードは QR コードのコンパクト版です。マイクロ QR バーコードは通常、小型パッケージのマーキングに使用されます。


マイクロ QR バーコードには検索パターンが 1 つしかありません。このバーコードのデータ量は非常に限られています。


「GS1 QR」バーコードとは何ですか?

"GS1 QR" バーコードは、GS1 システム データの形式で値を保存する QR バーコードです。VintaSoft Barcode .NET SDK は、「GS1 QR」バーコードを生成および認識できます。
「GS1 QR」バーコードの画像は次のとおりです。


「GS1 Digital Link QR」バーコードとは何ですか?

"GS1 Digital Link QR" バーコードは、GS1 Digital Link の形式で値を保存する QR バーコードです。 VintaSoft Barcode .NET SDKは、「GS1 Digital Link QR」バーコードを生成および認識できます。
「GS1 Digital Link QR」バーコードの画像は次のとおりです。


「XFA 圧縮 QR」バーコードとは何ですか?

「XFA圧縮QR」バーコードは、Adobe XFA仕様に従って圧縮されたデータを格納するQRバーコードです。VintaSoft Barcode .NET SDKは、「XFA圧縮QR」バーコードを生成および認識できます。
「XFA 圧縮 QR」バーコードの画像はこちらです:


「スイス QR コード」バーコードとは何ですか?

「スイスQRコード」バーコードは、2022年10月1日からスイスとリヒテンシュタインの請求書に使用されているQRバーコードのサブセットです。VintaSoft Barcode .NET SDKは、「スイスQRコード」バーコードを生成および認識できます。
「スイス QR コード」バーコードの画像は次のとおりです。


「HIBC LIC QR コード」バーコードとは何ですか?

「HIBC LIC QR コード」バーコードは、医療機器の UDI 準拠、メーカー、製品、バッチの識別に使用される QR コード バーコードのサブセットです。VintaSoft Barcode .NET SDK は、「HIBC LIC QR コード」バーコードを生成および認識できます。
「HIBC LIC QR コード」バーコードの画像は次のとおりです。


特殊な「構造追加」シンボル

QRコードは「Structure append」と呼ばれる特殊なシンボルをサポートしており、これによりデータを複数のQRコードに分割できます。このシンボルはバーコードにエンコードされており、バーコード部分の数と順序を明確に識別できます。この機能は、細長い領域をマークしたり、大量のデータ配列を配置したりするのに使用できます。


VintaSoft Barcode .NET SDK を使用すると、データを分割して、「構造追加」シンボルでリンクされた複数の QR コード バーコードを生成できます。 SDK には、「構造追加」シンボルを使用して分割された一連の QR コードからデータを復元するアルゴリズムも含まれています。


VintaSoft Barcode .NET SDK はどのような QR コード バーコードを認識できますか?

VintaSoft Barcode .NET SDK は、あらゆる種類の QR コードとマイクロ QR バーコードを認識します。認識には独自のアルゴリズムが使用され、さまざまな問題のあるバーコードをすばやく認識できます。


カメラでキャプチャした画像内の QR コード バーコードを認識する方法を示す C# コードを以下に示します。
/// <summary>
/// Reads QR Code barcodes from a <see cref="System.Drawing.Bitmap"/>.
/// </summary>
/// <param name="bitmap">A bitmap with barcodes.</param>
public static void ReadQRCodeBarcodesFromBitmap(System.Drawing.Bitmap bitmap)
{
    // create barcode reader
    using (Vintasoft.Barcode.BarcodeReader reader = new Vintasoft.Barcode.BarcodeReader())
    {
        // specify that reader must search for QR Code barcodes
        reader.Settings.ScanBarcodeTypes = Vintasoft.Barcode.BarcodeType.QR;

        // read barcodes from image
        Vintasoft.Barcode.IBarcodeInfo[] infos = Vintasoft.Barcode.GdiExtensions.ReadBarcodes(reader, bitmap);

        // if barcodes are not detected
        if (infos.Length == 0)
        {
            System.Console.WriteLine("No barcodes found.");
        }
        // if barcodes are detected
        else
        {
            // get information about extracted barcodes

            System.Console.WriteLine(string.Format("{0} barcodes found:", infos.Length));
            System.Console.WriteLine();
            for (int i = 0; i < infos.Length; i++)
            {
                Vintasoft.Barcode.IBarcodeInfo info = infos[i];
                System.Console.WriteLine(string.Format("[{0}:{1}]", i + 1, info.BarcodeType));
                System.Console.WriteLine(string.Format("Value:      {0}", info.Value));
                System.Console.WriteLine(string.Format("Region:     {0}", info.Region));
                System.Console.WriteLine();
            }
        }
    }
}


VintaSoft Barcode .NET SDK はどのような QR コード バーコードを生成できますか?

VintaSoft Barcode .NET SDK は、あらゆる種類の QR コードとマイクロ QR バーコードを生成します。

QR コード バーコードのラスター イメージを生成する方法を示す C# コードは次のとおりです。
/// <summary>
/// Returns the QR Code barcode as <see cref="System.Drawing.Bitmap"/>.
/// </summary>
/// <param name="value">The barcode value.</param>
/// <returns>A <see cref="System.Drawing.Bitmap"/> object.</returns>
public static System.Drawing.Bitmap GetQRCodeBarcodeAsBitmap(string value)
{
    // create the barcode writer
    using (Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter())
    {
        // set barcode writer settings
        barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.QR;
        barcodeWriter.Settings.Value = value;

        // get a barcode image as System.Drawing.Bitmap
        return Vintasoft.Barcode.GdiExtensions.GetBarcodeAsBitmap(barcodeWriter);
    }
}


マイクロ QR バーコードのラスター イメージを生成する方法を示す C# コードは次のとおりです。
/// <summary>
/// Returns the Micro QR barcode as <see cref="System.Drawing.Bitmap"/>.
/// </summary>
/// <param name="value">The barcode value.</param>
/// <returns>A <see cref="System.Drawing.Bitmap"/> object.</returns>
public static System.Drawing.Bitmap GetMicroQRBarcodeAsBitmap(string value)
{
    // create the barcode writer
    using (Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter())
    {
        // set barcode writer settings
        barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.MicroQR;
        barcodeWriter.Settings.Value = value;

        // get a barcode image as System.Drawing.Bitmap
        return Vintasoft.Barcode.GdiExtensions.GetBarcodeAsBitmap(barcodeWriter);
    }
}


QR コード バーコードのベクター (SVG) イメージを生成する方法を示す C# コードは次のとおりです。
/// <summary>
/// Returns the QR Code barcode in vector form as a SVG string.
/// </summary>
/// <param name="barcodeValue">Barcode value.</param>
public static void GetQrCodeBarcodeAsSvgString(string barcodeValue)
{
    // create the barcode writer
    using (Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter())
    {
        // set barcode writer settings
        barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.QR;
        barcodeWriter.Settings.Value = barcodeValue;

        // generate QR Code barcode as a SVG string
        return barcodeWriter.GetBarcodeAsSvgFile();
    }
}