.NET MAUI OCR Using IronOCR

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

Einführung

Microsoft hat .NET MAUI (Multi-platform App UI) veröffentlicht, ein Framework zum Erstellen von plattformübergreifenden Anwendungen mit dem .NET Framework. Es ermöglicht Ihnen, Code zu schreiben, der auf Android, iOS und Windows mit derselben Codebasis läuft, was Ihnen Zeit, Ressourcen und Aufwand spart. .NET MAUI ist Open Source. Sie können den Quellcode des .NET MAUI-Projekts mit Beispielen auf GitHub abrufen.

In diesem How-To-Leitfaden lernen wir, wie man eine OCR-Prozessor-App auf .NET MAUI unter Verwendung der IronOCR-Bibliothek mit Beispielen erstellt.

class="hsg-featured-snippet">

Wie man OCR in .NET MAUI durchführt

  1. C#-Bibliothek herunterladen, um OCR in .NET MAUI durchzuführen
  2. Frontend des MAUI-Projekts konfigurieren
  3. Den vollständigen Pfad des Bildes mit der FilePicker-Klasse übergeben
  4. Die Methode Read aufrufen, um OCR auf dem Bild durchzuführen
  5. Auf den extrahierten Text zugreifen, indem Sie auf die Eigenschaft Text zugreifen und ihn anzeigen

IronOCR: .NET OCR-Bibliothek

IronOCR ist eine .NET OCR NuGet-Bibliothek, die es Entwicklern ermöglicht, Optical Character Recognition (OCR)-Funktionen einfach in ihre Projekte zu integrieren. Mit IronOCR können PDF-Dokumente gescannt und in durchsuchbaren und bearbeitbaren Text/Daten umgewandelt werden, ohne dass Datenqualität verloren geht. Dies erleichtert den Benutzern das Auffinden der benötigten Informationen aus PDF-Dokumenten und das Durchführen von Änderungen oder Korrekturen, falls erforderlich.

IronOCR ist der fortschrittlichste Build der Tesseract-Binärdateien, der auf jeder Plattform verfügbar ist. Es bietet erhöhte Geschwindigkeit, Genauigkeit und eine native DLL/API, die alle Versionen von Tesseract (von Tesseract 3 bis Tesseract 5) mit einer einfachen Installation/Herunterladung unterstützt.

IronOCR unterstützt umfangreiche Sprachunterstützung mit 125 internationalen Sprachen, die den Benutzern zur Verfügung stehen. Die englische Sprache ist standardmäßig mit dem Tool/DLL installiert. Sie können jedoch problemlos weitere Sprachen hinzufügen, indem Sie sie über NuGet installieren oder DLLs herunterladen.

Vergleich mit Tesseract

IronOCR ist speziell für C#-Entwickler konzipiert und lässt sich nahtlos in .NET-Anwendungen integrieren. Im Gegensatz dazu ist Tesseract eine generische OCR-Bibliothek, die Entwickler erfordert, eigene Wrapper zu schreiben, um sie mit C# zu verwenden. Darüber hinaus bietet IronOCR im Vergleich zu anderen Bibliotheken dank seiner innovativen Algorithmen der künstlichen Intelligenz eine überlegene Genauigkeit und Geschwindigkeit.

IronOCR kommt mit umfassender Dokumentation und technischem Support, was es auch für unerfahrene Entwickler einfach macht, schnell loszulegen.

IronOCR ist viel genauer als Tesseract. Tatsächlich hat es eine Genauigkeitsrate von über 99 %, während die Genauigkeitsrate von Tesseract nur bei etwa 70,2 % bis 92,9 % liegt. Weitere Informationen und Unterstützung zum Vergleich von IronOCR und Tesseract finden Sie in diesem YouTube-Video.

Schritte zur Erstellung einer OCR MAUI-App

Folgen Sie diesen Schritten, um eine OCR-App im .NET MAUI-Framework mit IronOCR zu erstellen.

Voraussetzungen

Für die Erstellung einer OCR-App in .NET MAUI sind dies die Voraussetzungen:

  1. Visual Studio 2022 (Neueste Version)
  2. .NET 6 oder 7
  3. MAUI-Pakete, die in Visual Studio installiert sind
  4. Ein .NET MAUI-Projekt, das in Visual Studio läuft

Installieren Sie IronOCR

Der erste Schritt besteht darin, die IronOCR-Bibliothek mit der NuGet-Paket-Manager-Konsole zu installieren. Öffnen Sie die NuGet-Paket-Manager-Konsole, indem Sie im Lösungsexplorer mit der rechten Maustaste klicken und den folgenden Befehl ausführen, um die IronOCR-Bibliothek zu installieren:

