Jak przeprowadzic OCR na iOS w .NET MAUI
.NET MAUI (Multi-platform App UI) to ewolucja frameworka Xamarin.Forms, zaprojektowana do tworzenia aplikacji wielopłatformowych dla systemów Android, iOS, macOS i Windows przy użyciu .NET. MAUI ma na celu uproszczenie procesu tworzenia natywnych interfejsow użytkownika, ktore mogą działać na wielu platformach.
Pakiet IronOcr.iOS wprowadza obsługę OCR na iOS!
Jak używać IronOCR na iOS w .NET MAUI
- Pobierz biblioteke C# do przeprowadzenia OCR na iOS
- Utwórz projekt aplikacji .NET MAUI
- Edytuj plik XAML, aby wyświetlić przycisk aktywacji i tekst wyjściowy
- Edytuj odpowiedni plik C#, aby przeprowadzić OCR
- Pobierz przykładowy projekt, aby szybko rozpocząć pracę
Pakiet IronOCR iOS
Pakiet IronOcr.iOS umożliwia funkcje OCR na urządzeńiach iOS za pośrednictwem projektow krzyzowopłatformowych .NET. Standardowy pakiet IronOCR nie jest potrzebny.
Install-Package IronOcr.iOS
Zainstaluj za pomocą NuGet
Install-Package IronOcr.iOS
Utworz projekt .NET MAUI
W sekcji "Multiplatform" wybierz opcję "Aplikacja .NET MAUI" i kontynuuj.

Dolacz biblioteke IronOCR.iOS
Biblioteke można dodac na różne sposoby. Najłatwiej jest uzyc NuGet.
- W programie Visual Studio kliknij prawym przyciskiem myszy "Zależności > NuGet" i wybierz "Zarządzaj pakietami NuGet...".
- Wybierz zakladke "Przeglądaj" i wyszukaj "IronOcr.iOS".
- Wybierz pakiet "IronOcr.iOS" i kliknij "Dodaj pakiet".

