.NET MAUIでiOSのOCRを実行する方法

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

.NET MAUI (マルチプラットフォーム アプリ UI) は、Xamarin.Forms フレームワークの進化版であり、.NET を使用して Android、iOS、macOS、Windows 向けのクロスプラットフォーム アプリを作成するように設計されています。 MAUI は、複数のプラットフォームで実行できるネイティブ ユーザー インターフェイスを構築するプロセスを簡素化することを目的としています。

IronOcr.iOS パッケージはiOS に OCR サポートをもたらします。

IronOCR iOS パッケージ

IronOcr.iOS パッケージは、.NET クロスプラットフォーム プロジェクトを介して iOS デバイスで OCR 機能を有効にします。 標準の IronOCR パッケージは必要ありません。

インストールパッケージ IronOcr.iOS
PDF用C# NuGetライブラリ

Install with NuGet

インストールパッケージ IronOcr.iOS

.NET MAUIプロジェクトの作成

マルチプラットフォームセクションで、.NET MAUI App を選択して続行します。

! .NET MAUI アプリプロジェクトを作成する

IronOCR.iOSライブラリを組み込む

ライブラリを追加する方法はいくつかあります。 最も簡単なのは、おそらくNuGetを使用することです。

  1. Visual Studio 内で、"Dependencies > Nuget" を右クリックし、"Manage NuGet Packages ..." を選択します。 2."参照"タブを選択し、"IronOcr.iOS"を検索します。
  2. "IronOcr.iOS"パッケージを選択し、"パッケージの追加"をクリックします。

! IronOCR.iOS パッケージをダウンロード

他のプラットフォームで問題が発生しないようにするには、iOS プラットフォームを対象とする場合にのみパッケージを含めるようにcsprojファイルを変更します。 これを行うには:

  1. プロジェクトの*.csprojファイルを右クリックして"プロジェクトファイルを編集"を選択します。
  2. 次のように新しいItemGroup要素を作成します。

    <ItemGroup Condition="$(TargetFramework.Contains('ios')) == true">
        <PackageReference Include="IronOcr.iOS" Version="YOUR_PACKAGE_VERSION" />
    </ItemGroup>
    <ItemGroup Condition="$(TargetFramework.Contains('ios')) == true">
        <PackageReference Include="IronOcr.iOS" Version="YOUR_PACKAGE_VERSION" />
    </ItemGroup>
    XML
  3. "IronOcr.iOS"PackageReference を、先ほど作成したItemGroup内に移動します。

上記の手順により、"IronOCR.iOS"パッケージが Android プラットフォームなどで使用されなくなります (そのためには、代わりにIronOCR.Androidをインストールしてください)。

"MainPage.xaml"を編集する

XAML ファイルを編集して、OCR の結果を表示するボタンとラベルを表示します。 例えば:

<?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="MAUIIronOCRiOSSample.MainPage">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Button
            Text="Import File"
            Clicked="ReadFileOnImport"
            Grid.Row="0"
            HorizontalOptions="Center"
            Margin="20, 20, 20, 10"/>

        <ScrollView
            Grid.Row="1"
            BackgroundColor="LightGray"
            Padding="10"
            Margin="10, 10, 10, 30">
            <Label x:Name="OutputText"/>
        </ScrollView>
    </Grid>

</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="MAUIIronOCRiOSSample.MainPage">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Button
            Text="Import File"
            Clicked="ReadFileOnImport"
            Grid.Row="0"
            HorizontalOptions="Center"
            Margin="20, 20, 20, 10"/>

        <ScrollView
            Grid.Row="1"
            BackgroundColor="LightGray"
            Padding="10"
            Margin="10, 10, 10, 30">
            <Label x:Name="OutputText"/>
        </ScrollView>
    </Grid>

</ContentPage>
XML

"MainPage.xaml.cs"を編集する

まず、 IronTesseractオブジェクトをインスタンス化します。 以下のコードに示すように、クラス内でIronTesseract 1 回初期化するようにしてください。 メソッド内で直接インスタンス化することは効果的ではなく、予期しないエラーが発生する可能性があります。 次に、FilePicker.PickAsyncメソッドを使用してファイルを選択します。FileResultから、読み取り用のストリームを開きます。 新しいOcrInputオブジェクトを作成し、このオブジェクトを使用して画像を読み込みます。 tesseract インスタンスを使用して画像に対して OCR を実行し、テキストを返します。 最後に、結果のテキストをラベルに表示します。

現在の実装は画像ファイルのみに制限されています。 パッケージはまだ PDF ドキュメントでは動作しません。 これを念頭に置いて、PDF ドキュメントに関連するすべての構成は非アクティブのままにしておく必要があります。

using System;
using IronOcr;
using Microsoft.Maui.Controls;

namespace MAUIIronOCRiOSSample;

public partial class MainPage : ContentPage
{
    // Initialize IronTesseract once in a class
    private IronTesseract ocrTesseract = new IronTesseract();

    public MainPage()
    {
        InitializeComponent();
        // Apply license key
        IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
    }

    private async void ReadFileOnImport(object sender, EventArgs e)
    {
        try
        {
            var options = new PickOptions
            {
                PickerTitle = "Please select a file"
            };

            var result = await FilePicker.PickAsync(options);
            if (result != null)
            {
                using var stream = await result.OpenReadAsync();

                // Instantiate OcrInput
                using var ocrInput = new OcrInput();

                // Load image stream
                ocrInput.LoadImage(stream);

                // Perform OCR
                var ocrResult = ocrTesseract.Read(ocrInput);
                OutputText.Text = ocrResult.Text;
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions
            System.Diagnostics.Debug.WriteLine(ex);
        }
    }
}
using System;
using IronOcr;
using Microsoft.Maui.Controls;

namespace MAUIIronOCRiOSSample;

public partial class MainPage : ContentPage
{
    // Initialize IronTesseract once in a class
    private IronTesseract ocrTesseract = new IronTesseract();

