C#で誤り訂正を設定する方法 | IronQR

C#でエラー訂正を設定する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

C#バーコードのエラー訂正は、BarCodeのQRCodeWriter.CreateQrCodeメソッドのQrErrorCorrectionLevelパラメータを使用して設定します。

エラー訂正は、視覚的な欠陥やエンコーディングエラーにもかかわらず、バーコードの読み取り可能性を維持する能力を指します。 これらの損傷は、印刷の不完全さや汚れ、傷、スキャン条件の違いなどにより発生する可能性があります。 エラー訂正は、特にC#のQRコードで作業する場合、どのタイプのBarCodeエンコーディングが適しているかを決定する大きな要因です。

一般的に、2Dバーコードは1Dバーコードに比べて以下の要因により欠損に対してより高い耐性を持っています。

  • データ容量: 2Dバーコードは、1Dバーコードよりも多くのデータを保存し、水平方向と垂直方向の両方をエンコードします。 サポートされている BarCode フォーマットについては、こちらをご覧ください。
  • 冗長性: 2Dバーコードは、データエンコードの複数の層を持ち、バーコードの一部が損傷しても残りの無傷のセクションから情報を抽出できます。
  • コンパクトさ: 2Dバーコードはそのコンパクトな形状から限られたスペースに適しています。
  • 柔軟性: 2Dバーコードはさまざまな角度と方向からスキャンできます。

不完全な BarCode や、スキャン条件が理想的でない画像修正シナリオを扱う場合、エラー修正が特に重要になります。

クイックスタート: QRコード作成におけるエラー訂正レベルの使用

この短い例では、エラー訂正レベルを"中"に設定し、IronBarcodeでQRコードを生成する方法を示します。 開発者は、CreateQrCodeメソッドを使用して、コンテンツ、サイズ、エラー訂正レベルを指定できます。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronBarcode をインストールします

    PM > Install-Package BarCode

  2. このコード スニペットをコピーして実行します。

    var qr = IronBarCode.QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, IronBarCode.QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("qr.png");
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronBarcode を使い始めましょう
    arrow pointer


QRコードのエラー訂正を調整するにはどうすればよいですか?

現在、IronBarcodeは包括的なバーコード生成機能の一部として、QRコードマイクロQRrMQRのエラー訂正設定をサポートしています。 QRコードの標準で指定されている4つのプリセットエラー訂正レベルをすべてサポートしています。 The error correction level is adjusted via the QrErrorCorrectionLevel parameter in the QRCodeWriter.CreateQrCode method. エラー訂正の4つのレベルは以下の通りです。

  • 最上: レベルH。 データの最大30%まで回復可能です。
  • : レベルQ。 データの最大25%まで回復可能です。
  • : レベルM。 データの最大15%まで回復可能です。
  • : レベルL。 データの最大7%まで回復可能です。

より高いエラー訂正レベルは、より複雑なQRコード画像をもたらし、QRコード生成時に視覚的な明瞭さとエラー訂正のバランスを取る必要があります。 以下のコードサンプルはエラー訂正の設定を示しています。

:path=/static-assets/barcode/content-code-examples/how-to/set-error-correction.cs
// Import the necessary namespace for barcode generation
using IronBarCode;

// Create a QR code with the specified URL, size, and error correction level
GeneratedBarcode mediumCorrection = QRCodeWriter.CreateQrCode(
    "https://ironsoftware.com/csharp/barcode/", // URL to be encoded in the QR code
    500,                                       // Size of the QR code (500x500 pixels)
    QRCodeWriter.QrErrorCorrectionLevel.Medium // Error correction level to handle distortions
);

// Save the generated QR code image as a PNG file with the specified filename
mediumCorrection.SaveAsPng("mediumCorrection.png");
$vbLabelText   $csharpLabel

どの誤り訂正レベルを選択すべきですか?

エラー訂正レベルの選択は、特定の使用ケースや環境によって異なります。 QRコードが物理的な損傷、汚れ、部分的な不明瞭さにさらされる可能性があるアプリケーションでは、より高いエラー訂正レベル(QまたはH)を推奨します。 これらのレベルは、QRコードの複雑さとサイズを増加させる代償として、より優れた耐障害性を提供します。

デジタルディスプレイや高品質印刷のようなクリーンで管理された環境では、エラー訂正レベルを低く(LまたはM)すれば十分かもしれません。これらのQRコードは、よりシンプルで密度が低く、小さなサイズでもスキャンしやすくなります。 次の要素を考慮してください:

  • 物理的環境:屋外や産業環境では、より高いエラー訂正の恩恵を受ける
  • 印刷品質:低品質の印刷には、より高いエラー修正が必要です。
  • サイズの制約:スペースが限られているため、読みやすさのためにエラー修正を少なくする必要がある場合があります。
  • スキャン距離:スキャン距離が長いほど、シンプルなQRコードに適しています。

