IRONSOFTWAREHOME

How to Read QR Codes from Images in C#

Curtis Chau
Curtis Chau
Updated: 2026年5月9日

IronQRを使用すると、開発者はBarcodeReader.Readメソッドを使用してQRデータを効率的にデコードすることにより、C#でさまざまな画像形式のQRコードを読み取ることができます。

クイックスタート:C#で画像からQRコードを読み取る

異なる画像フォーマットから QR コードを読み取るには?

IronQRは様々な画像フォーマットからのQRコード読み取りをサポートしています。 この機能は、高度な機械学習モデルを使用して、さまざまなメディアタイプにわたって正確なデコードを保証します。サポートされているフォーマットは次のとおりです:

  • ジョイントフォトグラフィックエキスパーツグループ (JPEG)
  • ポータブル・ネットワーク・グラフィックス (PNG)
  • グラフィックス・インターチェンジ・フォーマット (GIF)
  • タグ付画像ファイル形式 (TIFF)
  • ビットマップ画像ファイル (BMP)
  • WBMP
  • WebP
  • アイコン(ico)
  • WMF
  • RawFormat (生)

このフォーマットのサポートは、画像処理を効率的に処理するオープンソースライブラリIronDrawingによって実現されています。 デジタルカメラ、スキャナ、モバイル機器、WebダウンロードからのQRコードを、フォーマット変換なしで処理できます。

画像スキャンのテスト用に、四角形とデータモジュールの位置を示す白黒パターンが明確なサンプルQRコード
  1. 1Install IronQR with NuGet Package Manager

    PM > Install-Package IronQR

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

    // Import necessary IronQR and IronDrawing namespaces
    using IronSoftware.Drawing; 
    using IronBarcode;
    
    public class QRCodeReader
    {
        public static void Main()
        {
            // Load an image from a file path
            using (var inputImage = Image.FromFile("path/to/your/image/file.webp"))
            {
                // Create a QrImageInput object from the image
                var qrImageInput = new QrImageInput(inputImage);
    
                // Decode the QRコード from the image
                var result = BarcodeReader.Read(qrImageInput);
    
                // Iterate through each detected QRコード and display its information
                foreach (var barcodeResult in result.Barcodes)
                {
                    Console.WriteLine($"QR Code Data: {barcodeResult.Value}");
                }
            }
        }
    }
    C#
  3. 3実際の環境でテストするためにデプロイする

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

注: "path/to/your/image/file.webp"を QR コード画像ファイルへの実際のパスに置き換えます。

サンプル画像の QR コードの値について知りたいですか? コード スニペットを使って試してみてください。

なぜIronQRは複数の画像フォーマットをサポートしているのですか?

QRコードの読み取りとは、QRコードに格納された情報をスキャンして解読することです。 これは通常、QRコードのデータを解釈できるソフトウェアと組み合わせたカメラまたはスキャナを使用して行われます。 QR コードに含まれる情報には、テキスト、URL、連絡先の詳細、その他の形式のデータなどがあります。

IronQRのマルチフォーマット対応は、マーケティング資料や製品パッケージからデジタル文書やウェブコンテンツまで、QRコードが様々な文脈で登場する実世界のアプリケーションに不可欠です。 IronQRは多様なフォーマットをサポートすることで、開発者が画像フォーマットの互換性を心配することなく、堅牢なアプリケーションを構築できることを保証します。 IronQRの読込み機能の詳細については、この柔軟性がどのように開発ワークフローを向上させるかをご理解ください。

それぞれの画像形式はいつ使うべきですか?

QRコード処理では、画像形式によって目的が異なります:

  • PNG:透明性が必要なQRコードや、画質が最優先される場合に最適です。 PNGの可逆圧縮により、QRコードのパターンは鮮明で読みやすいままです。
  • JPEG:QRコードを含む写真や、ファイルサイズが気になる場合に最適です。 圧縮アーチファクトが可読性に影響するのを防ぐため、より高い品質設定(80%以上)を使用してください。
  • TIFF:アーカイブ目的や、企業環境でスキャンした文書を扱う場合に最適です。
  • WebP:ウェブアプリケーションに理想的な、品質保持に優れた圧縮を提供する最新のフォーマット。

