フッターコンテンツにスキップ
IRONBARCODEの使用

IronBarcodeを使用してMAUIバーコードスキャナーを作成する方法

現代のモバイルアプリケーションは、在庫管理、POSシステム、製品追跡のためにバーコードスキャンをますます利用しています。 .NET MAUIアプリケーションにバーコード検出を統合し、カメラフィードと画像ファイル処理を組み合わせてQRコード、データマトリックス、その他のバーコードフォーマットを検出するMAUIバーコードスキャナーを構築します。 多くのライブラリがカメラプレビューに焦点を当てている一方で、IronBarcodeはバーコードを正確に読み取り、困難な条件下でもスキャンすることに優れています。

このガイドでは、.NET MAUIプロジェクトでIronBarcodeを使用してバーコードスキャン機能を実装する方法を紹介します。 最終的には、一つの画像ファイルまたはデバイスのカメラから複数のバーコードをスキャンし、任意のバーコードからデータを読み取り、自信を持って自分のMAUIプロジェクトでIronBarcodeを使用できるようになります。

MAUIバーコードスキャナーを構築するための前提条件は何ですか?

開始する前に、Visual Studio CodeまたはVisual Studio 2022をインストールし、.NET MAUIワークロードとC#の基本知識を備えていることを確認してください。 また、最適なパフォーマンスとクロスプラットフォームアプリケーションのサポートのために.NET 8 SDKが必要です。

MAUIバーコードスキャンプロジェクトをセットアップする方法は?

Visual Studio 2022で新しい.NET MAUI Appプロジェクトを作成します。「BarcodeScannerApp」と名付け、ターゲットフレームワークとして.NET 8を選択します。

NuGetパッケージマネージャーコンソールを通じてIronBarcodeをインストールします:

Install-Package BarCode

これにより、QRコード、Code 128、データマトリックスを含む複数のバーコードフォーマットをサポートする.NETライブラリがインストールされます。 IronBarcodeはオフラインで動作し、ネイティブで未サポートの反転バーコードを処理し、継続的なスキャンとより良いスキャンの一貫性を保証します。

無料のトライアルライセンスを取得し、それをコードに追加してIronBarcodeを有効化します。

License.LicenseKey = "YOUR-LICENSE-KEY";
License.LicenseKey = "YOUR-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

AndroidおよびiOSのカメラ権限をどのように設定しますか?

プラットフォーム固有のカメラ権限はバーコードスキャン機能に不可欠です。 各プラットフォームは、そのマニフェストファイルに特定の設定が必要です。

Android用には、Platforms/Android/AndroidManifest.xmlを編集します:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

これらの権限はカメラアクセスを可能にし、カメラハードウェアの使用を宣言し、あなたのアプリがAndroidデバイスでバーコード画像をキャプチャできるようにします。

iOS用には、Platforms/iOS/Info.plistを変更します:

<key>NSCameraUsageDescription</key>
<string>This app requires camera access to scan barcodes</string>
<key>NSCameraUsageDescription</key>
<string>This app requires camera access to scan barcodes</string>
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

この構成は、iOSがユーザーからカメラの権限を要求する際に表示する必要なプライバシー記述を提供します。

バーコードスキャナーインターフェースをどのように作成しますか?

MainPage.xamlでシンプルでユーザーフレンドリーなインターフェースを設計します:

<?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="BarcodeScannerApp.MainPage">
    <VerticalStackLayout Padding="20" Spacing="20">
        <Label Text="Barcode Scanner" 
               FontSize="24" 
               HorizontalOptions="Center" />
        <Image x:Name="CapturedImage" 
               HeightRequest="300"
               Aspect="AspectFit" />
        <Label x:Name="ResultLabel" 
               Text="Tap button to scan"
               HorizontalOptions="Center" />
        <Button Text="Scan Barcode" 
                Clicked="OnScanClicked"
                BackgroundColor="#007ACC"
                TextColor="White" />
    </VerticalStackLayout>
</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="BarcodeScannerApp.MainPage">
    <VerticalStackLayout Padding="20" Spacing="20">
        <Label Text="Barcode Scanner" 
               FontSize="24" 
               HorizontalOptions="Center" />
        <Image x:Name="CapturedImage" 
               HeightRequest="300"
               Aspect="AspectFit" />
        <Label x:Name="ResultLabel" 
               Text="Tap button to scan"
               HorizontalOptions="Center" />
        <Button Text="Scan Barcode" 
                Clicked="OnScanClicked"
                BackgroundColor="#007ACC"
                TextColor="White" />
    </VerticalStackLayout>