比較のために、異なるエラー訂正レベルのQRコードを生成する方法を示す例を示します:

using IronBarCode;
using System.Drawing;

// Generate QR codes with all four error correction levels
var content = "https://ironsoftware.com/csharp/barcode/";
int size = 500;

// Create QR codes with different error correction levels
var lowCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Low)</code>;
var mediumCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Medium)</code>;
var highCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.High)</code>;
var highestCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Highest)</code>;

// Save each with descriptive filenames
<code>lowCorrection.SaveAsPng("qr_low_correction.png")</code>;
<code>mediumCorrection.SaveAsPng("qr_medium_correction.png")</code>;
<code>highCorrection.SaveAsPng("qr_high_correction.png")</code>;
<code>highestCorrection.SaveAsPng("qr_highest_correction.png")</code>;
using IronBarCode;
using System.Drawing;

// Generate QR codes with all four error correction levels
var content = "https://ironsoftware.com/csharp/barcode/";
int size = 500;

// Create QR codes with different error correction levels
var lowCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Low)</code>;
var mediumCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Medium)</code>;
var highCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.High)</code>;
var highestCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Highest)</code>;

// Save each with descriptive filenames
<code>lowCorrection.SaveAsPng("qr_low_correction.png")</code>;
<code>mediumCorrection.SaveAsPng("qr_medium_correction.png")</code>;
<code>highCorrection.SaveAsPng("qr_high_correction.png")</code>;
<code>highestCorrection.SaveAsPng("qr_highest_correction.png")</code>;
$vbLabelText   $csharpLabel

エラー訂正を制御するパラメータは何ですか?

The primary parameter controlling error correction in IronBarcode is the QrErrorCorrectionLevel enumeration. This parameter is passed to the CreateQrCode method and determines how much redundant data is embedded in the QR code. カスタムQRコードを作成する場合、エラー訂正設定を他のスタイリング オプションと組み合わせることができます:

using IronBarCode;

// Create a styled QR code with high error correction
var styledQr = <code>QRCodeWriter.CreateQrCode("Important Data", 500, QRCodeWriter.QrErrorCorrectionLevel.High)</code>;

// Apply custom styling
styledQr.ChangeBarCodeColor(System.Drawing.Color.DarkBlue)
    .SetMargins(10)
    .AddAnnotationTextAboveBarcode("Scan for Details");

// Export with various options
styledQr.SaveAsPng("styled_high_correction.png");
styledQr.SaveAsJpeg("styled_high_correction.jpg");
styledQr.SaveAsPdf("styled_high_correction.pdf");
using IronBarCode;

// Create a styled QR code with high error correction
var styledQr = <code>QRCodeWriter.CreateQrCode("Important Data", 500, QRCodeWriter.QrErrorCorrectionLevel.High)</code>;

// Apply custom styling
styledQr.ChangeBarCodeColor(System.Drawing.Color.DarkBlue)
    .SetMargins(10)
    .AddAnnotationTextAboveBarcode("Scan for Details");

// Export with various options
styledQr.SaveAsPng("styled_high_correction.png");
styledQr.SaveAsJpeg("styled_high_correction.jpg");
styledQr.SaveAsPdf("styled_high_correction.pdf");
$vbLabelText   $csharpLabel

エラー訂正がQRコードの複雑さに影響するのはなぜですか

誤り訂正は、リード・ソロモン誤り訂正アルゴリズムを使ってQRコードに冗長データを追加することで機能します。 この冗長性により、QRコードリーダーはデータの欠落部分や破損部分を再構築することができます。 エラー訂正を追加すればするほど、同じ情報をエンコードするために必要なモジュール(黒と白の正方形)の数が増え、より緻密で複雑なパターンになります。

この複雑さは、BarCodeの読み取り設定やスキャンの性能に実用的な影響を与えます。 エラー修正レベルが高い場合、最適なパフォーマンスを得るためにリーダーの設定を調整する必要があります。

エラー訂正レベルの違いは何ですか?

以下は同じ値を表すがエラー訂正レベルが異なるQRコード画像のサンプルセットです。 観察されたように、より高いエラー訂正レベルは、より複雑なQRコード画像をもたらし、より高い耐障害性を提供します。

QR code with highest error correction level showing dense pattern of black and white squares
QR code demonstrating high error correction level with dense data patterns and robust finder patterns
QR code with medium error correction level showing clear data pattern and finder squares
QR code with low error correction level showing standard black and white matrix pattern