どのようなフォーマットでも最適な結果を得るには、画像の解像度(印刷用QRコードでは最低300DPI)とコントラストを十分に保つようにしてください。フォーマット固有の最適化テクニックについては、高度なQR読み取り例をご覧ください。

画質が悪い場合はどうなりますか?

IronQRは不完全な画像を扱うためにフォールトトレランス機能を組み込んでいます。 画質の悪い画像を扱う場合、ライブラリはいくつかの戦略を採用しています:

  1. エラー訂正:QRコードはエラー訂正機能(L、M、Q、Hレベル)を含んでおり、コードの最大30%が損傷してもデータを回復することができます。
  2. 機械学習の強化: IronQRのMLモデルは、ぼやけ、歪み、照明が悪い場合などの一般的な問題を検出し、補正します。
  3. 前処理: 自動画像強調により、デコードを試みる前にコントラストと鮮明さが向上します。

難しいシナリオの場合は、カスタムQR読み取りモードオプションを使用して読み取りプロセスを微調整することを検討してください:

// Example: Reading QRコードs with enhanced error correction
using IronBarcode;

public class EnhancedQRReader
{
    public static void ReadPoorQualityImage()
    {
        // Configure reader with multiple attempts and error correction
        var options = new BarcodeReaderOptions
        {
            Speed = ReadingSpeed.Detailed, // More thorough scanning
            ExpectMultipleBarcodes = true,  // Check for multiple codes
            ExpectBarcodeTypes = BarcodeType.QRCode // Focus on QRコードs only
        };

        using (var inputImage = Image.FromFile("blurry_qr_code.jpg"))
        {
            var qrImageInput = new QrImageInput(inputImage);
            var results = BarcodeReader.Read(qrImageInput, options);
            
            foreach (var result in results.Barcodes)
            {
                Console.WriteLine($"Decoded: {result.Value}");
                Console.WriteLine($"Confidence: {result.Confidence}%");
            }
        }
    }
}
C#

QRコードから値を取得する

