Texterkennung auf Android in .NET MAUI – Bild zu Text mit IronOCR
.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. .NET MAUI vereinfacht die Erstellung nativer Benutzeroberflächen, die auf mehreren Plattformen laufen.
Das IronOcr.Android-Paket bringt vollständige Texterkennung und Bild zu Text Funktionalität nach Android – leistungsstarke OCR Software für mobile Entwicklung!
Verwendung von IronOCR für Android in .NET MAUI
- Herunterladen der C#-Bibliothek zur Durchführung von OCR auf Android
- Ein .NET MAUI App-Projekt erstellen
- Bearbeiten Sie die XAML-Datei, um eine Aktivierungsschaltfläche und einen Ausgabetext anzuzeigen.
- Bearbeiten Sie die entsprechende C#-Datei, um die OCR durchzuführen.
- Laden Sie das Beispielprojekt für einen schnellen Einstieg herunter
IronOCR Android Paket
Das IronOcr.Android-Paket ermöglicht OCR-Funktionen auf Android-Geräten über .NET plattformübergreifende Projekte. Das Vanilla-IronOCR-Paket wird nicht benötigt.
Installations-Paket IronOcr.Android
Installations-Paket IronOcr.Android
Erstellen eines .NET MAUI-Projekts
Öffnen Sie Visual Studio und klicken Sie auf "Neues Projekt erstellen". Nach MAUI suchen, .NET MAUI App auswählen und auf 'Weiter' klicken.

Fügen Sie die IronOcr.Android-Bibliothek hinzu
Die Bibliothek kann auf verschiedene Weise hinzugefügt werden. Die einfachste Methode ist die Verwendung von NuGet.
- Klicken Sie in Visual Studio mit der rechten Maustaste auf "Abhängigkeiten" und wählen Sie "NuGet-Pakete verwalten ...".
- Wählen Sie die Registerkarte "Durchsuchen" und suchen Sie nach "IronOcr.Android".
- Wählen Sie das "IronOcr.Android"-Paket und klicken Sie auf "Installieren".

