.NET MAUIバーコードスキャナー

This article was translated from English: Does it need improvement?
Translated
View the article in English

イントロダクション

.NET MAUI (.NETマルチプラットフォームアプリUI)は、単一のコードベースでクロスプラットフォームアプリケーションをシームレスに作成するためのクロスプラットフォームフレームワークです。 たとえば、1つのプロジェクトでMicrosoft Windows、iOS、およびAndroidアプリケーションを簡単に作成できます。 他のプラットフォーム、フレームワーク、ライブラリと異なる点は、開発者コミュニティがプロジェクトでネイティブコントロールを使用できるようにし、追加コンポーネントも提供する点です。 その結果、開発者はこれらの既製コンポーネントとサービスを使用して、コードのすべての側面を一から記述することなく、より迅速にアプリケーションを構築することができます。

この記事では、バーコードやQRコードをスキャンするためにIronBarcodeを.NET MAUI Windowsアプリに統合する方法を説明します。

IronBarcode: C# バーコードライブラリ

アプリケーションでバーコードを読み取るために、IronBarcode .NETライブラリを使用します。 それは、バーコードを読み取るための強力でシンプルなAPIを提供し、面倒やバーコードに関する専門知識を必要とせずに開発を可能にします。 それはNuGetパッケージマネージャーで簡単にインストールできます。

IronBarcodeは、多くの他のフォーマットの中で、Code 39Code 128、_PDF417_を含む多数のバーコードフォーマットの読み取りをサポートします。 画像ファイル、メモリーストリーム、PDFなど、さまざまなデータ形式から読み取ることができます。

.NET MAUIアプリでバーコードを読み取る手順

.NET MAUIアプリでバーコードを読み取るための手順は次のとおりです。

前提条件

  1. Visual Studio 2022(ビジュアル スタジオ 2022)

  2. Visual Studio での .NET MAUI プロジェクト

IronBarcodeライブラリをインストール

NuGetのPackage Manager Consoleを使用して、IronBarcodeライブラリをインストールできます。 Visual Studioでこのコンソールを開くには、ツール > NuGetパッケージマネージャー > パッケージマネージャーコンソールに移動します。 次に、コンソールに以下のコマンドを書きます:

Install-Package BarCode

このコンソールコマンドは、MAUIプロジェクト内の最新バージョンのIronBarcodeライブラリをダウンロードします。 または、NuGetパッケージの最新バージョンを検索することもできます。NuGetウェブサイト.

フロントエンド

最初のステップは、フロントエンドデザインを作成することです。 これには、2つのボタン、1つのテキストエリア、1つの画像ボックスで構成されるレイアウトを作成します。 バーコードを選択するためのボタンが1つあり、もう1つのボタンがバーコードのテキストをコピーするために使用されます。 画像ボックスには選択された画像が表示されます。

次の内容に 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="MAUI_Barcode.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">

            <Button
                x:Name="ImageSelect"
                Text="Select Barcode"
                SemanticProperties.Hint="Select Image"
                Clicked="SelectBarcode"
                HorizontalOptions="Center" />
            <Image
                x:Name="barcodeImage"
                SemanticProperties.Description="Selected Barcode"
                HeightRequest="200"
                HorizontalOptions="Center" />
            <Editor x:Name="outputText"
                Placeholder="Output text"
                HeightRequest="100"
                WidthRequest="500" />
            <Button
                x:Name="copyText"
                Text="Copy"
                SemanticProperties.Hint="Copy Text"
                WidthRequest="150"
                Clicked="CopyEditorText"
                HorizontalOptions="Center" />

        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

すべての要素は中央に位置し、縦に積み重ねられています。 お好みに合わせて変更できます。

IronBarcode を使用したバーコードスキャン

このセクションでは、IronBarcodeライブラリを使用してバーコードをスキャンするためのコードについて説明します。 まず、FilePickerを使用してファイルを選択し、画像のファイル形式を指定します。 その後、FullPath プロパティを使用して画像ファイルのパスを取得し、次に画像ボックスのソースを FullPath の値に設定します。 最後に、BarcodeReaderRead 関数で path 値を使用してテキストを取得します。

private async void SelectBarcode(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
    });
    var imageSource = images.FullPath.ToString();
    barcodeImage.Source = imageSource;
    var result = BarcodeReader.Read(imageSource).First().Text;
    outputText.Text = result;
}
private async void SelectBarcode(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
    });
    var imageSource = images.FullPath.ToString();
    barcodeImage.Source = imageSource;
    var result = BarcodeReader.Read(imageSource).First().Text;
    outputText.Text = result;
}
Private Async Sub SelectBarcode(ByVal sender As Object, ByVal e As EventArgs)
	Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
		.PickerTitle = "Pick image",
		.FileTypes = FilePickerFileType.Images
	})
	Dim imageSource = images.FullPath.ToString()
	barcodeImage.Source = imageSource
	Dim result = BarcodeReader.Read(imageSource).First().Text
	outputText.Text = result
End Sub
VB   C#

以下のコードは、テキストエディタのテキストをコピーし、テキストがコピーされたことをユーザーに通知するアラートメッセージを表示します。

private async void CopyEditorText (object sender, EventArgs e)
{
    await Clipboard.SetTextAsync(outputText.Text);
    await DisplayAlert("Success", "Text is copied!", "OK");
}
private async void CopyEditorText (object sender, EventArgs e)
{
    await Clipboard.SetTextAsync(outputText.Text);
    await DisplayAlert("Success", "Text is copied!", "OK");
}
Private Async Sub CopyEditorText(ByVal sender As Object, ByVal e As EventArgs)
	Await Clipboard.SetTextAsync(outputText.Text)
	Await DisplayAlert("Success", "Text is copied!", "OK")
End Sub
VB   C#

この記事では、プロジェクトのソースコードを見つけることができます。 GitHub(ギットハブ).

出力

プロジェクトを実行した後、次の出力が表示されます。 画像が表示されないのは、まだ選択されていないためです。

.NET MAUI BarCode Scanner Tutorial Using IronBarcode - 図1:画像が選択されていない場合の出力

画像が選択されていない場合の出力

バーコードが選択されると、以下のスクリーンショットのように表示され、QRコードの出力テキストがエディタに表示されます。

.NET MAUI バーコードスキャナー チュートリアル IronBarcode を使用 – 図 2: 画像選択後の出力

画像が選択された後の出力

コピー ボタンをクリックすると、前述の警告ウィンドウが表示されます。

.NET MAUI バーコード スキャナー チュートリアル IronBarcode を使用 - 図 3: アラートをコピー

コピーアラート

結論

この記事では、IronBarcodeを使用して.NET MAUIアプリケーションでバーコードを読み取る方法を説明しました。 QRコードリーダーとして、IronBarcodeは非常に優れた性能を発揮し、期待通りの正確な結果を提供します。 さらに、読み取りが困難なバーコードを読み取ることができます。 また、異なるフォントを使用してバーコードを作成およびカスタマイズすることもできます。 IronBarcodeに関するチュートリアル投稿をもっと見るにはこちらをご覧くださいリンク.

IronBarcodeは開発および商業利用のためにライセンスを取得する必要があります。 ライセンスに関する詳細情報は、こちらで確認できます。これ.