Como Converter Imagem em Texto no iOS com IronOCR em .NET MAUI
.NET MAUI (Multi-platform App UI) é uma evolução do framework Xamarin.Forms, projetado para criar aplicativos multiplataforma para Android, iOS, macOS e Windows usando .NET. MAUI visa simplificar o processo de construção de interfaces de usuário nativas que podem ser executadas em várias plataformas.
O pacote IronOcr.iOS traz suporte para converter imagem em texto e realizar leitura de texto no iOS!
Como usar o IronOCR no iOS em .NET MAUI
- Baixe a biblioteca C# para realizar OCR no iOS
- Criar um projeto de aplicativo .NET MAUI
- Edite o arquivo XAML para exibir um botão de ativação e um texto de saída.
- Edite o arquivo C# correspondente para executar o OCR.
- Baixe o projeto de exemplo para começar rapidamente.
Pacote IronOCR para iOS
O pacote IronOcr.iOS permite recursos de OCR em dispositivos iOS via projetos multiplataforma .NET. O pacote básico do IronOCR não é necessário.
Install-Package IronOcr.iOS
Install-Package IronOcr.iOS
Criar um projeto .NET MAUI
Na seção Multiplataforma, selecione .NET MAUI App e continue.

Incluir a Biblioteca IronOCR.iOS
A biblioteca pode ser adicionada de várias maneiras. A maneira mais fácil é talvez usando o NuGet.
- Dentro do Visual Studio, clique com o botão direito em "Dependencies > NuGet" e selecione "Manage NuGet Packages ...".
- Selecione a aba "Procurar" e pesquise por "IronOcr.iOS".
- Selecione o pacote "IronOcr.iOS" e clique em "Adicionar Pacote".

Para evitar problemas com outras plataformas, modifique o arquivo csproj para incluir o pacote apenas quando direcionado à plataforma iOS. Para fazer isso:
- Clique com o botão direito no arquivo *.csproj do seu projeto e selecione "Editar Arquivo do Projeto".
-
Crie um novo elemento
ItemGroupassim:<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 - Mova o PackageReference "IronOcr.iOS" para dentro do
ItemGroupque acabamos de criar.
As etapas acima impedirão que o pacote "IronOcr.iOS" seja usado em, por exemplo, plataformas Android (para esse fim, instale o IronOcr.Android em vez disso).
Editar "MainPage.xaml"
Edite o arquivo XAML para exibir um botão e um rótulo para mostrar o resultado do OCR. Por exemplo:
<?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>
Editar "MainPage.xaml.cs"
Comece instanciando o objeto IronTesseract. Certifique-se de inicializar IronTesseract uma vez em uma classe, conforme mostrado no código abaixo. Instanciá-la diretamente em um método não é eficaz e pode levar a erros inesperados. Então, use o método FilePicker.PickAsync para selecionar um arquivo. A partir do FileResult, abra um stream para leitura. Crie um novo objeto OcrInput e use este objeto para carregar a imagem. Use a instância tesseract para realizar OCR na imagem e retornar o texto. Por fim, exiba o texto resultante em um rótulo.
A implementação atual está limitada apenas a arquivos de imagem. O pacote ainda não funciona com documentos PDF. Com isso em mente, qualquer configuração relacionada a documentos PDF deve permanecer desativada.
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
Por fim, altere o alvo de compilação para o iOS Simulator e execute o projeto.
Execute o projeto
Isso mostrará como executar o projeto e realizar OCR.
Baixar Projeto de App .NET MAUI
Você pode baixar o código completo deste guia. Ele está compactado em um arquivo zip que pode ser aberto no Visual Studio como um projeto de aplicativo .NET MAUI .
Usando IronOcr.iOS no Avalonia
Configurar IronOcr.iOS no Avalonia é semelhante ao MAUI, com uma diferença crucial: além da versão mais recente do SDK do .NET, você também precisa do .NET SDK 8.0.101 instalado para executar IronOcr.iOS com sucesso. Depois, o IronOcr.iOS pode ser usado em um projeto Avalonia com a mesma configuração descrita acima.
Se você quiser realizar OCR no Android, navegue para o seguinte artigo para saber mais: "Como Realizar OCR no Android no .NET MAUI"
Perguntas frequentes
Como faço para integrar a funcionalidade de OCR em um aplicativo .NET MAUI para iOS?
Você pode integrar a funcionalidade de OCR em um aplicativo .NET MAUI para iOS usando o pacote IronOCR.iOS. Instale-o via NuGet no Visual Studio e, em seguida, modifique o arquivo de projeto para incluir o pacote condicionalmente para a plataforma iOS. Use IronTesseract para processar imagens e extrair texto.
Posso usar o pacote IronOCR.iOS para processamento de documentos PDF?
Não, o pacote IronOCR.iOS está atualmente limitado ao processamento de arquivos de imagem e não oferece suporte a documentos PDF. Certifique-se de que todas as configurações relacionadas a PDF estejam desativadas em seu projeto.
Quais são os passos envolvidos na configuração de OCR para um aplicativo iOS usando .NET MAUI?
A configuração do OCR para um aplicativo iOS usando o .NET MAUI envolve o download do pacote IronOcr.iOS via NuGet, a modificação do arquivo de projeto para incluir condicionalmente o pacote para iOS e a edição dos arquivos MainPage.xaml e MainPage.xaml.cs para criar a interface do usuário e lidar com o processamento de OCR.
Quais são os requisitos adicionais para usar o IronOCR em projetos Avalonia?
Ao usar o IronOCR em projetos Avalonia, você precisa garantir que tenha a versão mais recente do SDK do .NET e também o SDK do .NET 8.0.101 instalado. Essa configuração é semelhante à do MAUI, mas requer este SDK adicional.
Como posso realizar OCR em uma imagem usando o IronOCR em um projeto .NET MAUI?
Em um projeto .NET MAUI, utilize o objeto IronTesseract para realizar OCR em uma imagem. Use FilePicker.PickAsync para selecionar um arquivo de imagem, carregue-o em um objeto OcrInput e, em seguida, use IronTesseract para ler a imagem e extrair o texto.
Existe algum projeto de exemplo para implementar OCR no iOS usando .NET MAUI?
Sim, você pode baixar um projeto de exemplo .NET MAUI usando o IronOCR.iOS do site da Iron Software. Este projeto de exemplo está disponível como um arquivo compactado que você pode abrir no Visual Studio para agilizar seu processo de desenvolvimento.