</ContentPage>
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このレイアウトは、画像プレビューエリア、結果表示ラベル、スキャンボタンを備えたクリーンなインターフェースを作成します。 VerticalStackLayoutは、一貫した間隔とパディングを提供し、プロフェッショナルな外観を実現します。

バーコードリーダー機能をどのように実装しますか?

IronBarcodeの画像処理機能を使用してMainPage.xaml.csにスキャンロジックを実装します:

using IronBarCode;
using IronSoftware.Drawing;
namespace BarcodeScannerApp;
public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
        License.LicenseKey = "YOUR-LICENSE-KEY";
    }
    private async void OnScanClicked(object sender, EventArgs e)
    {
        try
        {
            // Capture photo using device camera
            var photo = await MediaPicker.Default.CapturePhotoAsync();
            if (photo == null) return;
            // Convert photo to byte array
            using var stream = await photo.OpenReadAsync();
            using var memoryStream = new MemoryStream();
            await stream.CopyToAsync(memoryStream);
            var imageBytes = memoryStream.ToArray();
            // Display captured image
            CapturedImage.Source = ImageSource.FromStream(() => 
                new MemoryStream(imageBytes));
            // Process with IronBarcode
            var bitmap = AnyBitmap.FromBytes(imageBytes);
            var results = await BarcodeReader.ReadAsync(bitmap);
            // Display results
            if (results.Any())
            {
                var barcodeValue = results.First().Value;
                ResultLabel.Text = $"Scanned: {barcodeValue}";
            }
            else
            {
                ResultLabel.Text = "No barcode detected";
            }
        }
        catch (Exception ex)
        {
            await DisplayAlert("Error", 
                $"Scanning failed: {ex.Message}", "OK");
        }
    }
}
using IronBarCode;
using IronSoftware.Drawing;
namespace BarcodeScannerApp;
public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
        License.LicenseKey = "YOUR-LICENSE-KEY";
    }
    private async void OnScanClicked(object sender, EventArgs e)
    {
        try
        {
            // Capture photo using device camera
            var photo = await MediaPicker.Default.CapturePhotoAsync();
            if (photo == null) return;
            // Convert photo to byte array
            using var stream = await photo.OpenReadAsync();
            using var memoryStream = new MemoryStream();
            await stream.CopyToAsync(memoryStream);
            var imageBytes = memoryStream.ToArray();
            // Display captured image
            CapturedImage.Source = ImageSource.FromStream(() => 
                new MemoryStream(imageBytes));
            // Process with IronBarcode
            var bitmap = AnyBitmap.FromBytes(imageBytes);
            var results = await BarcodeReader.ReadAsync(bitmap);
            // Display results
            if (results.Any())
            {
                var barcodeValue = results.First().Value;
                ResultLabel.Text = $"Scanned: {barcodeValue}";
            }
            else
            {
                ResultLabel.Text = "No barcode detected";
            }
        }
        catch (Exception ex)
        {
            await DisplayAlert("Error", 
                $"Scanning failed: {ex.Message}", "OK");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

この実装により、MediaPickerを介して画像をキャプチャし、それを処理用にバイトアレイに変換し、IronBarcodeのBarcodeReader.ReadAsyncメソッドを使用して検出します。 AnyBitmap.FromBytesメソッドは、さまざまな画像フォーマットを自動的に処理します。 エラーハンドリングにより、ユーザーフレンドリーなメッセージでの優雅な失敗回復を保証します。

このコードを使用してこのバーコードをスキャンできます:

IronBarcodeを使用したMAUIバーコードスキャナーの作成方法:図2 - 入力テストバーコード

そして、画面上にバーコードのデータが表示されるはずです:

IronBarcodeを使用したMAUIバーコードスキャナーの作成方法:図3 - スキャンしたバーコードの値

IronBarcodeが提供する高度な機能は何ですか?

IronBarcodeはスキャンの信頼性を高めるいくつかの高度な機能を提供します。 ライブラリの機械学習アルゴリズムは、自動的に信頼阈を調節し、困難なバーコードでの精度を向上させます。 画像補正フィルタは、回転、傾き、または照明の悪いバーコードを追加の設定なしで処理します。

特定のスキャン要件に対して、リーダーオプションをカスタマイズします:

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128
};
var results = await BarcodeReader.ReadAsync(bitmap, opcanbvations);
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128
};
var results = await BarcodeReader.ReadAsync(bitmap, opcanbvations);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

この設定により、特定のバーコードタイプ向けにスキャンを最適化し、単一の画像での複数のバーコード検出を可能にし、処理時間を短縮しながら、精度を維持します。

IronBarcodeを使用したMAUIバーコードスキャナーの作成方法:図4 - 同じ画像からスキャンされた複数のコード

一般的なトラブルシューティングのヒント

