C#で画像からQRコードを読み取る方法
IronQRは画像をIronDrawingで読み込み、QrImageInputオブジェクトを作成し、BarcodeReader.Readメソッドを使ってQRデータを効率的にデコードすることで、開発者がC#で様々な画像フォーマットからQRコードを読み取ることを可能にします。
クイックスタート: C#で画像からQRコードを読み取る。
画像からQRコードを読み取る方法
- 画像からQRコードを読み取るためのC#ライブラリをダウンロードする
- IronDrawingを使用して画像データをインポートする
- Create a `QrImageInput` object from the image data
- Pass the object to the
`Read`method - 検出された各QRコードを反復して情報を確認する
異なる画像フォーマットから QR コードを読み取るには?
IronQRは様々な画像フォーマットからのQRコード読み取りをサポートしています。 この機能は、高度な機械学習モデルを使用して、さまざまなメディアタイプにわたって正確なデコードを保証します。サポートされているフォーマットは次のとおりです:
- ジョイントフォトグラフィックエキスパーツグループ (JPEG)
- ポータブル・ネットワーク・グラフィックス (PNG)
- グラフィックス・インターチェンジ・フォーマット (GIF)
- タグ付画像ファイル形式 (TIFF)
- ビットマップ画像ファイル (BMP)
- WBMP
- WebP
- アイコン(ico)
- WMF
- RawFormat(生)
このフォーマットのサポートは、画像処理を効率的に処理するオープンソースライブラリIronDrawingによって実現されています。 デジタルカメラ、スキャナ、モバイル機器、WebダウンロードからのQRコードを、フォーマット変換なしで処理できます。

