Wie man OCR auf iOS in .NET MAUI durchführt

This article was translated from English: Does it need improvement?
Translated
View the article in English
iOS

.NET MAUI (Multi-platform App UI) ist eine Weiterentwicklung des Xamarin.Forms-Frameworks, das entwickelt wurde, um plattformübergreifende Apps für Android, iOS, macOS und Windows mit .NET zu erstellen. MAUI zielt darauf ab, den Prozess der Erstellung nativer Benutzeroberflächen zu vereinfachen, die auf mehreren Plattformen laufen können.

Das IronOcr.iOS-Paket bringt OCR-Unterstützung für iOS!

IronOCR iOS Paket

Das IronOcr.iOS-Paket ermöglicht OCR-Funktionen auf iOS-Geräten über .NET plattformübergreifende Projekte. Das Vanilla-IronOCR-Paket wird nicht benötigt.

Installations-Paket IronOcr.iOS
C# NuGet-Bibliothek für PDF

Installation mit NuGet

Installations-Paket IronOcr.iOS

Erstellen Sie ein .NET MAUI Projekt

Wählen Sie im Bereich Multiplattform .NET MAUI App aus und fahren Sie fort.

Erstelle das .NET MAUI-App-Projekt

Einbinden der IronOCR.iOS-Bibliothek

Die Bibliothek kann auf verschiedene Weise hinzugefügt werden. Die einfachste Methode ist die Verwendung von NuGet.

  1. Klicken Sie innerhalb von Visual Studio mit der rechten Maustaste auf "Abhängigkeiten > NuGet" und wählen Sie "NuGet-Pakete verwalten ...".
  2. Wählen Sie die Registerkarte "Browse" und suchen Sie nach "IronOCR.iOS".
  3. Wählen Sie das "IronOCR.iOS"-Paket aus und klicken Sie auf "Paket hinzufügen".

Laden Sie das IronOcr.iOS-Paket herunter

Um Probleme mit anderen Plattformen zu vermeiden, ändern Sie die csproj-Datei, um das Paket nur beim Targeting der iOS-Plattform einzuschließen. Um dies zu tun:

  1. Klicken Sie mit der rechten Maustaste auf die *.csproj-Datei Ihres Projekts und wählen Sie "Projektdatei bearbeiten".
  2. Erstellen Sie ein neues ItemGroup-Element wie folgt:

    <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
  3. Verschieben Sie die "IronOcr.iOS"-PackageReference in das soeben erstellte ItemGroup.

Die obigen Schritte verhindern, dass das "IronOCR.iOS"-Paket beispielsweise auf Android-Plattformen verwendet wird (zu diesem Zweck installieren Sie stattdessen IronOcr.Android).

Bearbeiten Sie "MainPage.xaml"

Bearbeiten Sie die XAML-Datei, um eine Schaltfläche und ein Label zur Anzeige des OCR-Ergebnisses anzuzeigen. Zum Beispiel:

<?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="MAUI IronOCRiOSSample.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="MAUI IronOCRiOSSample.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

Bearbeiten Sie "MainPage.xaml.cs"

Beginnen Sie mit der Instanziierung des IronTesseract-Objekts. Stellen Sie sicher, dass Sie IronTesseract einmal in einer Klasse initialisieren, wie im folgenden Code gezeigt. Die direkte Instanziierung in einer Methode ist nicht effektiv und könnte zu unerwarteten Fehlern führen. Verwenden Sie dann die FilePicker.PickAsync-Methode, um eine Datei auszuwählen. Öffnen Sie aus der FileResult einen Stream zum Lesen. Erstellen Sie ein neues OcrInput-Objekt und verwenden Sie dieses Objekt, um das Bild zu laden. Verwenden Sie die Tesseract-Instanz, um OCR auf dem Bild durchzuführen und den Text zurückzugeben. Zeigen Sie schließlich den resultierenden Text in einem Label an.

Die aktuelle Implementierung ist auf Bilddateien beschränkt. Das Paket funktioniert noch nicht mit PDF-Dokumenten. Mit diesem Wissen im Hinterkopf sollten alle Konfigurationen im Zusammenhang mit PDF-Dokumenten deaktiviert bleiben.

using System;
using IronOcr;
using Microsoft.Maui.Controls;

namespace MAUI IronOCRiOSSample;

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 MAUI IronOCRiOSSample;

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 MAUI_IronOCRiOSSample

    Public Partial 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(sender As Object, e As EventArgs)
            Try
                Dim options As New PickOptions With {
                    .PickerTitle = "Please select a file"
                }

                Dim result = Await FilePicker.PickAsync(options)
                If result IsNot Nothing Then
                    Using stream = Await result.OpenReadAsync()
                        ' Instantiate OcrInput
                        Using ocrInput As New OcrInput()
                            ' Load image stream
                            ocrInput.LoadImage(stream)

                            ' Perform OCR
                            Dim ocrResult = ocrTesseract.Read(ocrInput)
                            OutputText.Text = ocrResult.Text
                        End Using
                    End Using
                End If
            Catch ex As Exception
                ' Handle exceptions
                System.Diagnostics.Debug.WriteLine(ex)
            End Try
        End Sub
    End Class

End Namespace
$vbLabelText   $csharpLabel

Schließlich wechseln Sie das Build-Ziel auf den iOS-Simulator und führen das Projekt aus.

Das Projekt ausführen

Dies zeigt Ihnen, wie Sie das Projekt ausführen und OCR durchführen.

