IRONBARCODEの使用 C# で.NET MAUIバーコード スキャナーを構築するにはどうすればよいでしょうか? Jordi Bardia 更新日:2026年2月27日 IronBarcode をダウンロード NuGet ダウンロード DLL ダウンロード 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る IronBarcodeを使用すると、 .NET MAUIアプリケーション内で画像ファイルから直接バーコードをスキャンできます。カメラストリーム、ドライバの設定、プラットフォーム固有の権限ループは不要です。 JPEG、PNG、GIF、TIFF、BMPファイルからバーコードをスキャンするには、単一のメソッド呼び出しで済みます。 同じコードを修正することなく、Windows、Android、iOSに対応させることができます。 無料トライアルを開始して、以下のコード例に沿って進めてみてください。 バーコードスキャン用 for .NET MAUIプロジェクトを作成するにはどうすればよいですか? Visual Studioで.NET MAUIプロジェクトを設定するのは簡単です。 Visual Studio 2022以降を起動し、 "新しいプロジェクトの作成"を選択し、 ".NET MAUI App"テンプレートを選択して、プロジェクト名を入力し、ターゲットプラットフォームを選択します。 このチュートリアルではWindowsへの展開に焦点を当てていますが、同じプロジェクトはAndroidとiOSでも動作します。 .NET MAUIは、Microsoftが提供するクロスプラットフォームフレームワークで、単一の共有コードベースからC#とXAMLを使用してネイティブのモバイルアプリとデスクトップアプリを構築できます。 ZXing .NET.MAUIのようなカメラベースのソリューションは CameraView コントロール設定と MauiProgram.cs 登録が必要ですが、 IronBarcode は特別な設定を必要としません。 MauiProgram.cs はデフォルトのテンプレート状態のままです。 これにより、起動コードからサードパーティのハンドラー登録が排除され、起動時の初期化エラーが発生する可能性が低減されます。 IronBarcodeをインストールするには、パッケージマネージャーコンソールで次のコマンドを実行してください。 Install-Package BarCode Install-Package BarCode SHELL この単一パッケージには、バーコードスキャン、QRコード認識、複数バーコード検出、およびバーコード生成機能が含まれています。 追加の依存関係は必要ありません。 IronBarcodeを本番環境で有効化するには、ライセンスキーをMauiProgram.csに設定してください。 IronBarCode.License.LicenseKey = "YOUR_IRONBARCODE_LICENSE_KEY"; IronBarCode.License.LicenseKey = "YOUR_IRONBARCODE_LICENSE_KEY"; $vbLabelText $csharpLabel IronBarcodeのライセンスページからキーを取得するか、無料トライアルライセンスから始めることができます。 画像ベースのスキャンでは、権限はどのように異なりますか? 従来のカメラ式バーコードスキャナーは、プラットフォームマニフェストに明示的な権限設定を必要とします。 Android では、AndroidManifest.xml に以下を追加します。 <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> iOS では、NSCameraUsageDescription を Info.plist で宣言します。 実行時に拒否された権限を処理すると、見落としやすいエラー経路が追加される。 IronBarcodeはカメラのプレビューではなくファイルストリームから読み込むため、ファイルシステムへのアクセス権限のみが必要です。 Windowsではこれは自動的に許可されます。 Android および iOS では、FilePicker がユーザーが画像を選択する際にユーザーの同意を処理します。手動での許可要求は必要ありません。 MAUIバーコードスキャナーに最適なXAMLインターフェースはどれですか? 画像選択ボタン、画像表示領域、結果ラベルといった最小限のインターフェースで、ほとんどのバーコードスキャンシナリオに対応できます。 次の XAML は、 .NET MAUIのレイアウトを作成します。ContentPage: <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="BarcodeScanner.MainPage"> <ScrollView> <VerticalStackLayout Spacing="20" Padding="30"> <Label Text="MAUI Barcode Scanner" FontSize="24" HorizontalOptions="Center" /> <Button x:Name="SelectImageBtn" Text="Select Image File" Clicked="OnSelectImage" /> <Image x:Name="SelectedImageDisplay" HeightRequest="250" /> <Label x:Name="ResultsLabel" Text="Barcode results will appear here" /> </VerticalStackLayout> </ScrollView> </ContentPage> <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="BarcodeScanner.MainPage"> <ScrollView> <VerticalStackLayout Spacing="20" Padding="30"> <Label Text="MAUI Barcode Scanner" FontSize="24" HorizontalOptions="Center" /> <Button x:Name="SelectImageBtn" Text="Select Image File" Clicked="OnSelectImage" /> <Image x:Name="SelectedImageDisplay" HeightRequest="250" /> <Label x:Name="ResultsLabel" Text="Barcode results will appear here" /> </VerticalStackLayout> </ScrollView> </ContentPage> XML このレイアウトには、ファイル選択ツールを起動するボタン、選択した画像を表示する領域、およびデコードされたバーコード値を表示するラベルが配置されています。 プラットフォーム固有の調整を行うことなく、すべて for .NET MAUIターゲットプラットフォームで正しくレンダリングされます。 実運用アプリケーションでは、特に複数のバーコードを含むドキュメントをスキャンする場合に、スクロール可能なリストに複数のバーコード結果を表示するために、ResultsLabel を CollectionView に置き換えることを検討してください。 .NET MAUIで画像ファイルからバーコードをスキャンするにはどうすればよいですか? MainPage.xaml.cs のコードビハインドは、画像の選択とバーコードの読み取りを処理します。 BarcodeReader.Read はファイルパスを受け取り、BarcodeResults コレクションを返します。 コレクション内の各アイテムには、バーコード BarcodeType、および位置座標が表示されます。 以下に完全な実装例を示します。 using IronBarCode; namespace BarcodeScanner; public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); } private async void OnSelectImage(object sender, EventArgs e) { try { // Open the system file picker filtered to image types var result = await FilePicker.PickAsync(new PickOptions { FileTypes = FilePickerFileType.Images, PickerTitle = "Select a barcode image" }); if (result != null) { // Display the selected image in the UI var stream = await result.OpenReadAsync(); SelectedImageDisplay.Source = ImageSource.FromStream(() => stream); // Decode all barcodes found in the image var barcodes = BarcodeReader.Read(result.FullPath); if (barcodes.Count > 0) { // Build a display string listing each barcode type and value string output = string.Join("\n", barcodes.Select(b => $"{b.BarcodeType}: {b.Value}")); ResultsLabel.Text = output; } else { ResultsLabel.Text = "No barcodes detected in image"; } } } catch (Exception ex) { ResultsLabel.Text = $"Error: {ex.Message}"; } } } using IronBarCode; namespace BarcodeScanner; public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); } private async void OnSelectImage(object sender, EventArgs e) { try { // Open the system file picker filtered to image types var result = await FilePicker.PickAsync(new PickOptions { FileTypes = FilePickerFileType.Images, PickerTitle = "Select a barcode image" }); if (result != null) { // Display the selected image in the UI var stream = await result.OpenReadAsync(); SelectedImageDisplay.Source = ImageSource.FromStream(() => stream); // Decode all barcodes found in the image var barcodes = BarcodeReader.Read(result.FullPath); if (barcodes.Count > 0) { // Build a display string listing each barcode type and value string output = string.Join("\n", barcodes.Select(b => $"{b.BarcodeType}: {b.Value}")); ResultsLabel.Text = output; } else { ResultsLabel.Text = "No barcodes detected in image"; } } } catch (Exception ex) { ResultsLabel.Text = $"Error: {ex.Message}"; } } } $vbLabelText $csharpLabel BarcodeReader.Read は指定されたパスにあるファイルを処理し、存在するすべてのバーコードシンボルを自動的に検出し、結果を即座に返します。 この方式は、Code 128、Code 39、QRコード、データマトリックス、PDF417、EAN-13など、主要な1次元および2次元バーコード形式すべてに対応しています。 FilePicker.PickAsync 呼び出しはピッカーを画像タイプに制限するため、ユーザーが誤って画像以外のファイルを選択することはありません。 result が null の場合、ユーザーがキャンセルしました。if (result != null) ガードがそれを黙って処理します。 スキャン結果をダイアログに表示するにはどうすればよいですか? 簡単な確認メッセージの場合、DisplayAlert は追加の UI 要素を必要とせずにモーダルダイアログを提供します。 private async void ShowScanSummary(BarcodeResults barcodes) { if (barcodes.Count > 0) { // Inform the user how many barcodes were detected string message = $"Found {barcodes.Count} barcode(s) in the image."; await DisplayAlert("Scan Complete", message, "OK"); } else { await DisplayAlert("No Results", "No barcodes were found in the image.", "OK"); } } private async void ShowScanSummary(BarcodeResults barcodes) { if (barcodes.Count > 0) { // Inform the user how many barcodes were detected string message = $"Found {barcodes.Count} barcode(s) in the image."; await DisplayAlert("Scan Complete", message, "OK"); } else { await DisplayAlert("No Results", "No barcodes were found in the image.", "OK"); } } $vbLabelText $csharpLabel このパターンは、シンプルな確認フローに適しています。 デコードされた値に基づいてアクションを実行する必要があるアプリ(たとえば、 バーコード在庫管理システムでバーコードを使用して製品を検索する場合)の場合は、OnSelectImage ハンドラーから barcodes コレクションをビジネスロジック層に直接渡します。 複数のバーコードをスキャンして検出速度を調整するにはどうすればよいですか? 画像に複数のバーコードが含まれている場合、 IronBarcodeはデフォルトでそれらすべてを検出します。 期待するフォーマットがわかっている場合は、BarcodeReader.Read を呼び出す前に BarcodeReaderOptions を設定してパフォーマンスを向上させてください。 using IronBarCode; // Target only QR codes and Code 128 for faster detection var options = new BarcodeReaderOptions { ExpectMultipleBarcodes = true, ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128, Speed = ReadingSpeed.Balanced }; var barcodes = BarcodeReader.Read(imagePath, options); foreach (var barcode in barcodes) { Console.WriteLine($"Type: {barcode.BarcodeType} | Value: {barcode.Value}"); } using IronBarCode; // Target only QR codes and Code 128 for faster detection var options = new BarcodeReaderOptions { ExpectMultipleBarcodes = true, ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128, Speed = ReadingSpeed.Balanced }; var barcodes = BarcodeReader.Read(imagePath, options); foreach (var barcode in barcodes) { Console.WriteLine($"Type: {barcode.BarcodeType} | Value: {barcode.Value}"); } $vbLabelText $csharpLabel ExpectBarcodeTypes プロパティは、検出エンジンを指定されたシンボル体系に絞り込みます。 Speed を ReadingSpeed.Faster に設定すると、高コントラストで歪みのない画像に適しています。 ReadingSpeed.Detailed は、追加の画像補正パスを適用し、回転、歪み、低解像度の入力を処理しますが、その代償として処理時間が長くなります。 ExpectMultipleBarcodes = true は、最初の一致の後もスキャンを続けるようにリーダーに指示し、途中で戻ることを防ぎます。 単一バーコードの場合、このオプションを省略すると、スキャンごとに数ミリ秒短縮されます。 この構成により、このスキャナーはさまざまな用途で実用的になります。例えば、小売アプリで製品のバーコードを読み取ったり、倉庫ツールで出荷写真に印刷されたバーコードラベルを処理したり、ドキュメントワークフローでアップロードされた請求書からQRコードを抽出したりすることができます。 難易度の高い画像や低品質の画像はどのように処理しますか? 制作現場で使われる画像は、完璧な状態であることは稀です。強い照明の下で撮影された倉庫の写真、メールクライアントのスクリーンショット、スキャンされた文書などは、いずれもノイズ、圧縮による劣化、形状の歪みなどを引き起こします。 IronBarcodeは、デコード前に画像を前処理するためにImageFilterCollectionを公開します。 using IronBarCode; using IronSoftware.Drawing; // Apply corrections for a low-quality warehouse photo var options = new BarcodeReaderOptions { ImageFilters = new ImageFilterCollection { new SharpenFilter(), new ContrastFilter(1.2f), new DenoiseFilter() }, Speed = ReadingSpeed.Detailed }; var barcodes = BarcodeReader.Read(imagePath, options); using IronBarCode; using IronSoftware.Drawing; // Apply corrections for a low-quality warehouse photo var options = new BarcodeReaderOptions { ImageFilters = new ImageFilterCollection { new SharpenFilter(), new ContrastFilter(1.2f), new DenoiseFilter() }, Speed = ReadingSpeed.Detailed }; var barcodes = BarcodeReader.Read(imagePath, options); $vbLabelText $csharpLabel SharpenFilter 圧縮された画像やピントの合っていない画像からエッジの定義を復元します。 ContrastFilter 照明が不均一な場合に役立ちます。 DenoiseFilter 低解像度スキャンによるスペックルノイズを低減します。 これらのフィルターをReadingSpeed.Detailedと組み合わせることで、難解な資料の読解率を最大化できます。 さまざまなソースからユーザーがアップロードした画像を受け入れる.NET MAUIアプリの場合、デフォルトで保守的なフィルタセットを適用し、2回目の再試行でより積極的な補正にエスカレートすることで、一般的なケースでは目に見える遅延を増やすことなくユーザーエクスペリエンスを向上させることができます。 また、Uri または byte[] を BarcodeReader.Read に直接渡すこともできます。これは、イメージがファイルシステムからではなくネットワーク応答から到着する場合に便利です。 その他の入力ソースの例については、 IronBarcodeの操作ガイドを参照してください。 画像ベースのスキャンが.NET MAUIアプリケーションに適している理由とは? CameraView コントロールを介したライブ カメラ スキャンには、プラットフォーム固有の権限付与、カメラ プレビューのライフサイクル管理、およびフォーカス イベントの処理が必要です。 iOS では、これは AVCaptureSession の設定も意味します。 Android では、CameraX です。 各プラットフォームにはそれぞれ固有の障害モードが存在する。 画像ベースのスキャンは、そういった懸念事項をすべて解消します。 IronBarcode API リファレンスによると、BarcodeReader.Read はファイル パス、Bitmap、または byte[] を受け入れます。これは、MAUI アプリが生成できる任意の表現です。 これは、画像がFilePickerから取得されたもの、ネットワークからダウンロードされたもの、ビットマップにレンダリングされたPDFページ、または電子メールの添付ファイルであるかどうかにかかわらず、同じスキャンロジックが機能することを意味します。 カメラのハードウェアがオフになっているため、バッテリー消費量が少なくなります。 ライブプレビューによるUIのちらつきはなく、アプリの一時停止と再開にわたってカメラのライフサイクルイベントを管理する必要もありません。 タブレットやデスクトップなど、ライブカメラのビューファインダーが適さないフォームファクターでは、画像ベースのデコードが妥協ではなく、自然なデフォルトとなります。デバイスの種類に関係なく、ユーザーはクラウドストレージ、ローカルフォルダ、カメラロールから同じ FilePicker コールを使用してファイルを開くことができます。 ユーザーがバーコードラベルを撮影してアップロードするワークフロー( ASP.NETバーコードスキャナー Web アプリケーションでよく見られる)では、同じ BarcodeReader.Read 呼び出しがモバイルクライアントとサーバーの両方で機能するため、2 つのスキャン実装を維持する必要がなくなります。 IronBarcodeはZXing .NET.MAUIと比べてどうですか? ZXing .NET.MAUIはライブカメラスキャンを対象としており、リアルタイムのビューファインダーフィードバックが製品要件である場合にうまく機能します。 これには、統合、プラットフォーム ハンドラーの登録、およびランタイム権限要求が必要です。 IronBarcodeは、ファイルベースおよびストリームベースのデコードを対象としており、これはEnterprise文書ワークフローの大部分をカバーしています。 PDF417 、 データマトリックス、 コード128など、より幅広いシンボル体系をサポートし、ZXingでは提供されていない画像フィルタの前処理機能も備えています。 ユーザーがアイテムをリアルタイムでスキャンするのではなく、画像をキャプチャまたはアップロードするアプリケーションには、 IronBarcodeがより適しています。 アプリでファイルベースのデコードに加えてライブカメラスキャンが必要な場合は、両方のライブラリを組み合わせることができます。ビューファインダーのワークフローにはZXing .NET.MAUIを、バッチファイル処理にはIronBarcodeを使用します。 次のステップは何ですか? IronBarcodeを使って.NET MAUIバーコードスキャナーを構築するには、30行未満のC#コードで済みます。 画像ファイル方式を採用することで、MAUIのコードベースからカメラのアクセス許可ロジックやプラットフォーム固有の初期化処理を排除でき、同じスキャン呼び出しがWindows、Android、iOSで全く同じように実行されます。 IronBarcode APIのドキュメントには、PDFドキュメントからのバーコードの読み取り、複数の画像のバッチ処理、カスタム画像フィルタの作成、読み取りと同時にバーコードを生成するなど、その他の機能についても記載されています。 機能概要には、サポートされているすべてのシンボルとフォーマットが一覧表示されます。 IronBarcodeをプロジェクトで試用するには無料トライアルを開始するか、本番環境への導入準備が整ったらライセンスを購入してください。 今IronBarcodeを始めましょう。 無料で始める よくある質問 カメラなしで.NET MAUIでバーコード スキャナーを作成するにはどうすればよいですか? NuGet経由でIronBarcodeをインストールし (` Install-Package BarCode`)、`FilePicker.PickAsync` から取得したパスを指定して `BarcodeReader.Read(filePath)` を呼び出します。カメラの権限や `CameraView` の設定は必要ありません。 IronBarcode は.NET MAUIで Android および iOS 上のバーコードをスキャンできますか? はい。プラットフォーム固有のコードパスやマニフェストの変更なしに、同じ `BarcodeReader.Read` 呼び出しが Windows、Android、iOS で実行されます。 IronBarcode はバーコードスキャンにどのような画像形式をサポートしていますか? IronBarcodeは、JPEG、PNG、GIF、TIFF、BMPファイルからバーコードを読み取ります。また、`Stream`、`Bitmap`、`byte[]`入力も受け入れるため、ネットワークレスポンスから取得した画像は、ディスクへの書き込みを必要とせずに読み取ることができます。 .NET MAUIで単一の画像から複数のバーコードをスキャンするにはどうすればよいですか? `BarcodeReaderOptions` で `ExpectMultipleBarcodes = true` を設定し、オプションを `BarcodeReader.Read` に渡します。リーダーは検出されたすべてのバーコードを単一の `BarcodeResults` コレクションで返します。 IronBarcodeと ZXing .NET.MAUI の違いは何ですか? ZXing .NET.MAUIは、`CameraView`コントロールを介してライブカメラスキャンを実行します。IronBarcodeはファイルベースおよびストリームベースのデコードをサポートし、より多くのシンボル体系(PDF417やデータマトリックスを含む)をサポートし、低品質の入力に対する画像フィルタ前処理を提供します。 ぼやけた画像や低品質の画像でのバーコード検出を改善するにはどうすればよいですか? `BarcodeReaderOptions` に `ImageFilterCollection` を追加し、`SharpenFilter`、`ContrastFilter`、`DenoiseFilter` を設定し、`Speed = ReadingSpeed.Detailed` を設定します。これにより、デコードパスの前に画像補正が適用されます。 IronBarcode は.NET MAUIでどのようなバーコード形式をサポートしていますか? IronBarcodeは、Code 128、Code 39、QRコード、データマトリックス、PDF417、EAN-13、EAN-8、UPC-A、UPC-E、Aztecなど、主要な1Dおよび2Dシンボルをすべてサポートしています。全リストはIronBarcodeの機能ページをご覧ください。 Jordi Bardia 今すぐエンジニアリングチームとチャット ソフトウェアエンジニア Jordiは、最も得意な言語がPython、C#、C++であり、Iron Softwareでそのスキルを発揮していない時は、ゲームプログラミングをしています。製品テスト、製品開発、研究の責任を分担し、Jordiは継続的な製品改善において多大な価値を追加しています。この多様な経験は彼を挑戦させ続け、興味を持たせており、Iron Softwareで働くことの好きな側面の一つだと言います。Jordiはフロリダ州マイアミで育ち、フロリダ大学でコンピュータサイエンスと統計学を学びました。 関連する記事 公開日 2026年3月8日 .NETアプリ向けプロフェッショナルバーコードSDKの作成 QRコード、GS1、データマトリックスなどを含む包括的な.NETバーコードSDK。.NET 6-10、Core、およびFrameworkをサポート。 詳しく読む 公開日 2026年3月8日 C#でバーコードSDKを構築:1つのライブラリでバーコードを生成、読み取り、スキャン IronBarcodeを用いてC#でバーコードSDK機能を構築。バーコード画像を生成し、複数のバーコードをファイルからスキャンし、1つ for .NETライブラリでQRコードを読み取ります。サンプルコードが含まれています。 詳しく読む 更新日 2026年3月1日 VB .NETバーコードフォント: フォントに依存しないバーコードを生成して印刷する方法 VB .NETでバーコードフォントを最新の方法で処理します。IronBarcodeを使えば、フォントに依存しないCode 39およびCode 128のバーコード画像を生成できます。無料トライアルもご利用いただけます。 詳しく読む ASP.NET Core Web アプリでバーコードを生成する.NET MAUIバーコードスキャ...
公開日 2026年3月8日 .NETアプリ向けプロフェッショナルバーコードSDKの作成 QRコード、GS1、データマトリックスなどを含む包括的な.NETバーコードSDK。.NET 6-10、Core、およびFrameworkをサポート。 詳しく読む
公開日 2026年3月8日 C#でバーコードSDKを構築:1つのライブラリでバーコードを生成、読み取り、スキャン IronBarcodeを用いてC#でバーコードSDK機能を構築。バーコード画像を生成し、複数のバーコードをファイルからスキャンし、1つ for .NETライブラリでQRコードを読み取ります。サンプルコードが含まれています。 詳しく読む
更新日 2026年3月1日 VB .NETバーコードフォント: フォントに依存しないバーコードを生成して印刷する方法 VB .NETでバーコードフォントを最新の方法で処理します。IronBarcodeを使えば、フォントに依存しないCode 39およびCode 128のバーコード画像を生成できます。無料トライアルもご利用いただけます。 詳しく読む