Aby uniknąć problemów z innymi platformami, zmodyfikuj plik csproj tak, aby dołączał pakiet tylko w przypadku platformy iOS. Aby to zrobic:
- Kliknij prawym przyciskiem na plik *.csproj w swoim projekcie i wybierz "Edit Project File".
-
Utwórz nowy element
ItemGroupw następującej postaci:<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 - Przenieś odwołanie do pakietu "IronOcr.iOS" do właśnie utworzonego
ItemGroup.
Powyższe kroki zapobiegna użyciu pakietu "IronOcr.iOS" na platformach takich jak Android (w tym celu zainstaluj zamiast tego IronOcr.Android).
Edytuj "MainPage.xaml"
Edytuj plik XAML, aby wyświetlić przycisk i etykietę pokazujące wynik OCR. Na przykład:
<?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>
Edytuj "MainPage.xaml.cs"
Zacznij od utworzenia instancji obiektu IronTesseract. Pamiętaj, aby zainicjować IronTesseract raz w klasie, tak jak pokazano w poniższym kodzie. Zainicjowanie go bezpośrednio w metodzie nie jest efektywne i może prowadzic do nieoczekiwanych błędów. Następnie użyj metody FilePicker.PickAsync, aby wybrać plik. Z FileResult otwórz strumień do odczytu. Utwórz nowy obiekt OcrInput i użyj go do załadowania obrazu. Użyj instancji Tesseract do wykonania OCR na obrazie i zwróć tekst. Na koniec wyświetl wynikowy tekst w etykiecie.
Obecna implementacja jest ograniczona tylko do plików obrazów. Pakiet nie działa jeszcze z dokumentami PDF. Majac to na uwadze, wszelkie konfiguracje związane z dokumentami PDF powinny pozostac wyłączone.
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
Na koniec zmień cel kompilacji na iOS Simulator i uruchom projekt.
Uruchom projekt
Poniżej przedstawiono instrukcję uruchamiania projektu i przeprowadzania OCR.
Pobierz projekt aplikacji .NET MAUI
Możesz pobrać pełny kod do tego przewodnika. Jest dostępny jako spakowany plik, który możesz otworzyć w Visual Studio jako projekt .NET MAUI App.
Uzycie IronOcr.iOS w Avalonia
Konfiguracja IronOcr.iOS w Avalonia jest podobna do MAUI, z jedna kluczowa roznica: oprócz najnowszej wersji SDK .NET musisz również mieć zainstalowane .NET SDK 8.0.101, aby pomyślnie uruchomić IronOcr.iOS. Następnie, IronOcr.iOS można używać w projekcie Avalonia z taka sama konfiguracja, jak opisano powyzej.
Jeśli chcesz przeprowadzic OCR na Androidzie, przejdź do nastepnego artykułu, aby dowiedziec sie więcej: "Jak przeprowadzic OCR na Androidzie w .NET MAUI"
Często Zadawane Pytania
Jak zintegrować funkcjonalność OCR z aplikacją .NET MAUI na iOS?
Możesz zintegrować funkcjonalność OCR z aplikacją .NET MAUI na iOS używając pakietu IronOCR.iOS. Zainstaluj go za pomocą NuGet w Visual Studio, a następnie zmodyfikuj plik projektu, aby uwzględnić pakiet warunkowo dla platformy iOS. Użyj IronTesseract do przetwarzania obrazów i wyodrębniania tekstu.
Czy mogę używać pakietu IronOCR.iOS do przetwarzania dokumentów PDF?
Nie, pakiet IronOCR.iOS jest obecnie ograniczony do przetwarzania tylko plików obrazów i nie obsługuje dokumentów PDF. Upewnij się, że wszelkie konfiguracje związane z PDF są wyłączone w Twoim projekcie.
Jakie kroki są wymagane do skonfigurowania OCR dla aplikacji iOS używając .NET MAUI?
Konfiguracja OCR dla aplikacji iOS używając .NET MAUI wymaga pobrania pakietu IronOcr.iOS przez NuGet, modyfikacji pliku projektu w celu warunkowego uwzględnienia pakietu dla iOS oraz edycji plików MainPage.xaml i MainPage.xaml.cs w celu stworzenia interfejsu użytkownika i obsługi przetwarzania OCR.
Jakie dodatkowe wymagania są potrzebne do używania IronOCR w projektach Avalonia?
Podczas używania IronOCR w projektach Avalonia, musisz zapewnić, że masz zainstalowaną najnowszą wersję .NET SDK oraz .NET SDK 8.0.101. Ta konfiguracja jest podobna do konfiguracji dla MAUI, ale wymaga dodatkowego SDK.
Jak mogę wykonać OCR na obrazie używając IronOCR w projekcie .NET MAUI?
W projekcie .NET MAUI użyj obiektu IronTesseract, aby wykonać OCR na obrazie. Użyj FilePicker.PickAsync, aby wybrać plik obrazu, załaduj go do obiektu OcrInput, a następnie użyj IronTesseract, aby odczytać obraz i wyodrębnić tekst.
Czy istnieje przykładowy projekt do implementacji OCR na iOS używając .NET MAUI?
Tak, możesz pobrać przykładowy projekt .NET MAUI używający IronOCR.iOS ze strony Iron Software. Ten przykładowy projekt jest dostępny jako spakowany plik, który możesz otworzyć w Visual Studio, aby przyspieszyć proces rozwoju.
Czy IronOCR jest łatwy do zintegrowania z istniejącymi projektami?
Tak, IronOCR jest prosty do zintegrowania z istniejącymi projektami C#. Dzięki szczegółowej dokumentacji i wsparciu, programiści mogą łatwo dodać funkcjonalność OCR do swoich aplikacji.
Czy IronOCR oferuje jakieś funkcje przetwarzania wstępnego obrazów?
IronOCR zawiera funkcje przetwarzania wstępnego obrazów, aby zwiększyć dokładność OCR, takie jak redukcja szumów, korekcja rotacji i dostosowanie kontrastu.
Czy IronOCR może być używany w aplikacjach chmury?
Istotnie, IronOCR może być wdrożony w środowiskach chmurowych, co czyni go odpowiednim dla aplikacji webowych i usług wymagających funkcji OCR.
Jak mogę poprawić dokładność wyników OCR z IronOCR?
Aby poprawić dokładność OCR w IronOCR, zapewnij wysokiej jakości obrazy wejściowe, używaj odpowiednich pakietów językowych i wykorzystuj funkcje przetwarzania wstępnego obrazów biblioteki.