    public MainPage()
    {
        InitializeComponent();
        // Apply license key
        IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
    }

    private async void ReadFileOnImport(object sender, EventArgs e)
    {
        try
        {
            var options = new PickOptions
            {
                PickerTitle = "Please select a file"
            };

            var result = await FilePicker.PickAsync(options);
            if (result != null)
            {
                using var stream = await result.OpenReadAsync();

                // Instantiate OcrInput
                using var ocrInput = new OcrInput();

                // Load image stream
                ocrInput.LoadImage(stream);

                // Perform OCR
                var ocrResult = ocrTesseract.Read(ocrInput);
                OutputText.Text = ocrResult.Text;
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions
            System.Diagnostics.Debug.WriteLine(ex);
        }
    }
}
Imports System
Imports IronOcr
Imports Microsoft.Maui.Controls

Namespace MAUIIronOCRiOSSample

	Partial Public Class MainPage
		Inherits ContentPage

		' Initialize IronTesseract once in a class
		Private ocrTesseract As New IronTesseract()

		Public Sub New()
			InitializeComponent()
			' Apply license key
			IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01"
		End Sub

		Private Async Sub ReadFileOnImport(ByVal sender As Object, ByVal e As EventArgs)
			Try
				Dim options = New PickOptions With {.PickerTitle = "Please select a file"}

				Dim result = Await FilePicker.PickAsync(options)
				If result IsNot Nothing Then
					Dim stream = Await result.OpenReadAsync()

					' Instantiate OcrInput
					Dim ocrInput As New OcrInput()

					' Load image stream
					ocrInput.LoadImage(stream)

					' Perform OCR
					Dim ocrResult = ocrTesseract.Read(ocrInput)
					OutputText.Text = ocrResult.Text
				End If
			Catch ex As Exception
				' Handle exceptions
				System.Diagnostics.Debug.WriteLine(ex)
			End Try
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

最後に、ビルドターゲットをiOSシミュレーターに切り替えてプロジェクトを実行します。

プロジェクトを実行する

ここでは、プロジェクトを実行して OCR を実行する方法を説明します。

Execute .NET MAUI App project

.NET MAUIアプリプロジェクトをダウンロードする

このガイドの完全なコードをダウンロードできます。これは.zipファイルとして提供され、Visual Studioで.NET MAUIアプリプロジェクトとして開くことができます。

プロジェクトをダウンロードするにはここをクリックしてください。

AvaloniaでIronOcr.iOSを使用する

Avalonia での IronOCR.iOS のセットアップは MAUI と似ていますが、重要な違いが 1 つあります。IronOCR.iOS を正常に実行するには、最新の .NET SDK バージョンに加えて、 .NET SDK 8.0.101もインストールされている必要があります。 その後、IronOcr.iOS は上記と同じ設定で Avalonia プロジェクトで使用できるようになります。

Android で OCR を実行する場合は、次の記事を参照して詳細を確認してください: " .NET MAUI で Android で OCR を実行する方法"

よくある質問

.NET MAUI アプリケーションに OCR 機能を統合するにはどうすればよいですか?

.NET MAUI アプリケーションに OCR 機能を統合するには、IronOCR.iOS パッケージを使用します。NuGet を介して Visual Studio にインストールし、プロジェクトファイルを iOS プラットフォーム用に条件付きでパッケージを含むように修正します。IronTesseract を使用して画像を処理し、テキストを抽出します。

IronOCR.iOS パッケージを PDF ドキュメント処理に使用できますか?

いいえ、IronOCR.iOS パッケージは現在画像ファイルの処理のみに限定されており、PDF ドキュメントをサポートしていません。プロジェクトで PDF 関連の設定が無効になっていることを確認してください。

.NET MAUI を使用して iOS アプリで OCR を設定するにはどのようなステップが必要ですか?

.NET MAUI を使用して iOS アプリで OCR を設定するには、NuGet 経由で IronOcr.iOS パッケージをダウンロードし、プロジェクトファイルを iOS 向けに条件付きでパッケージが含まれるように修正し、MainPage.xaml と MainPage.xaml.cs ファイルを編集してユーザーインターフェースを作成し、OCR 処理を行います。

Avalonia プロジェクトで IronOCR を使用する場合、どのような追加要件がありますか?

Avalonia プロジェクトで IronOCR を使用する際には、最新の .NET SDK バージョンと .NET SDK 8.0.101 がインストールされていることを確認する必要があります。このセットアップは MAUI に似ていますが、追加の SDK が必要です。

IronOCR を使用して .NET MAUI プロジェクトで画像に OCR を実行するにはどうすればよいですか?

.NET MAUI プロジェクトで IronTesseract オブジェクトを使用して画像に OCR を実行します。FilePicker.PickAsync を使用して画像ファイルを選択し、OcrInput オブジェクトにロードし、IronTesseract を使って画像を読みテキストを抽出します。

.NET MAUI を用いて iOS に OCR を実装するためのサンプルプロジェクトはありますか?

はい、Iron Software のウェブサイトから IronOCR.iOS を用いたサンプル .NET MAUI プロジェクトをダウンロードすることができます。このサンプルプロジェクトは、開発プロセスを迅速化するために Visual Studio で開ける ZIP ファイルとして利用可能です。

カーティス・チャウ
テクニカルライター

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

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 5,167,857 | Version: 2025.11 リリース