.NET MAUIでiOSでOCRを実行する方法
.NET MAUI(マルチプラットフォームアプリUI)は、.NETを使用してAndroid、iOS、macOS、およびWindows向けのクロスプラットフォームアプリを作成するために設計されたXamarin.Formsフレームワークの進化形です。 MAUIは、複数のプラットフォームで動作するネイティブユーザインターフェースの構築プロセスを簡素化することを目指しています。
IronOcr.iOSパッケージは、iOSにOCRサポートを提供します。!!
.NET MAUIでiOS上でIronOCRを使用する方法
IronOCR iOS パッケージ
IronOcr.iOSパッケージは、.NETのクロスプラットフォームプロジェクトを通じてiOSデバイス上でOCR機能を有効にします。 バニラのIronOCRパッケージは必要ありません。
PM > Install-Package IronOcr.iOS
申し訳ありませんが、翻訳するコンテンツのテキストを提供してください。その後、英語から日本語に翻訳いたします。!-- NUGET ライブラリ ダウンロード ディレクティブ タグ :: スタート -->
でインストール NuGet
Install-Package IronOcr.iOS
申し訳ありませんが、翻訳するコンテンツのテキストを提供してください。その後、英語から日本語に翻訳いたします。!-- NUGETライブラリダウンロード指示タグ :: 終了 -->
.NET MAUIプロジェクトを作成
マルチプラットフォームセクションの下で、.NET MAUI Appを選択して続行します。
IronOCR.iOSライブラリを含める
ライブラリはさまざまな方法で追加できます。 おそらく最も簡単なのは、NuGetを使用することです。
-
Visual Studio内で、「依存関係 > Nuget」を右クリックし、「NuGet パッケージの管理 ...」を選択してください。
-
「ブラウズ」タブを選択し、「IronOcr.iOS」を検索してください。
-
「IronOcr.iOS」パッケージを選択し、「パッケージを追加」をクリックしてください。
他のプラットフォームでの問題を防ぐために、csprojファイルを修正してiOSプラットフォームをターゲットにする場合のみパッケージを含めるようにしてください。 そうするためには:
-
プロジェクトの *.csproj ファイルを右クリックし、「プロジェクト ファイルの編集」を選択します。
- 次のとおり、新しい ItemGroup 要素を作成します:
<ItemGroup Condition="$(TargetFramework.Contains('ios')) == true">
</ItemGroup>
-
「IronOcr.iOS」のPackageReferenceを、先ほど作成したItemGroupの中に移動してください。
上記の手順により、「IronOCR.iOS」パッケージがAndroidプラットフォームなどで使用されるのを防ぎます。(そのために、インストールしてくださいIronOcr.Android以下の内容を日本語に翻訳してください:
Instead).
「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>
"MainPage.xaml.cs"を編集
IronTesseractオブジェクトをインスタンス化することから始めましょう。 次のコードに示すように、クラス内で一度IronTesseractを初期化してください。 メソッドで直接インスタンス化することは効果的ではなく、予期しないエラーを引き起こす可能性があります。 次に、FilePicker.PickAsync
メソッドを使用してファイルを選択します。FileResult から、読み取り用ストリームを開きます。 新しい OcrInput オブジェクトを作成し、このオブジェクトを使用して画像を読み込みます。 tesseractインスタンスを使用して画像でOCRを実行し、テキストを返します。 最終的に、結果のテキストをラベルに表示します。
現在の実装は画像ファイルのみに制限されています。 そのパッケージはまだPDF文書と互換性がありません。 これを念頭に置いて、PDFドキュメントに関連するすべての設定はデフォルトで無効化されているべきであり、そうした設定を維持する必要があります。
using IronOcr;
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 IronOcr;
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 IronOcr
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と似ていますが、重要な違いがあります。最新の.NET SDKバージョンに加えて、次も必要です:.NET SDK 8.0.101IronOcr.iOSを正常に実行するにはインストールが必要です。 その後、上記の設定と同様に、AvaloniaプロジェクトでIronOCR for .NETを使用できます。
AndroidでOCRを実行したい場合は、次の記事をご覧ください:.NET MAUIでAndroidでOCRを実行する方法"