Execute .NET MAUI App project

Laden Sie das .NET MAUI App-Projekt herunter

Sie können den vollständigen Code für diesen Leitfaden herunterladen. Er kommt als gezippte Datei, die Sie in Visual Studio als .NET MAUI App-Projekt öffnen können.

[Klicken Sie hier, um das Projekt herunterzuladen.](/static-assets/ocr/how-to/setup-ios/MAUI IronOCRiOSSample.zip)

IronOcr.iOS in Avalonia verwenden

Die Einrichtung von IronOCR.iOS in Avalonia ist ähnlich wie bei MAUI, mit einem entscheidenden Unterschied: Zusätzlich zur neuesten .NET SDK-Version benötigen Sie auch .NET SDK 8.0.101, um IronOCR.iOS erfolgreich auszuführen. Anschließend kann IronOcr.iOS in einem Avalonia-Projekt mit der gleichen Einrichtung wie oben beschrieben verwendet werden.

Wenn Sie OCR auf Android durchführen möchten, navigieren Sie zum folgenden Artikel, um mehr zu erfahren: "Wie man OCR auf Android in .NET MAUI durchführt"

Häufig gestellte Fragen

Wie integriere ich die OCR-Funktionalität in eine .NET MAUI-App für iOS?

Sie können die OCR-Funktionalität in eine .NET MAUI-App für iOS integrieren, indem Sie das IronOCR.iOS-Paket verwenden. Installieren Sie es über NuGet in Visual Studio und passen Sie dann Ihre Projektdatei an, um das Paket bedingt für die iOS-Plattform einzubinden. Verwenden Sie IronTesseract, um Bilder zu verarbeiten und Text zu extrahieren.

Kann ich das IronOCR.iOS-Paket für die Verarbeitung von PDF-Dokumenten verwenden?

Nein, das IronOCR.iOS-Paket ist derzeit auf die Verarbeitung von Bilddateien beschränkt und unterstützt keine PDF-Dokumente. Stellen Sie sicher, dass alle PDF-bezogenen Konfigurationen in Ihrem Projekt deaktiviert sind.

Welche Schritte sind erforderlich, um OCR für eine iOS-App mit .NET MAUI einzurichten?

Die Einrichtung von OCR für eine iOS-App mit .NET MAUI umfasst das Herunterladen des IronOcr.iOS-Pakets über NuGet, das Anpassen Ihrer Projektdatei, um das Paket bedingt für iOS einzubinden, sowie das Bearbeiten Ihrer MainPage.xaml und MainPage.xaml.cs-Dateien, um die Benutzeroberfläche zu erstellen und die OCR-Verarbeitung zu steuern.

Welche zusätzlichen Anforderungen gibt es für die Verwendung von IronOCR in Avalonia-Projekten?

Bei der Verwendung von IronOCR in Avalonia-Projekten müssen Sie sicherstellen, dass Sie die neueste .NET-SDK-Version und auch das .NET-SDK 8.0.101 installiert haben. Dieses Setup ist dem von MAUI ähnlich, erfordert jedoch dieses zusätzliche SDK.

Wie kann ich mit IronOCR in einem .NET MAUI-Projekt eine OCR auf einem Bild durchführen?

In einem .NET MAUI-Projekt verwenden Sie das IronTesseract-Objekt, um die OCR auf einem Bild durchzuführen. Verwenden Sie FilePicker.PickAsync, um eine Bilddatei auszuwählen, laden Sie sie in ein OcrInput-Objekt und verwenden Sie dann IronTesseract, um das Bild zu lesen und Text zu extrahieren.

Gibt es ein Beispielprojekt zur Implementierung von OCR auf iOS mit .NET MAUI?

Ja, Sie können ein Beispielprojekt for .NET MAUI mit IronOCR.iOS von der Iron Software-Website herunterladen. Dieses Beispielprojekt steht als ZIP-Datei zur Verfügung, die Sie in Visual Studio öffnen können, um Ihren Entwicklungsprozess zu beschleunigen.

Ist IronOCR einfach in bestehende Projekte zu integrieren?

Ja, IronOCR ist einfach in bestehende C#-Projekte zu integrieren. Mit detaillierter Dokumentation und Unterstützung können Entwickler problemlos OCR-Funktionalität zu ihren Anwendungen hinzufügen.

Bietet IronOCR Bildvorverarbeitungsfunktionen an?

IronOCR umfasst Bildvorverarbeitungsfunktionen zur Verbesserung der OCR-Genauigkeit, wie Rauschunterdrückung, Rotationskorrektur und Kontrasteinstellung.

Kann IronOCR in Cloud-Anwendungen verwendet werden?

Ja, IronOCR kann in Cloud-Umgebungen bereitgestellt werden und ist somit geeignet für Webanwendungen und Dienste, die OCR-Fähigkeiten erfordern.

Wie kann ich die Genauigkeit der OCR-Ergebnisse mit IronOCR verbessern?

Um die OCR-Genauigkeit mit IronOCR zu verbessern, sorgen Sie für hochauflösende Eingabebilder, verwenden Sie geeignete Sprachpakete und nutzen Sie die Bildvorverarbeitungsfunktionen der Bibliothek.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 6,151,372 | Version: 2026.7 gerade veröffentlicht
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package IronOcr
Führen Sie ein Beispiel aus und beobachten Sie, wie Ihr Bild zu durchsuchbarem Text wird.