
How Read QR From Image in C#
QRコード(クイックレスポンスコード)は、製品のパッケージ、イベントチケット、メニュー、さらには名刺まで、あらゆるところにあります。 開発者として、画像からQRコードを迅速かつ信頼性高く読み取ることができることは、強力な自動化およびユーザーインタラクション機能への扉を開くことができます。 このガイドでは、特に.NET用に構築された高性能QRコードライブラリIronQRを使用して、わずか数行のC#コードで画像からQRコードを読み取る方法を説明します。
在庫管理ソフトウェアの構築、2要素認証の統合、またはスクリーンショットからURLをデコードする場合でも、IronQRは簡単に利用できます。
IronQRとは何ですか?
IronQRは、.NET開発者用に開発された強力なC# QRコードライブラリで、強力なQRコードリーダーおよびライターの作成を目的としています。 IronQRはQRコードの生成とスキャンの両方に対応しており、さまざまな画像フォーマットから読み取ることができるため、デスクトップ、ウェブ、またはサーバーアプリケーションに理想的です。 このライブラリを使用すると、QRコードの認識と読み取りのプロセス全体を自動化するための正確なQRコードリーダーツールを作成できます。
主要機能
- 簡単にQRコードを読み取り、生成します。
- JPEG、PNG、BMPなどの画像フォーマットをサポート。
- 高速パフォーマンスと正確な検出により、QRコードデータの簡単な抽出が可能です。
- .NET Framework、.NET Core、.NET Standard (2.0+)、および.NET 6/7+プロジェクトで動作します。
- クロスプラットフォームサポートを提供し、お気に入りのアプリ環境とオペレーティングシステムで作業可能。Windows、Linux、その他のサポートされている環境すべてです。
オープンソースの代替とは異なり、IronQRは企業向けの安定性、商業ライセンス、および専門的なサポートに焦点を当てており、ビジネスクリティカルなアプリケーションに非常に適しています。
IronQRをC#プロジェクトでセットアップする
QRコードをスキャンする前に、.NETアプリケーションでのIronQRのセットアップ方法を説明します。
NuGet経由でインストール
NuGetパッケージマネージャコンソールからIronQRを直接インストールできます:
または、Visual StudioのNuGet GUIでIronQRを検索し、"インストール"をクリックします:

名前空間の追加と基本設定
インストール後、あなたのC#ファイルに次の名前空間を含めてください:
using IronSoftware.Drawing;
using IronQR;Imports IronSoftware.Drawing
Imports IronQR**注意:**IronSoftware.Drawingはクロスプラットフォームで画像フォーマットを処理するために使用されます。
画像からQRコードを読む
画像ファイルから実際にQRコードを読み取る方法を見ていきましょう。
対応する画像フォーマット
IronQRは、次のような複数の画像フォーマットをサポートしています:
- PNG
- JPG/JPEG
- BMP
- GIF
- TIFF
この柔軟性により、カメラのスナップショットからスキャンされたドキュメントまで、実質的にあらゆる画像ソースで作業できます。
基本コード例
このライブラリをどのように使用して簡単にQRコードをデコードできるか、詳しく見てみましょう。 イメージファイルから"Hello World!"というテキスト値を持つ単一のQRコードを読み取る最小の例を次に示します。Bitmapクラスとファイルストリームを使って画像をロードします:
using IronQr;
using IronSoftware.Drawing;
using System;
class Program
{
static void Main()
{
// Load the image using a file stream
using var stream = File.OpenRead("sample-qr.png");
var bitmapImage = AnyBitmap.FromStream(stream);
QrImageInput qrImageInput = new QrImageInput(bitmapImage );
// Read the QR code
QrReader qrReader = new QrReader();
try
{
// Use the QR read method to read the values within your QR code(s)
IEnumerable<QrResult> results = qrReader.Read(qrImageInput);
// Output the decoded value
foreach (var result in results)
{
Console.WriteLine("QR Code Value: " + result.Value);
}
}
catch (Exception ex)
{
Console.WriteLine("Error reading QR code: " + ex.Message);
}
}
}Imports IronQr
Imports IronSoftware.Drawing
Imports System
Friend Class Program
Shared Sub Main()
' Load the image using a file stream
Dim stream = File.OpenRead("sample-qr.png")
Dim bitmapImage = AnyBitmap.FromStream(stream)
Dim qrImageInput As New QrImageInput(bitmapImage)
' Read the QR code
Dim qrReader As New QrReader()
Try
' Use the QR read method to read the values within your QR code(s)
Dim results As IEnumerable(Of QrResult) = qrReader.Read(qrImageInput)
' Output the decoded value
For Each result In results
Console.WriteLine("QR Code Value: " & result.Value)
Next result
Catch ex As Exception
Console.WriteLine("Error reading QR code: " & ex.Message)
End Try
End Sub
End Classコンソール出力