今すぐ NuGet で PDF を作成してみましょう:
NuGet パッケージ マネージャーを使用して IronQR をインストールします
このコード スニペットをコピーして実行します。
// 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 code from the image var result = BarcodeReader.Read(qrImageInput); // Iterate through each detected QR code and display its information foreach (var barcodeResult in result.Barcodes) { Console.WriteLine($"QR Code Data: {barcodeResult.Value}"); } } } }実際の環境でテストするためにデプロイする
注: "path/to/your/image/file.webp"を QR コード画像ファイルへの実際のパスに置き換えます。
サンプル画像の QR コードの値について知りたいですか? コード スニペットを使って試してみてください。
なぜIronQRは複数の画像フォーマットをサポートしているのですか? QRコードの読み取りとは、QRコードに格納された情報をスキャンして解読することです。 これは通常、QRコードのデータを解釈できるソフトウェアと組み合わせたカメラまたはスキャナを使用して行われます。 QR コードに含まれる情報には、テキスト、URL、連絡先の詳細、その他の形式のデータなどがあります。 IronQRのマルチフォーマット対応は、マーケティング資料や製品パッケージからデジタル文書やウェブコンテンツまで、QRコードが様々な文脈で登場する実世界のアプリケーションに不可欠です。 IronQRは多様なフォーマットをサポートすることで、開発者が画像フォーマットの互換性を心配することなく、堅牢なアプリケーションを構築できることを保証します。 IronQRの[読込み機能](https://ironsoftware.com/csharp/qr/features/read/)の詳細については、この柔軟性がどのように開発ワークフローを向上させるかをご理解ください。 ### それぞれの画像形式はいつ使うべきですか? QRコード処理では、画像形式によって目的が異なります: - **PNG**:透明性が必要なQRコードや、画質が最優先される場合に最適です。 PNGの可逆圧縮により、QRコードのパターンは鮮明で読みやすいままです。 - **JPEG**:QRコードを含む写真や、ファイルサイズが気になる場合に最適です。 圧縮アーチファクトが可読性に影響するのを防ぐため、より高い品質設定(80%以上)を使用してください。 - **TIFF**:アーカイブ目的や、企業環境でスキャンした文書を扱う場合に最適です。 - **WebP**:ウェブアプリケーションに理想的な、品質保持に優れた圧縮を提供する最新のフォーマット。 どのようなフォーマットでも最適な結果を得るには、画像の解像度(印刷用QRコードでは最低300DPI)とコントラストを十分に保つようにしてください。フォーマット固有の最適化テクニックについては、[高度なQR読み取り例](https://ironsoftware.com/csharp/qr/examples/read-qr-code-advanced/)をご覧ください。 ### 画質が悪い場合はどうなりますか? IronQRは不完全な画像を扱うために[フォールトトレランス機能](https://ironsoftware.com/csharp/qr/features/fault-tolerance/)を組み込んでいます。 画質の悪い画像を扱う場合、ライブラリはいくつかの戦略を採用しています: 1.**エラー訂正**:QRコードにはエラー訂正機能(L、M、Q、Hレベル)があり、コードの30%までが破損していてもデータを復元できます。 2.**機械学習による強化**: IRQRのMLモデルは、ぼかし、歪み、照明不良のような一般的な問題を検出し、補正します。 3.**前処理**:自動画像補正により、デコードの前にコントラストとシャープネスを改善します。 難しいシナリオの場合は、[カスタムQR読み取りモードオプション](https://ironsoftware.com/csharp/qr/examples/read-qr-with-machine-learning/)を使用して読み取りプロセスを微調整することを検討してください: ```csharp // Example: Reading QR codes 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 codes 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}%"); } } } } ```
## どのような種類のQRコードを読むことができますか? 作成と読み取りの両方で、複数の種類の QR コードがサポートされています。 IronQRは多様なアプリケーションのニーズに応えるため、様々なQRコードフォーマットを包括的にサポートしています。 [サポートされているQRフォーマット](https://ironsoftware.com/csharp/qr/get-started/supported-qr-formats/)の詳細については、当社のドキュメントを参照してください。 サポートされている QR コードの種類は次のとおりです。 - **QRCode**:現在最も一般的に使用されている標準QRコード。 最大7,089文字の数字または4,296文字の英数字を格納できるため、ウェブサイトのURLや連絡先情報などの用途に適しています。
- **MicroQRCode**:限られたスペース用に設計された標準QRコードの小型版。 最大35文字の数字または21文字の英数字を格納でき、小さなパッケージや小さな印刷ラベルに最適です。
- **RMQRCode**:RMQRコード(RectangularマイクロQRCode)は、正方形ではなく長方形のコンパクトなバージョンです。 このバージョンは、アスペクト比を柔軟に変更できるので、長方形のスペースが利用できるアプリケーションに便利です。
### 正しいQRコードの種類を選ぶにはどうすればよいですか? 適切なQRコードタイプの選択は、特定の使用ケースと制約によって決まります: - **標準QRコード**:スペースに制限がなく、最大限のデータ容量が必要な汎用アプリケーションにはこれを選んでください。 URL、WiFi認証情報、vCard連絡先、または詳細な製品情報に最適です。 実装の詳細については、[QRコード生成例](https://ironsoftware.com/csharp/qr/examples/generate-qr-code/)を参照してください。 - **マイクロQRコード**:電子部品、宝石タグ、医療機器などの小さな表面を扱う場合に最適です。 容量には限りがありますが、シリアル番号やシンプルなURL、基本的なトラッキングコードには最適です。 - **RMQRコード**:円筒形の製品に狭いラベルを貼ったり、パッケージの端に細長いスペースを設けたりするなど、使用可能なスペースに特定の寸法制約がある場合は、長方形のコードを選択します。 ### データ ストレージの制限は何ですか? データ容量を理解することで、QRコードの実装を最適化できます: |QRコードタイプ|数値のみ|英数字|バイナリ|漢字| |--------------|-------------|--------------|---------|--------| |標準QR|7,089|4,296|2,953|1,817| |マイクロQR| 35 | 21 | 15 | 9 | |RMQR|変数|変数|変数|変数| データストレージを計画する際には、これらの要素を考慮してください: - 利用可能なスペースを最大化するために、WebリンクにURL短縮機能を使用してください。 - 大規模データセットのデータ圧縮の実装 - 適切なエラー訂正レベルを選択する(訂正レベルが高いほど、容量が減少します) 高度な実装については、[スタイル付きQRコード生成ガイド](https://ironsoftware.com/csharp/qr/examples/generate-styled-qr/)を参照して、美しさとデータ容量のバランスを取ってください。マイクロコードとRMQRコードのどちらを使うべきですか? マイクロコードとRMQRコードは、特定のシナリオに優れています: **マイクロQRコードは次のような用途に最適です:**。 - 部品追跡が必要な電子回路基板 - 患者や薬の識別子が必要な小型医療機器 - 刻印スペースが限られているジュエリー認証 - 製造業における小型製品ラベル RMQRコードは以下のような場合に最適です。 - チューブやパイプに貼られる幅の狭い出荷ラベル - ペン軸やツールの細長いスペース - バナー形式のマーケティング資料 - 既存の長方形のデザイン要素への統合 異なるQRコードタイプを読み取るための実用的な例です: ```csharp using IronBarcode; using IronSoftware.Drawing; public class MultiTypeQRReader { public static void ReadVariousQRTypes() { // Configure reader to handle all QR code 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("---"); } } } } } ``` 本番環境へのデプロイについては、[NuGetパッケージガイド](https://ironsoftware.com/csharp/qr/get-started/nuget-packages/)を確認して、お使いのプラットフォームに適したパッケージがあることを確認し、[APIリファレンス](https://ironsoftware.com/csharp/qr/object-reference/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プロパティからアクセスできます。





