IronQR ハウツー 画像からQRコードを読み取る C#で画像からQRコードを読み取る方法 カーティス・チャウ 更新日:2026年1月10日 IronQR をダウンロード NuGet ダウンロード 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る This article was translated from English: Does it need improvement? Translated View the article in English 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 をインストールします PM > Install-Package 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コード 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}"); } } } } 実際の環境でテストするためにデプロイする 今すぐ無料トライアルでプロジェクトに IronQR を使い始めましょう 30日間無料トライアル 注: "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.機械学習による強化: IRQRの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}%"); } } } } // 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}%"); } } } } Imports IronBarcode Public Class EnhancedQRReader Public Shared Sub ReadPoorQualityImage() ' Configure reader with multiple attempts and error correction Dim options As New BarcodeReaderOptions With { .Speed = ReadingSpeed.Detailed, ' More thorough scanning .ExpectMultipleBarcodes = True, ' Check for multiple codes .ExpectBarcodeTypes = BarcodeType.QRCode ' Focus on QRコードs only } Using inputImage = Image.FromFile("blurry_qr_code.jpg") Dim qrImageInput As New QrImageInput(inputImage) Dim results = BarcodeReader.Read(qrImageInput, options) For Each result In results.Barcodes Console.WriteLine($"Decoded: {result.Value}") Console.WriteLine($"Confidence: {result.Confidence}%") Next End Using End Sub End Class $vbLabelText $csharpLabel QRコードから値を取得する [//]:# (これはコメントであり、非表示になります。 上記の例では、"Value(価値)"について言及しました。 また、定義する際には、より説明的でありながら簡潔な役割を担います) ほとんどのIronQR関数は複数の検出をサポートするためにコレクションを返します。 results はオブジェクトのシーケンスであるため、Value プロパティ自体を持ちません。 コード例では、コレクションから最初のQrResultを選択し、その値を取得します。 :path=/static-assets/qr/content-code-examples/how-to/read-qr-code-image-value.cs 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}"); Imports System Imports System.Collections.Generic Imports System.Linq Imports IronQr Imports System.Drawing ' Import image Dim inputImage As Image = Image.FromFile("sample.jpg") ' Load the asset into QrImageInput Dim imageInput As New QrImageInput(inputImage) ' Create a QR Reader object Dim reader As New QrReader() ' Read the Input and get all embedded QR Codes Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput) ' Display the value of the first QR code found Console.WriteLine($"QR code value is {results.First().Value}") $vbLabelText $csharpLabel 画像内の QR コード位置を検出する IronQRは単純なデコードにとどまらず、画像内のQRコードの位置を正確に特定します。 このポジショニングは、PointF (0,0)が画像の左上隅を表す標準座標系を使用しています。 QRコードの角の正確な空間座標は、Points[]配列を通してアクセスできます。 この例では、検出されたQRコードの4点すべての座標が取得され、コンソールに出力されます。 BRACKET-i-OPEN--この関数によって返される座標は、左上、右上、左下、最後に右下という厳密な"ジグザグ"シーケンスで格納されます。 :path=/static-assets/qr/content-code-examples/how-to/read-qr-code-image-position.cs 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}"); } Imports System Imports System.Collections.Generic Imports IronQr Imports System.Drawing Imports System.Linq ' Import an image containing a QR code Dim inputImage As Image = Image.FromFile("urlQr.png") ' Load the asset into a QrImageInput object Dim imageInput As New QrImageInput(inputImage) ' Create a QR Reader object Dim reader As New QrReader() ' Read the input and get all embedded QR codes Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput) ' [TL, TR, BL, BR] Dim labels As String() = { "Top-Left", "Top-Right", "Bottom-Left", "Bottom-Right" } Dim points = results.First().Points For i As Integer = 0 To points.Length - 1 Console.WriteLine($"{labels(i)}: {points(i).X}, {points(i).Y}") Next $vbLabelText $csharpLabel 入力QRコード QRコードを表示します。 出力 システムは、すべてのQRコードのコーナーの正確な空間座標をコンソールに記録していることに注目してください。 . サポートされているQRコードの種類 作成と読み取りの両方で、複数の種類の QR コードがサポートされています。 IronQRは多様なアプリケーションのニーズに応えるため、様々なQRコードフォーマットを包括的にサポートしています。 サポートされているQRフォーマットの詳細については、当社のドキュメントを参照してください。 サポートされている QR コードの種類は次のとおりです。 QRCode:現在最も一般的に使用されている標準QRコード。 最大7,089文字の数字または4,296文字の英数字を格納できるため、ウェブサイトのURLや連絡先情報などの用途に適しています。 MicroQRCode:限られたスペース用に設計された標準QRコードの小型版。 最大35文字の数字または21文字の英数字を格納でき、小さなパッケージや小さな印刷ラベルに最適です。 RMQRCode:RMQRコード(RectangularマイクロQRCode)は、正方形ではなく長方形のコンパクトなバージョンです。 このバージョンは、アスペクト比を柔軟に変更できるので、長方形のスペースが利用できるアプリケーションに便利です。 正しいQRコードの種類を選ぶにはどうすればよいですか? 適切なQRコードタイプの選択は、特定の使用ケースと制約によって決まります: 標準QRコード:スペースに制限がなく、最大限のデータ容量が必要な汎用アプリケーションにはこれを選んでください。 URL、WiFi認証情報、vCard連絡先、または詳細な製品情報に最適です。 実装の詳細については、QRコード生成例を参照してください。 マイクロQRコード:電子部品、宝石タグ、医療機器などの小さな表面を扱う場合に最適です。 容量には限りがありますが、シリアル番号やシンプルなURL、基本的なトラッキングコードには最適です。 RMQRコード:円筒形の製品に狭いラベルを貼ったり、パッケージの端に細長いスペースを設けたりするなど、使用可能なスペースに特定の寸法制約がある場合は、長方形のコードを選択します。 データ ストレージの制限は何ですか? データ容量を理解することで、QRコードの実装を最適化できます: QRコードタイプ 数値のみ 英数字 バイナリ 漢字 標準QR 7,089 4,296 2,953 1,817 マイクロQR 35 21 15 9 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("---"); } } } } } 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("---"); } } } } } Imports IronBarcode Imports IronSoftware.Drawing Public Class MultiTypeQRReader Public Shared Sub ReadVariousQRTypes() ' Configure reader to handle all QRコード types Dim options As New BarcodeReaderOptions With { .ExpectBarcodeTypes = BarcodeType.QRCode Or BarcodeType.MicroQRCode Or BarcodeType.RectangularMicroQRCode } Dim imagePaths As String() = { "standard_qr.png", "micro_qr.png", "rectangular_qr.png" } For Each path In imagePaths Using image = Image.FromFile(path) Dim qrInput As New QrImageInput(image) Dim results = BarcodeReader.Read(qrInput, options) For Each qr In results.Barcodes Console.WriteLine($"Type: {qr.BarcodeType}") Console.WriteLine($"Data: {qr.Value}") Console.WriteLine($"Format: {qr.Format}") Console.WriteLine("---") Next End Using Next End Sub End Class $vbLabelText $csharpLabel 本番環境へのデプロイについては、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プロパティからアクセスできます。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 準備はできましたか? Nuget ダウンロード 58,270 | バージョン: 2026.2 リリース NuGet 無料版 総ダウンロード数: 58,270 ライセンスを見る