.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アプリケーションを作成できます。 他のプラットフォーム、フレームワーク、ライブラリと異なる点は、開発者コミュニティがプロジェクトでネイティブコントロールを使用できるようにし、追加コンポーネントも提供する点です。 その結果、開発者はこれらの既製コンポーネントとサービスを使用して、コードのすべての側面を一から記述することなく、より迅速にアプリケーションを構築することができます。

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

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

IronBarcodeは、プログラム内で簡単にバーコードを作成するのに役立つ .NETライブラリです。 頑丈で使いやすいデフォルトのAPIセットを提供します。IronBarcodeライブラリは、オブジェクトレベルでQRコードやその他のバーコードを生成および読み取る機能を提供しているため、バーコードオブジェクトの作成や事前知識の詳細を気にせずに、そのメソッドを呼び出すことでバーコードを1つずつ開発することができます。 さらに、外部依存関係をロードする必要がなく、NuGet Package Managerを使用して簡単にダウンロードできます。

IronBarcodeは、Code 39、Code 128、PDF417など、複数のQRおよび最新のバーコードフォーマットをサポートしています。 この.NETライブラリは、QRコードのリーダーおよびビルダーとしても使用できます。 入力データを人間が読めるテキストにデコードします。 画像、ストリーム、GIFなど多くの入力を取得できます。 この記事では、.NET MAUIアプリでQRコードを読み取り、スキャンするためにIronBarcodeライブラリを使用する方法についても説明します。

.NET MAUIアプリでバーコードを読み取ってスキャンする手順

次のステップに従って、.NET MAUIアプリでQRコードを読み取ります。

前提条件

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

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

  3. バーコードスキャンのためにIronBarcodeライブラリをインストールするには、安定したインターネット接続が必要です。

    上記の前提条件を満たしている場合は、次のステップに進むことができます。

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

IronBarcodeライブラリは、NuGetパッケージコンソールを使用してインストールできます。 以下のコマンドをコンソールに入力してください:

Install-Package BarCode

このコンソールコマンドは、MAUIプロジェクト内の最新バージョンのIronBarcodeライブラリをダウンロードします。 もちろん、NuGetパッケージライブラリの最新バージョンは常にチェックして検索することができます。それは以下のURLから行えます: 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#

このプロジェクトは、以下のURLからコードの読み取りとスキャンのために取得できます。 GitHub(ギットハブ)().

出力

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

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

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

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

.NET MAUI Barcode Scanner Tutorial Using IronBarcode - Figure 2: 画像が選択された後の出力

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

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

.NET MAUI Barcode Scanner Tutorial Using IronBarcode - Figure 3: コピーアラート

コピーアラート

結論

この記事では、IronBarcodeを使用して.NET MAUIアプリケーションでバーコードを読み取る方法について説明しました。 IronBarcodeは、バーコード操作に必要なすべてのツールを備えた完全な製品です。 QRコードリーダーとして、IronBarcodeは非常に優れたパフォーマンスを発揮します。 それは期待通りの正確な出力を提供します。 さらに、複雑なバーコードを読み取ることができます。 また、異なるフォントを使用してバーコードを作成およびカスタマイズすることもできます。 IronBarcodeに関するチュートリアル投稿をもっと見るにはこちらをご覧ください リンク.

IronBarcodeは開発目的で無料です。 しかし、商業利用の場合はライセンスを購入する必要があります。 以下を使用してライセンスに関する情報を取得できます。リンク.