Install-Package IronOcr

Frontend-Design

Wir werden das Frontend der Anwendung in diesem Abschnitt entwerfen. Öffnen Sie die Datei MainPage.xaml.

class="content-img-align-center"> .NET MAUI OCR Tutorial Using IronOCR - Abbildung 1: MainPage.xaml

MainPage.xaml

Wir weisen einen Button zu, der uns hilft, das Bild oder das PDF-Dokument für OCR auszuwählen. Die Clicked-Eigenschaft des Buttons wird so eingestellt, dass die Funktion IOCR ausgeführt wird, die wir im nächsten Abschnitt definieren werden.

<Button
    x:Name="OCR"
    Text="Click to OCR"
    Clicked="IOCR"
    HorizontalOptions="Center" />
<Button
    x:Name="OCR"
    Text="Click to OCR"
    Clicked="IOCR"
    HorizontalOptions="Center" />
XML

Hier erstellen wir ein Image-Element mit dem Namen OCRImage. Dieses Bildfenster zeigt die ausgewählte Datei an.

<Image
    x:Name="OCRImage"
    SemanticProperties.Description="Selected Image"
    HeightRequest="300"
    HorizontalOptions="Center" />
<Image
    x:Name="OCRImage"
    SemanticProperties.Description="Selected Image"
    HeightRequest="300"
    HorizontalOptions="Center" />
XML

Als Nächstes erstellen wir eine Editor-Steuerung. Es wird verwendet, um den extrahierten Text aus dem Bild oder PDF-Dokument anzuzeigen.

<Editor
    x:Name="outputText"
    HorizontalOptions="Center"
    WidthRequest="600"
    HeightRequest="300" />
<Editor
    x:Name="outputText"
    HorizontalOptions="Center"
    WidthRequest="600"
    HeightRequest="300" />
XML

Hier ist das vollständige Markup der XAML-Benutzeroberfläche.

<?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="IronOCR_MAUI_Test.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">
            <Button
                x:Name="OCR"
                Text="Click to OCR"
                Clicked="IOCR"
                HorizontalOptions="Center" />
            <Image
                x:Name="OCRImage"
                SemanticProperties.Description="Selected Image"
                HeightRequest="300"
                HorizontalOptions="Center" />

            <Editor
                x:Name="outputText"
                HorizontalOptions="Center"
                WidthRequest="600"
                HeightRequest="300" />
        </VerticalStackLayout>
    </ScrollView>

</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="IronOCR_MAUI_Test.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">
            <Button
                x:Name="OCR"
                Text="Click to OCR"
                Clicked="IOCR"
                HorizontalOptions="Center" />
            <Image
                x:Name="OCRImage"
                SemanticProperties.Description="Selected Image"
                HeightRequest="300"
                HorizontalOptions="Center" />

            <Editor
                x:Name="outputText"
                HorizontalOptions="Center"
                WidthRequest="600"
                HeightRequest="300" />
        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

Jetzt ist es an der Zeit, den Code für die OCR-Funktionalität zu schreiben.

Code für OCR mit IronOCR

Öffnen Sie die Klassen-Datei MainPage.xaml.cs und schreiben Sie die folgende Funktion:

class="content-img-align-center"> .NET MAUI OCR Tutorial Using IronOCR - Abbildung 2: MainPage.xaml.cs

MainPage.xaml.cs

private async void IOCR(object sender, EventArgs e)
{
    // Prompt user to select an image using FilePicker
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });

    // Get the full path of the selected image
    var path = images.FullPath.ToString();

    // Display the selected image in the Image control
    OCRImage.Source = path;

    // Create an IronTesseract object to perform OCR
    var ocr = new IronTesseract();

    // Perform OCR and extract text from the selected image
    using (var input = new OcrInput())
    {
        input.AddImage(path); // Add image to the OCR input
        OcrResult result = ocr.Read(input); // Perform OCR
        string text = result.Text; // Extract text

        // Display extracted text in the Editor control
        outputText.Text = text; 
    }
}
private async void IOCR(object sender, EventArgs e)
{
    // Prompt user to select an image using FilePicker
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });

    // Get the full path of the selected image
    var path = images.FullPath.ToString();

    // Display the selected image in the Image control
    OCRImage.Source = path;

    // Create an IronTesseract object to perform OCR
    var ocr = new IronTesseract();

    // Perform OCR and extract text from the selected image
    using (var input = new OcrInput())
    {
        input.AddImage(path); // Add image to the OCR input
        OcrResult result = ocr.Read(input); // Perform OCR
        string text = result.Text; // Extract text

        // Display extracted text in the Editor control
        outputText.Text = text; 
    }
}
Private Async Sub IOCR(ByVal sender As Object, ByVal e As EventArgs)
	' Prompt user to select an image using FilePicker
	Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
		.PickerTitle = "Pick image",
		.FileTypes = FilePickerFileType.Images
	})

	' Get the full path of the selected image
	Dim path = images.FullPath.ToString()

	' Display the selected image in the Image control
	OCRImage.Source = path

	' Create an IronTesseract object to perform OCR
	Dim ocr = New IronTesseract()

	' Perform OCR and extract text from the selected image
	Using input = New OcrInput()
		input.AddImage(path) ' Add image to the OCR input
		Dim result As OcrResult = ocr.Read(input) ' Perform OCR
		Dim text As String = result.Text ' Extract text

		' Display extracted text in the Editor control
		outputText.Text = text
	End Using
