.NET MAUIでiOSのOCRを実行する方法
.NET MAUI (マルチプラットフォーム アプリ UI) は、Xamarin.Forms フレームワークの進化版であり、.NET を使用して Android、iOS、macOS、Windows 向けのクロスプラットフォーム アプリを作成するように設計されています。 MAUI は、複数のプラットフォームで実行できるネイティブ ユーザー インターフェイスを構築するプロセスを簡素化することを目的としています。
IronOcr.iOS パッケージはiOS に OCR サポートをもたらします。
.NET MAUIでiOS上のIronOCRを使用する方法
- iOSでOCRを実行するためのC#ライブラリをダウンロードする
- .NET MAUI アプリプロジェクトを作成します
- アクティベーションボタンと出力テキストを表示するために XAML ファイルを編集します
- OCR を実行するために対応する C# ファイルを編集します
- クイックスタート用のサンプルプロジェクトをダウンロード
IronOCR iOS パッケージ
IronOcr.iOS パッケージは、.NET クロスプラットフォーム プロジェクトを介して iOS デバイスで OCR 機能を有効にします。 標準の IronOCR パッケージは必要ありません。
インストールパッケージ IronOcr.iOS
Install with NuGet
インストールパッケージ IronOcr.iOS
.NET MAUIプロジェクトの作成
マルチプラットフォームセクションで、.NET MAUI App を選択して続行します。
IronOCR.iOSライブラリを組み込む
ライブラリを追加する方法はいくつかあります。 最も簡単なのは、おそらくNuGetを使用することです。
- Visual Studio 内で、"Dependencies > Nuget" を右クリックし、"Manage NuGet Packages ..." を選択します。 2."参照"タブを選択し、"IronOcr.iOS"を検索します。
- "IronOcr.iOS"パッケージを選択し、"パッケージの追加"をクリックします。
他のプラットフォームで問題が発生しないようにするには、iOS プラットフォームを対象とする場合にのみパッケージを含めるようにcsprojファイルを変更します。 これを行うには:
- プロジェクトの*.csprojファイルを右クリックして"プロジェクトファイルを編集"を選択します。
次のように新しい
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- "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>"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最後に、ビルドターゲットをiOSシミュレーターに切り替えてプロジェクトを実行します。
プロジェクトを実行する
ここでは、プロジェクトを実行して OCR を実行する方法を説明します。

.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 ファイルとして利用可能です。