どのような場合に高次エラー訂正を使用する必要がありますか?

いくつかのシナリオでは、より高いエラー訂正レベルを推奨します:

1.産業用アプリケーション:QRコードが過酷な条件にさらされる製品や機器に使用される場合。 2.屋外サイネージ:風雨にさらされる屋外に表示されるQRコード用 3.長期保管:何年もスキャン可能な状態を維持する必要がある文書や製品。 4.マーケティング資料:QRコードを部分的に隠すロゴやデザインを取り入れる場合

複数の BarCode を読み取ったり、破損した画像を処理したりする高度なシナリオでは、より高度なエラー補正がさらなる信頼性を提供します。

エラー訂正はQRコードのサイズにどのように影響しますか?

エラー訂正は、QRコードの物理的なサイズとデータ容量に直接影響します。 エラー訂正のレベルが高くなると、同じ量のデータをエンコードするために、より多くのモジュールが必要になります:

  • 同じデータ内容の大きなQRコード
  • 所定のQRコードサイズにおける最大データ容量の削減
  • 小さいサイズではスキャンしにくい複雑なパターン
  • 生成とスキャンの両方で処理時間が増加

補正レベルの視覚的な違いは何ですか?

同じデータをエンコードしたQRコードを比較すると、エラー訂正レベルによる視覚的な違いが明らかになります。 修正レベルが低いほど、モジュール数が少ないシンプルなパターンが作成され、レベルが高いほど、より緻密で複雑なパターンが作成されます。 これらの違いは、外観だけでなく、印刷や表示に関する実用的な考慮事項にも影響します。

より高度なバーコード生成技術については、包括的なドキュメントを参照し、.NET アプリケーションで最適な結果を得るためのエラー訂正と他のバーコード機能の統合について学んでください。

よくある質問

バーコード技術におけるエラー訂正とは何ですか?

BarCodeのエラー訂正とは、視覚的な欠陥やエンコーディングエラーにもかかわらず、バーコードの可読性を維持する機能を指します。IronBarcodeはQrErrorCorrectionLevelパラメータを通してエラー訂正を実装しており、選択したレベルに応じて破損したデータの7-30%を回復することができます。

C#でQRコードを作成する際、エラー訂正レベルはどのように設定するのですか?

IronBarcodeのQRCodeWriter.CreateQrCodeメソッドでは、QrErrorCorrectionLevelパラメータを指定してエラー訂正レベルを設定できます。このメソッドには、コンテンツ、サイズ、および4つのエラー訂正レベル(L、M、Q、H)のいずれかを指定します。

QRコードで利用可能な4つのエラー訂正レベルは何ですか?

IronBarcodeはQRコードに4つのエラー訂正レベルを事前に設定することができます:L (Low - 7% recovery)、M (Medium - 15% recovery)、Q (Quartile - 25% recovery)、H (High - 30% recovery)です。より高いレベルは、より複雑なQRコードを作成しますが、より優れた耐ダメージを提供します。

どのバーコードタイプがエラー訂正設定をサポートしていますか?

現在、IronBarcodeはQRコード、マイクロQR、rMQRのエラー訂正レベルの設定をサポートしています。これらの2次元バーコードフォーマットは、従来の1次元バーコードに比べて優れたエラー訂正機能を提供します。

なぜ 2D バーコードは 1D バーコードよりもエラー修正が優れているのですか?

IronBarcodeがサポートする2Dバーコードは、より高いデータ容量(水平方向と垂直方向の両方をエンコード)、無傷の部分からデータを抽出できる内蔵の冗長性、限られたスペースに適したコンパクトな形状、さまざまな角度からスキャンできる柔軟性により、より優れたエラー訂正機能を備えています。

どのような場合に高いエラー訂正レベルを使用する必要がありますか?

不完全な印刷条件、潜在的な物理的損傷(傷、汚れ)、困難なスキャン環境、または長期的な耐久性が必要な場合は、IronBarcodeで高いエラー訂正レベルを使用してください。レベルが高いほど信頼性の高いスキャンが可能になりますが、QRコードの複雑さが増します。

Hairil Hasyimi Bin Omar
ソフトウェアエンジニア
すべての優れたエンジニアのように、ハイリルは熱心な学習者です。彼はC#、Python、Javaの知識を磨き、その知識を活用してIron Softwareのチームメンバーに価値を追加しています。ハイリルはマレーシアのマラ工科大学からIron Softwareのチームに参加し、化学およびプロセス工学の学士号を取得しました。
準備はできましたか?
Nuget ダウンロード 2,035,202 | バージョン: 2025.12 リリース