頑強なMAUIバーコードスキャナー設定を持っていても、デバイス設定、画像品質、またはプラットフォーム固有の制約により問題が発生する場合があります。 .NET MAUIアプリケーションでバーコードスキャン機能を実装する際に直面する最も一般的な問題を解決するための以下のヒントです:

  • カメラが開かない: マニフェストノードで次の権限が正しく設定されていることを確認し、アプリを再展開します。また、複数のカメラやカスタムカメラ設定でテストする場合、サポートされているマルチカメラセットアップを確認してください。
  • スキャン結果が良くない: 画像の解像度や照明を調節したり、バーコードに対して変換を適用してください。 追加的に、連続スキャンを有効にし、BarcodeReaderOptionsの速度オプションを増やすことで、スキャンの一貫性を向上させることができます。
  • メモリの問題: usingステートメントを使用して画像ストリームを適切に処理します。 これにより、バーコードスキャン機能が応答性を保ち、AndroidデバイスやMicrosoft Windowsマシンでの予期しないクラッシュやスローダウンを防止します。
  • iOSの問題: Info.plistに適切なQRコードバインダブルプロパティが含まれていることを確認します。 一貫したバーコードスキャン機能をiOSデバイスで確認するために、iPhoneとiPadデバイスの両方でのテストが推奨されます。

結論

IronBarcodeは、強力な画像処理エンジンと機械学習能力でMAUIバーコードスキャンを変革します。 リアルタイムカメラプレビュライブラリとは異なり、IronBarcodeのアプローチは、困難な条件下でも信頼できるスキャンを保証します。 ライブラリのオフライン機能と広範なフォーマットサポートは、企業アプリケーションに理想的です。 今、今日お教えした内容を元に自信を持って独自の.NET MAUIバーコードスキャナーを作成することができます。 もっと学びたいですか? IronBarcodesの詳細なドキュメントを必ずお読みください。

運用導入の無料トライアルから開発を開始してください。 IronBarcodeの精度、実装のしやすさ、総合的な機能の組み合わせは、MAUIバーコードスキャンアプリケーションに最適な選択となります。

よくある質問

MAUIのバーコードスキャナーにIronBarcodeを使用する利点は何ですか?

IronBarcodeは、厳しい条件下でも正確にバーコードを読み取り、スキャンするため、MAUIアプリケーションへの統合に最適です。

IronBarcodeはMAUIアプリケーションで複数のバーコード形式を処理できますか?

はい、IronBarcodeはQRコードやデータマトリックスを含むさまざまなバーコード形式を検出できるため、さまざまなアプリケーションのニーズに対応できます。

IronBarcodeはMAUIバーコードスキャナーでカメラフィードとどのように統合しますか?

IronBarcodeは、カメラフィードとのシームレスな統合を可能にし、MAUIアプリケーション内で直接リアルタイムのバーコード検出と処理を実現します。

IronBarcodeはMAUIアプリケーションでオフラインバーコードスキャンをサポートしていますか?

はい、IronBarcodeはオフラインバーコードスキャンをサポートしており、インターネット接続がなくても機能するため、モバイルアプリケーションにとって利便性があります。

MAUIでのバーコードスキャンにおけるIronBarcodeの主な機能は何ですか?

主な機能には、正確なバーコード検出、さまざまなバーコード形式のサポート、および厳しい条件下での強力なパフォーマンスが含まれます。

IronBarcodeは困難なスキャン条件をどのように対処しますか?

IronBarcodeは、照明が悪い状況や角度が傾いている場合でも正確にバーコードを読み取るように設計されており、信頼性の高いパフォーマンスを保証します。

MAUIでのIronBarcodeを使用したバーコードスキャンの許可設定は簡単ですか?

はい、IronBarcodeは必要なバーコードスキャン許可の設定に関する明確なガイダンスを提供し、MAUIでの実装を簡単にします。

IronBarcodeはMAUIの在庫管理アプリケーションに使用できますか?

もちろん、IronBarcodeは在庫管理に非常に適しており、効率的なバーコードスキャン機能を提供し、MAUIアプリケーションに統合できます。

Jordi Bardia
ソフトウェアエンジニア
Jordiは、最も得意な言語がPython、C#、C++であり、Iron Softwareでそのスキルを発揮していない時は、ゲームプログラミングをしています。製品テスト、製品開発、研究の責任を分担し、Jordiは継続的な製品改善において多大な価値を追加しています。この多様な経験は彼を挑戦させ続け、興味を持たせており、Iron Softwareで働くことの好きな側面の一つだと言います。Jordiはフロリダ州マイアミで育ち、フロリダ大学でコンピュータサイエンスと統計学を学びました。