End Sub
$vbLabelText   $csharpLabel

Lassen Sie uns den obigen Code aufteilen:

  • Der Code verwendet den FilePicker, um dem Benutzer das Auswählen einer Bilddatei vom Gerät zu ermöglichen. Der Dateiauswähler ist so konfiguriert, dass nur Bilder zugelassen werden.
var images = await FilePicker.Default.PickAsync(new PickOptions
{
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
});
var path = images.FullPath.ToString();
var images = await FilePicker.Default.PickAsync(new PickOptions
{
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
});
var path = images.FullPath.ToString();
Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
	.PickerTitle = "Pick image",
	.FileTypes = FilePickerFileType.Images
})
Dim path = images.FullPath.ToString()
$vbLabelText   $csharpLabel
  • Die Image-Steuerung ist so eingestellt, dass das ausgewählte Bild unter Verwendung seines Dateipfades angezeigt wird.
OCRImage.Source = path;
OCRImage.Source = path;
OCRImage.Source = path
$vbLabelText   $csharpLabel
  • Ein IronTesseract-Objekt wird erstellt, um OCR durchzuführen. Das ausgewählte Bild wird einem OcrInput-Objekt hinzugefügt. Die Read-Methode wird aufgerufen, um Text aus dem Bild zu extrahieren, der dann in der Editor-Steuerung angezeigt wird.
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
    input.AddImage(path);
    OcrResult result = ocr.Read(input);
    string text = result.Text;
    outputText.Text = text; 
}
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
    input.AddImage(path);
    OcrResult result = ocr.Read(input);
    string text = result.Text;
    outputText.Text = text; 
}
Dim ocr = New IronTesseract()
Using input = New OcrInput()
	input.AddImage(path)
	Dim result As OcrResult = ocr.Read(input)
	Dim text As String = result.Text
	outputText.Text = text
End Using
$vbLabelText   $csharpLabel

Ausgabe

Nach dem Start des Projekts wird die unten stehende Benutzeroberfläche angezeigt. Wenn Sie auf die Schaltfläche klicken, werden Sie aufgefordert, ein Bild/PDF aus einem beliebigen Ort auszuwählen.

class="content-img-align-center"> .NET MAUI OCR Tutorial Using IronOCR - Abbildung 3: OCR-Ausgabe

OCR-Ausgabe

Nach Auswahl des Bildes verarbeitet IronOCR das Bild und zeigt die erkannten Wörter in der Editor-Steuerung an. Sie können den Text aus der Editor-Steuerung kopieren.

class="content-img-align-center"> .NET MAUI OCR Tutorial Using IronOCR - Abbildung 4: OCR-Bild

OCR-Bild

Aus den Ergebnissen geht hervor, dass IronOCR eine hervorragende Arbeit beim Verarbeiten komplexer Bilder mit Mustern leistet und genaue Ergebnisse liefert. IronOCR ist in der Lage, kleine Details zu erkennen und die gewünschten Buchstaben mithilfe seiner vortrainierten Modelle auszuwählen.

{i:(Das Ausführen des Projekts im Release-Modus mit angeschlossenem Debugging kann Probleme verursachen. In solchen Fällen können Sie das Projekt als unverpackte .NET MAUI-App, wie im unten stehenden Link gezeigt, veröffentlichen, um sicherzustellen, dass die App ordnungsgemäß funktioniert.)}

Abschluss

For further reading, refer to this tutorial which provides additional information about how to use IronOCR to read text from images.