[//]:# (これはコメントであり、非表示になります。 上記の例では、"Value(価値)"について言及しました。 また、定義する際には、より説明的でありながら簡潔な役割を担います)

ほとんどのIronQR関数は複数の検出をサポートするためにコレクションを返します。 Valueプロパティがありません。 例のコードは、コレクションから最初のValueを取得します。

using System;
using System.Collections.Generic;
using System.Linq;
using IronQr;
using System.Drawing;

// Import image
var inputImage = Image.FromFile("sample.jpg");

// Load the asset into QrImageInput
QrImageInput imageInput = new QrImageInput(inputImage);

// Create a QR Reader object
QrReader reader = new QrReader();

// Read the Input an get all embedded QR Codes
IEnumerable<QrResult> results = reader.Read(imageInput);

// Display the value of the first QR code found
Console.WriteLine($"QR code value is {results.First().Value}");

画像内の QR コード位置を検出する

IronQRは単純なデコードにとどまらず、画像内のQRコードの位置を正確に特定します。 この位置決定では、PointF (0,0) が画像の左上隅を表す標準的な座標系を使用します。 QRコードのコーナーの正確な空間座標は、Points[]配列を通じてアクセス可能です。

この例では、検出されたQRコードの4点すべての座標が取得され、コンソールに出力されます。

ご注意: この関数によって返される座標は、厳格なジグザグシーケンスに従って格納されています:左上、右上、左下、最後に右下
using System;
using System.Collections.Generic;
using IronQr;
using System.Drawing;
using System.Linq;

// Import an image containing a QR code
var inputImage = Image.FromFile("urlQr.png");

// Load the asset into a QrImageInput object
var imageInput = new QrImageInput(inputImage);

// Create a QR Reader object
var reader = new QrReader();

// Read the input and get all embedded QR codes
IEnumerable<QrResult> results = reader.Read(imageInput);

// [TL, TR, BL, BR]
string[] labels = { "Top-Left", "Top-Right", "Bottom-Left", "Bottom-Right" };

var points = results.First().Points;

for (int i = 0; i < points.Length; i++)
{
    Console.WriteLine($"{labels[i]}: {points[i].X}, {points[i].Y}");
}

入力QRコード

QRコード

出力

システムは、すべてのQRコードのコーナーの正確な空間座標をコンソールに記録していることに注目してください。

エッジ検出QR

サポートされているQRコードの種類

作成と読み取りの両方で、複数の種類の QR コードがサポートされています。 IronQRは多様なアプリケーションのニーズに応えるため、様々なQRコードフォーマットを包括的にサポートしています。 サポートされているQRフォーマットの詳細については、当社のドキュメントを参照してください。 サポートされている QR コードの種類は次のとおりです。

  • QRCode: 今日最も一般的に使用されている標準的なQRコード。 最大7,089文字の数字または4,296文字の英数字を格納できるため、ウェブサイトのURLや連絡先情報などの用途に適しています。
画像スキャンのテスト用に、四角形とデータモジュールの位置を示す白黒パターンが明確なサンプルQRコード
  • MicroQRCode: 限られたスペースのために設計された標準QRコードの小型版。 最大35文字の数字または21文字の英数字を格納でき、小さなパッケージや小さな印刷ラベルに最適です。
典型的なQRコードの構造を示すファインダーパターンとデータモジュールを含む標準的なQRコード
  • RMQRCode: RMQRコード(長方形マイクロQRコード)は、正方形ではなくコンパクトな長方形バージョンです。 このバージョンは、アスペクト比を柔軟に変更できるので、長方形のスペースが利用できるアプリケーションに便利です。
長方形QRコードの例(標準的な位置マーカーとデータパターンを使用した非正方形フォーマット

正しいQRコードの種類を選ぶにはどうすればよいですか?

適切なQRコードタイプの選択は、特定の使用ケースと制約によって決まります:

  • 標準QRコード:スペースに制限がなく、最大限のデータ容量が必要な汎用アプリケーションにはこれを選んでください。 URL、WiFi認証情報、vCard連絡先、または詳細な製品情報に最適です。 実装の詳細については、QRコード生成例を参照してください。

  • マイクロQRコード:電子部品、宝石タグ、医療機器などの小さな表面を扱う場合に最適です。 容量には限りがありますが、シリアル番号やシンプルなURL、基本的なトラッキングコードには最適です。

  • RMQRコード:円筒形の製品に狭いラベルを貼ったり、パッケージの端に細長いスペースを設けたりするなど、使用可能なスペースに特定の寸法制約がある場合は、長方形のコードを選択します。

データ ストレージの制限は何ですか?

データ容量を理解することで、QRコードの実装を最適化できます:

QRコードタイプ数値のみ英数字バイナリ漢字
標準QR7,0894,2962,9531,817
マイクロQR3521159
RMQR変数変数変数変数

データストレージを計画する際には、これらの要素を考慮してください:

  • 利用可能なスペースを最大化するために、WebリンクにURL短縮機能を使用してください。
  • 大規模データセットのデータ圧縮の実装
  • 適切なエラー訂正レベルを選択する(訂正レベルが高いほど、容量が減少します)

高度な実装については、スタイル付きQRコード生成ガイドを参照して、美しさとデータ容量のバランスを取ってください。

マイクロコードとRMQRコードのどちらを使うべきですか?

マイクロコードとRMQRコードは、特定のシナリオに優れています:

マイクロQRコードは次のような用途に最適です:

  • 部品追跡が必要な電子回路基板
  • 患者や薬の識別子が必要な小型医療機器
  • 刻印スペースが限られているジュエリー認証
  • 製造業における小型製品ラベル
RMQRコードは以下のような場合に最適です。
  • チューブやパイプに貼られる幅の狭い出荷ラベル
  • ペン軸やツールの細長いスペース
  • バナー形式のマーケティング資料
  • 既存の長方形のデザイン要素への統合

異なるQRコードタイプを読み取るための実用的な例です:

using IronBarcode;
using IronSoftware.Drawing;

public class MultiTypeQRReader
{
    public static void ReadVariousQRTypes()
    {
        // Configure reader to handle all QRコード types
        var options = new BarcodeReaderOptions
        {
            ExpectBarcodeTypes = BarcodeType.QRCode | 
                                BarcodeType.MicroQRCode | 
                                BarcodeType.RectangularMicroQRCode
        };

        string[] imagePaths = {
            "standard_qr.png",
            "micro_qr.png", 
            "rectangular_qr.png"
        };

        foreach (var path in imagePaths)
        {
            using (var image = Image.FromFile(path))
            {
                var qrInput = new QrImageInput(image);
                var results = BarcodeReader.Read(qrInput, options);
                
                foreach (var qr in results.Barcodes)
                {
                    Console.WriteLine($"Type: {qr.BarcodeType}");
                    Console.WriteLine($"Data: {qr.Value}");
                    Console.WriteLine($"Format: {qr.Format}");
                    Console.WriteLine("---");
                }
            }
        }
    }
}
C#

本番環境へのデプロイについては、NuGetパッケージガイドを確認して、お使いのプラットフォームに適したパッケージがあることを確認し、APIリファレンスを確認して、利用可能なすべてのメソッドとプロパティに関する包括的なドキュメントを確認してください。

よくある質問

IronQRはQRコード読み取り用にどのような画像フォーマットをサポートしていますか?

IronQRはJPEG、PNG、GIF、TIFF、BMP、WBMP、WebP、ICO、WMF、RawFormatを含む複数の画像フォーマットからのQRコードの読み取りをサポートしています。この包括的なフォーマットのサポートはIronDrawingによって実現されており、フォーマットの変換なしに様々なソースからのQRコードを処理することができます。

C#で画像ファイルからQRコードを読み取るにはどうすればよいですか?

IronQRを使ってQRコードを読み取るには、まずImage.FromFile()を使って画像を読み込み、読み込んだ画像からQrImageInputオブジェクトを作成し、BarcodeReader.Read()を使ってQRデータをデコードします。このメソッドは結果を返すので、検出されたQRコードの情報にアクセスするためにそれを繰り返し実行することができます。

さまざまなメディアタイプで正確なQRコード読み取りを可能にする技術とは?

IronQRは高度な機械学習モデルを使用し、様々なメディアタイプや画像フォーマットにおいて正確なQRコードのデコードを保証します。このAIを駆使したアプローチにより、困難な画像条件でも高い精度を維持することができます。

1つの画像から複数のQRコードを読み取ることはできますか?

はい、IronQRは一つの画像から複数のQRコードを検出し読み取ることができます。BarcodeReader.Readメソッドは結果のコレクションを返すので、foreachループを使って検出されたQRコードを繰り返し処理し、個々のQRコードデータにアクセスすることができます。

IronQRが読み取るQRコードにはどのようなデータが格納されていますか?

IronQRはプレーンテキスト、URL、連絡先、その他の構造化データなど、QRコードに格納された様々なタイプのデータをデコードすることができます。デコードされた情報は各BarcodeResultオブジェクトのValueプロパティからアクセスできます。

What types of QR codes can IronQR read?

IronQR can read various types of QR codes, including Standard QR Code, Micro QR Code, and RMQR Code, supporting different use cases and data capacities for applications requiring compact or rectangular formats.

When should I choose Micro or RMQR codes?

Choose Micro QR codes for small surfaces like circuit boards or medical devices and RMQR codes for rectangular labels like narrow shipping labels or marketing materials that require fitting into elongated spaces.

How does IronQR locate a QR code within an image?

IronQR uses a standard coordinate system to pinpoint where a QR code is located within an image. It retrieves and prints the exact spatial coordinates of the QR code's corners using the Points[] array.

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

準備はできましたか?

Nuget Downloads 74,386バージョン:2026.9リリースされたばかり

あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronQR
nuget.org/packages/IronQR/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. 参照を選び、「IronQR」を検索します
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

  1. IronQRをダウンロードして解凍し、ソリューションディレクトリ内の~/Libsなどの場所に保存してください
  2. Visual Studioソリューションエクスプローラーで、参照を右クリックし、「IronQR.dll」を選択します。

$999からのライセンス

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。