如何在.NET MAUI中對 iOS 裝置進行圖片轉文字(OCR辨識)
.NET MAUI (多平台應用程式 UI)是 Xamarin.Forms 框架的演進,旨在利用.NET創建適用於 Android、iOS、macOS 和 Windows 的跨平台應用程式。 MAUI 旨在簡化建立可在多個平台上運行的原生使用者介面的過程,包括圖片轉文字與文字辨識功能。
IronOCR.iOS 軟體包為 iOS 帶來了完整的 OCR 支援!
如何在.NET MAUI中在 iOS 上使用IronOCR
- 下載 C# 庫以在 iOS 上執行 OCR。
- 建立一個.NET MAUI應用程式項目
- 編輯 XAML 文件,以顯示啟動按鈕和輸出文字。
- 編輯對應的 C# 檔案以執行 OCR 操作
- 下載範例項目,快速入門
IronOCR iOS 套件
IronOCR.iOS 套件透過.NET跨平台專案在 iOS 裝置上啟用 OCR 功能。 不需要原版IronOCR軟體包。
Install-PackageIronOCR.iOS 套件
Install-PackageIronOCR.iOS 套件
建立一個.NET MAUI項目
在"多平台"部分,選擇".NET MAUI應用程式"並繼續。

包含IronOCR.iOS 庫
可以透過多種方式新增庫。 最簡單的方法或許是使用NuGet。
- 在 Visual Studio 中,右鍵點選"依賴項 > NuGet",然後選擇"管理NuGet套件..."。
- 選擇"瀏覽"選項卡,搜尋"IronOCR"。
- 選擇"IronOCR.iOS"軟體包,然後點選"新增軟體包"。

為防止與其他平台出現問題,請修改 csproj 文件,使其僅在面向 iOS 平台時包含該軟體套件。 為了做到這一點:
- 右鍵點選專案的 *.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 一次,如下面的程式碼所示。 直接在方法中實例化它效率不高,可能會導致意想不到的錯誤。 然後,使用 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應用專案
您可以下載本指南的完整程式碼。它以壓縮檔案的形式提供,您可以在 Visual Studio 中將其作為.NET MAUI應用程式專案開啟。
在 Avalonia 中使用IronOCR.iOS
在 Avalonia 中設定IronOCR.iOS 與在 MAUI 中設定 IronOcr .iOS 類似,但有一個關鍵區別:除了最新的.NET SDK 版本之外,您還需要安裝.NET SDK 8.0.101才能成功運行IronOCR.iOS。 之後, IronOCR.iOS 可以在 Avalonia 專案中使用,設定方式與上述相同。
如果您想在 Android 上執行 OCR,請參閱以下文章以了解更多資訊:"如何在.NET MAUI中對 Android 執行 OCR "
常見問題解答
如何將 OCR 功能整合到 .NET MAUI 的 iOS 應用程式中?
您可以使用 IronOCR.iOS 套件將 OCR 功能整合到 .NET MAUI 的 iOS 應用程式中。通過 Visual Studio 使用 NuGet 安裝,然後修改您的項目檔以有條件地為 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。
如何在 .NET MAUI 專案中使用 IronOCR 執行圖像的 OCR?
在 .NET MAUI 專案中,使用 IronTesseract 對圖像執行 OCR。使用 FilePicker.PickAsync 選擇圖像文件,將其載入 OcrInput 對象,然後使用 IronTesseract 讀取圖像並提取文字。
是否有使用 .NET MAUI 在 iOS 上實現 OCR 的範例專案?
是的,您可以從 Iron Software 網站下載使用 IronOCR.iOS 的 .NET MAUI 範例專案。該範例專案可作為壓縮文件下載,您可在 Visual Studio 中打開以加快開發進程。