IronOCR ist kostenlos für Entwicklungszwecke. Sie können es zu einem sehr niedrigen Preis erwerben, beginnend bei nur $799. Überprüfen Sie den Preisplan hier.

Häufig gestellte Fragen

Wofür wird .NET MAUI in der App-Entwicklung verwendet?

.NET MAUI (Multi-platform App UI) wird verwendet, um plattformübergreifende Anwendungen mit einer einzigen Codebasis zu erstellen, wodurch Entwickler Android-, iOS- und Windows-Plattformen ansprechen können.

Wie können Entwickler OCR in einer .NET MAUI-App durchführen?

Entwickler können OCR in einer .NET MAUI-App durchführen, indem sie IronOCR integrieren, eine .NET OCR-Bibliothek. IronOCR ermöglicht die Umwandlung von Bildern und PDFs in durchsuchbaren und bearbeitbaren Text.

Was sind die Schritte, um IronOCR in einem .NET MAUI-Projekt einzurichten?

Um IronOCR in einem .NET MAUI-Projekt einzurichten, installieren Sie die IronOCR-Bibliothek über NuGet, konfigurieren Sie Ihr Frontend in Visual Studio und implementieren Sie den notwendigen C#-Code, um OCR mithilfe des IronTesseract-Objekts durchzuführen.

Wie genau ist IronOCR bei der Textverarbeitung?

IronOCR bietet eine hohe Genauigkeitsrate von über 99% bei der Textverarbeitung und ist aufgrund seiner fortschrittlichen KI-Algorithmen zuverlässiger als andere OCR-Lösungen wie Tesseract.

Kann IronOCR mehrere Sprachen verarbeiten?

Ja, IronOCR unterstützt 125 internationale Sprachen, wobei Englisch standardmäßig installiert ist. Zusätzliche Sprachen können über NuGet hinzugefügt oder durch das Herunterladen spezifischer Sprach-DLLs integriert werden.

Wie wählt man eine Bilddatei für OCR in einer .NET MAUI-App aus?

In einer .NET MAUI-App können Sie eine Bilddatei für OCR auswählen, indem Sie die FilePicker-Klasse verwenden, die Benutzern ermöglicht, Bilder von ihrem Gerät für die Textextraktion auszuwählen.

Welche Rolle spielt die Editor-Kontrolle bei der Anzeige von OCR-Ergebnissen?

Die Editor-Kontrolle in einer .NET MAUI-App wird verwendet, um Text anzuzeigen, der aus Bildern extrahiert wurde, die von IronOCR verarbeitet wurden, und bietet eine Schnittstelle für Benutzer, um OCR-Ergebnisse anzusehen.

Sind mit der Nutzung von IronOCR für die Entwicklung Kosten verbunden?

IronOCR ist kostenlos für Entwicklungszwecke nutzbar. Für die Produktion ist jedoch eine Lizenz erforderlich, die zu einem wettbewerbsfähigen Preis erhältlich ist.

Was macht IronOCR zu einer bevorzugten Wahl für C#-Entwickler?

IronOCR ist eine bevorzugte Wahl für C#-Entwickler aufgrund seiner nahtlosen Integration in .NET-Anwendungen, seiner hohen Genauigkeit, Geschwindigkeit und Unterstützung für mehrere Sprachen, was es vielen anderen OCR-Bibliotheken überlegen macht.

Wie können Entwickler die Funktionalität ihrer .NET MAUI OCR-App verbessern?

Entwickler können die Funktionalität ihrer .NET MAUI OCR-App verbessern, indem sie zusätzliche Ressourcen von IronOCR erkunden und dessen umfassende Dokumentation und Support nutzen, um fortschrittliche Funktionen zu implementieren.

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
Rezensiert von
Jeff Fritz
Jeffrey T. Fritz
Principal Program Manager - .NET Community Team
Jeff ist außerdem Principal Program Manager für das .NET- und Visual Studio-Team. Er ist der ausführende Produzent der .NET Conf Virtual Conference Series und moderiert ‚Fritz and Friends‘, einen Livestream für Entwickler, der zweimal wöchentlich ausgestrahlt wird. Dort spricht er über Technik und schreibt gemeinsam mit den Zuschauern Code. Jeff schreibt Workshops, Präsentationen und plant Inhalte für die größten Microsoft-Entwicklerveranstaltungen, einschließlich Microsoft Build, Microsoft Ignite, .NET Conf und dem Microsoft MVP Summit.
Bereit anzufangen?
Nuget Downloads 5,044,537 | Version: 2025.11 gerade veröffentlicht