このコードはQRコード画像をロードし、最初に検出されたQRコードを読み、そのデコードされた内容を印刷します。 シンプルで効果的です。ここから、QRコードの値を保存してさらなる使用に備えることができます。
複数のQRコードを扱う
画像に複数のQRコードが含まれている場合(例:商品のラベルシート)、それらすべてを抽出することができます。 この例では、プログラムを通じて以下のQRコード画像を実行します:

using IronQr;
using IronSoftware.Drawing;
using System;
class Program
{
static void Main()
{
// Load the image from file
var inputImage = AnyBitmap.FromFile("SampleCodes.png");
QrImageInput qrImageInput = new QrImageInput(inputImage);
// Read the QR code
QrReader qrReader = new QrReader();
IEnumerable<QrResult> results = qrReader.Read(qrImageInput);
// Output the decoded value
foreach (var result in results)
{
Console.WriteLine("QR Code Value: " + result.Value);
}
}
}Imports IronQr
Imports IronSoftware.Drawing
Imports System
Friend Class Program
Shared Sub Main()
' Load the image from file
Dim inputImage = AnyBitmap.FromFile("SampleCodes.png")
Dim qrImageInput As New QrImageInput(inputImage)
' Read the QR code
Dim qrReader As New QrReader()
Dim results As IEnumerable(Of QrResult) = qrReader.Read(qrImageInput)
' Output the decoded value
For Each result In results
Console.WriteLine("QR Code Value: " & result.Value)
Next result
End Sub
End Class出力

QRコードスキャンの一般的な利用ケース
画像からQRコードを読むことが価値のあるいくつかの現実世界のシナリオを以下に示します:
***在庫および資産管理:**パッケージ画像からQRコードをスキャンすることで、アイテムの識別を自動化します。 *二要素認証(2FA): 2FA設定画面のQRコードを解析し、安全な設定を支援します。 ***モバイルアプリとの連携:**共有されたQRコードのスクリーンショットをスキャンすることで、モバイルURLまたはアプリ固有のディープリンクを起動できます。 ***イベントチケット:**メールで送信された、または画面に表示されたチケットのQRコードを検証します。 ***決済ゲートウェイ:**フィンテックアプリケーション向けに、QRコードに埋め込まれた決済データを抽出します。
これらのすべてのユースケースでは、迅速かつ正確な認識が重要です。それをIronQRは簡単に処理します。
トラブルシューティングのヒント
QRコードを読み取る際の問題が発生した場合、次の点を考慮してください:
画像の品質が悪い
ぼやけた画像や低解像度の画像は、QRコードの検出を困難にします。 可能な限り高品質の入力を使用してください。
QRコードが検出されない
画像が暗すぎないこと、コントラストが強いこと、QRコードが隠れていないことを確認してください。 QR領域に焦点を当てるために画像をトリミングしてみてください。
例外処理
破損したファイルや予期しないフォーマットを優雅に処理するために、必ずQR読み取りロジックをtry-catchブロックでラップしてください:
try
{
IEnumerable<QrResult> results = qrReader.Read(qrImageInput);
// Output the decoded value
foreach (var result in results)
{
Console.WriteLine("QR Code Value: " + result.Value);
}
}
catch (Exception ex)
{
Console.WriteLine("Error reading QR code: " + ex.Message);
}Try
Dim results As IEnumerable(Of QrResult) = qrReader.Read(qrImageInput)
' Output the decoded value
For Each result In results
Console.WriteLine("QR Code Value: " & result.Value)
Next result
Catch ex As Exception
Console.WriteLine("Error reading QR code: " & ex.Message)
End Try最終的な考え
C#で画像からQRコードを読み取るのは難しくありません。 IronQRを使用すると、わずか数行のコードで.NETアプリケーションにQRコードスキャンを統合できます。 そのシンプルさ、クロスプラットフォームの互換性、および優れたパフォーマンスにより、現代のQR対応システムで作業する開発者にとって欠かせないツールとなっています。
この機能を拡張したい場合は、次の点を検討してください:
IronQRの無料トライアルをインストールして今日から始め、このライブラリがQRコードのタスクをどのように高めるかを学びましょう。

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