Um Probleme mit anderen Plattformen zu vermeiden, ändern Sie die csproj-Datei, um das Paket nur dann einzubeziehen, wenn es auf der Android-Plattform ausgeführt wird. Um dies zu tun:
- Rechtsklick auf das Projekt und "Projektdatei bearbeiten" wählen.
-
Erstellen Sie ein neues ItemGroup-Element wie folgt:
<ItemGroup Condition="$(TargetFramework.Contains('android')) == true"> </ItemGroup><ItemGroup Condition="$(TargetFramework.Contains('android')) == true"> </ItemGroup>XML - Verschieben Sie die "IronOcr.Android" PackageReference in die gerade erstellte ItemGroup.
Die obigen Schritte verhindern, dass das "IronOcr.Android"-Paket z.B. auf iOS-Plattformen verwendet wird (installieren Sie stattdessen IronOCR.iOS dafür).
Bearbeiten Sie "MainActivity.cs"
- Öffnen Sie die Datei "MainActivity.cs", indem Sie zu Plattformen -> Android navigieren.
- Füge die Methode
MainActivityhinzu und rufe die MethodeInitializeauf.
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.OS;
using IronOcr;
namespace MAUIIronOCRAndroidSample
{
[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
public class MainActivity : MauiAppCompatActivity
{
public MainActivity()
{
// Initialize IronTesseract for OCR purposes
IronTesseract.Initialize(this);
}
}
}
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.OS;
using IronOcr;
namespace MAUIIronOCRAndroidSample
{
[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
public class MainActivity : MauiAppCompatActivity
{
public MainActivity()
{
// Initialize IronTesseract for OCR purposes
IronTesseract.Initialize(this);
}
}
}
Imports Android.App
Imports Android.Content.PM
Imports Android.Runtime
Imports Android.OS
Imports IronOcr
Namespace MAUIIronOCRAndroidSample
<Activity(Theme := "@style/Maui.SplashTheme", MainLauncher := True, ConfigurationChanges := ConfigChanges.ScreenSize Or ConfigChanges.Orientation Or ConfigChanges.UiMode Or ConfigChanges.ScreenLayout Or ConfigChanges.SmallestScreenSize Or ConfigChanges.Density)>
Public Class MainActivity
Inherits MauiAppCompatActivity
Public Sub New()
' Initialize IronTesseract for OCR purposes
IronTesseract.Initialize(Me)
End Sub
End Class
End Namespace
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="MAUIIronOCRAndroidSample.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="MAUIIronOCRAndroidSample.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>
Bearbeiten Sie "MainPage.xaml.cs"
Zuerst wird eine Instanz des Objekts IronTesseract erstellt. Stellen Sie sicher, dass IronTesseract innerhalb der Klasse einmal initialisiert wird, wie im folgenden Codebeispiel gezeigt. Die Instanziierung innerhalb einer Methode kann ineffektiv sein und unerwartete Fehler verursachen.
Verwenden Sie anschließend die Methode FilePicker.PickAsync, um eine Datei auszuwählen, und öffnen Sie dann einen Lesestream aus dem FileResult . Erstelle ein neues OcrInput-Objekt und lade das Bild hinein. Führen Sie OCR auf dem Bild mit der Tesseract-Instanz durch und rufen Sie den Text ab. Zeigen Sie schließlich den resultierenden Text in einem Label an.
using IronOcr;
using Microsoft.Maui.Controls;
using System;
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;
namespace MAUIIronOCRAndroidSample
{
public partial class MainPage : ContentPage
{
// Initialize IronTesseract once in a class
private readonly IronTesseract ocrTesseract = new IronTesseract();
public MainPage()
{
InitializeComponent();
// Apply License key if required
IronOcr.License.LicenseKey = "IRONOCR.MYLICENSE.KEY.1EF01";
}
private async void ReadFileOnImport(object sender, EventArgs e)
{
try
{
// Configure the file picker
var options = new PickOptions
{
PickerTitle = "Please select a file"
};
// Await user's file selection
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 for OCR processing
ocrInput.AddImage(stream);
// Perform OCR
var ocrResult = ocrTesseract.Read(ocrInput);
// Display extracted text
OutputText.Text = ocrResult.Text;
}
}
catch (Exception ex)
{
// Log and handle exceptions
Debug.WriteLine(ex);
}
}
}
}
using IronOcr;
using Microsoft.Maui.Controls;
using System;
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;
namespace MAUIIronOCRAndroidSample
{
public partial class MainPage : ContentPage
{
// Initialize IronTesseract once in a class
private readonly IronTesseract ocrTesseract = new IronTesseract();
public MainPage()
{
InitializeComponent();
// Apply License key if required
IronOcr.License.LicenseKey = "IRONOCR.MYLICENSE.KEY.1EF01";
}
private async void ReadFileOnImport(object sender, EventArgs e)
{
try
{
// Configure the file picker
var options = new PickOptions
{
PickerTitle = "Please select a file"
};
// Await user's file selection
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 for OCR processing
ocrInput.AddImage(stream);
// Perform OCR
var ocrResult = ocrTesseract.Read(ocrInput);
// Display extracted text
OutputText.Text = ocrResult.Text;
}
}
catch (Exception ex)
{
// Log and handle exceptions
Debug.WriteLine(ex);
}
}
}
}
Imports IronOcr
Imports Microsoft.Maui.Controls
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Threading.Tasks
Namespace MAUIIronOCRAndroidSample
Partial Public Class MainPage
Inherits ContentPage
' Initialize IronTesseract once in a class
Private ReadOnly ocrTesseract As New IronTesseract()
Public Sub New()
InitializeComponent()
' Apply License key if required
IronOcr.License.LicenseKey = "IRONOCR.MYLICENSE.KEY.1EF01"
End Sub
Private Async Sub ReadFileOnImport(ByVal sender As Object, ByVal e As EventArgs)
Try
' Configure the file picker
Dim options = New PickOptions With {.PickerTitle = "Please select a file"}
' Await user's file selection
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 for OCR processing
ocrInput.AddImage(stream)
' Perform OCR
Dim ocrResult = ocrTesseract.Read(ocrInput)
' Display extracted text
OutputText.Text = ocrResult.Text
End If
Catch ex As Exception
' Log and handle exceptions
Debug.WriteLine(ex)
End Try
End Sub
End Class
End Namespace
Stellen Sie abschließend in der Datei .csproj sicher, dass Sie das Projekt nur für Android erstellen. Da das hinzugefügte Paket nur für Android ist, wird das Erstellen des Projekts für alle Plattformen fehlschlagen.
Das Projekt ausführen
Dies zeigt Ihnen, wie Sie das Projekt ausführen und OCR durchführen.
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.
Verwendung von IronOcr.Android in Avalonia
Ähnlich wie bei MAUI kann IronOcr.Android in einem Avalonia-Projekt mit der oben beschriebenen Einrichtung verwendet werden.
Wenn Sie OCR auf iOS durchführen möchten, gehen Sie zu folgendem Artikel, um mehr zu erfahren: "Wie man OCR auf iOS in .NET MAUI durchführt"
Häufig gestellte Fragen
Wie kann ich OCR auf Android in einer .NET MAUI-Anwendung durchführen?
Um OCR auf Android mit .NET MAUI durchzuführen, installieren Sie das IronOcr.Android-Paket über NuGet in Visual Studio. Verwenden Sie die IronTesseract-Klasse, um Bilder zu verarbeiten und Text zu extrahieren. Stellen Sie sicher, dass Ihr Projekt so konfiguriert ist, dass es Android anvisiert, indem Sie die .csproj-Datei entsprechend ändern.
Was ist der Zweck des IronOcr.Android-Pakets?
Das IronOcr.Android-Paket ist speziell dafür entwickelt worden, OCR-Fähigkeiten auf Android-Geräten innerhalb von .NET MAUI-Projekten zu bringen. Es vereinfacht die Integration von Texterkennungs-Funktionen in plattformübergreifende Anwendungen, die Android anvisieren.
Wie konfiguriere ich ein .NET MAUI-Projekt für Android OCR?
Konfigurieren Sie Ihr .NET MAUI-Projekt, indem Sie das IronOcr.Android-Paket über NuGet installieren. Passen Sie die .csproj-Datei an, um Android anzuvisieren, indem Sie ein neues ItemGroup-Element erstellen und den IronOcr.Android PackageReference darin verschieben. Dies vermeidet Build-Probleme für andere Plattformen.
Welche Änderungen sind in MainActivity.cs für die OCR-Einrichtung erforderlich?
Fügen Sie in der MainActivity.cs-Datei unter Platforms -> Android die Methode MainActivity hinzu und rufen Sie die Initialize-Methode von IronTesseract auf. Dies richtet die OCR-Fähigkeiten ein, die erforderlich sind, um Text aus Bildern zu verarbeiten.
Wie kann ich MainPage.xaml bearbeiten, um OCR-Funktionen zu integrieren?
Bearbeiten Sie MainPage.xaml, um eine Schaltfläche zum Importieren von Dateien und ein Label zum Anzeigen von OCR-Ergebnissen einzuschließen. Definieren Sie die notwendigen UI-Elemente, um mit der Logik der OCR-Verarbeitung zu interagieren und Benutzerinput effektiv zu verwalten.
Was soll ich tun, wenn ich beim OCR-Prozess auf Fehler stoße?
Verwenden Sie try-catch-Blöcke um Ihren OCR-Verarbeitungscode, um Ausnahmen zu behandeln. Protokollieren Sie alle Fehler mit Debug.WriteLine oder einem anderen Logging-Mechanismus, um bei der Diagnose und Behebung von Problemen zu helfen.
Ist es möglich, das IronOcr.Android-Paket in Avalonia-Projekten zu verwenden?
Ja, das IronOcr.Android-Paket kann in Avalonia-Projekten verwendet werden mit einem ähnlichen Einrichtungsprozess wie in .NET MAUI. Passen Sie die Projektkonfiguration entsprechend an, um die OCR-Funktionalität zu aktivieren.
Wo finde ich ein vollständiges Beispielprojekt für Android OCR mit .NET MAUI?
Ein vollständiges Beispielprojekt für Android OCR mit der IronOCR-Bibliothek in .NET MAUI steht über einen im Leitfaden bereitgestellten Link zum Download zur Verfügung. Das Projekt kommt als ZIP-Datei, bereit zum Öffnen in Visual Studio.
Wie stelle ich sicher, dass das IronOcr.Android-Paket nur Android in einem Mehrplattformprojekt anvisiert?
Um sicherzustellen, dass das IronOcr.Android-Paket nur Android anvisiert, ändern Sie die .csproj-Datei, indem Sie eine bedingte ItemGroup für Android erstellen und den IronOcr.Android PackageReference darin verschieben. Dies verhindert Konflikte beim Erstellen für andere Plattformen.

