OCR auf Android in .NET MAUI durchführen
.NET MAUI(Multiplattform-App UI) ist eine Weiterentwicklung des Xamarin.Forms-Frameworks, das für die Erstellung plattformübergreifender Apps für Android, iOS, macOS und Windows unter Verwendung von .NET entwickelt wurde. .NET MAUI zielt darauf ab, den Prozess der Erstellung nativer Benutzeroberflächen zu vereinfachen, die auf mehreren Plattformen laufen können.
Das IronOcr.Android-Paket bringt OCR-Unterstützung für Android!!
Verwendung von IronOCR für Android in .NET MAUI
- Laden Sie die C#-Bibliothek zur Durchführung von OCR unter Android herunter
- Erstellen eines .NET MAUI App-Projekts
- 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 Start herunter
IronOCR Android-Paket
Das IronOcr.Android-Paket ermöglicht OCR-Funktionen auf Android-Geräten über plattformübergreifende .NET-Projekte. Das IronOCR-Paket wird nicht benötigt.
PM > Install-Package IronOcr.Android
Installieren mit NuGet
Installations-Paket IronOcr.Android
Erstellen eines .NET MAUI-Projekts
Öffnen Sie Visual Studio und klicken Sie auf "Ein neues Projekt erstellen". Suchen Sie nach MAUI, wählen Sie .NET MAUI App und "Weiter".
Einbindung der IronOCR.Android-Bibliothek
Die Bibliothek kann auf verschiedene Weise hinzugefügt werden. Am einfachsten ist es vielleicht, wenn Sie NuGet verwenden.
Klicken Sie in Visual Studio mit der rechten Maustaste auf "Dependencies" und wählen Sie "Manage NuGet Packages ...".
Wählen Sie die Registerkarte "Durchsuchen" und suchen Sie nach "IronOcr.Android".
Wählen Sie das Paket "IronOcr.Android" und klicken Sie auf "Installieren".
Um Probleme mit anderen Plattformen zu vermeiden, ändern Sie die csproj-Datei so, dass sie das Paket nur dann enthält, wenn es für die Android-Plattform bestimmt ist. Um dies zu tun:
Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie "Projektdatei bearbeiten".
- Erstellen Sie ein neues ItemGroup-Element als solches:
<ItemGroup Condition="$(TargetFramework.Contains('android')) == true">
</ItemGroup>
Verschieben Sie die "IronOcr.Android" PackageReference in die soeben erstellte ItemGroup.
Die obigen Schritte verhindern, dass das "IronOcr.Android"-Paket auf z. B. iOS-Plattformen verwendet wird(zu diesem Zweck installieren SieIronOcr.iOS stattdessen).
Bearbeiten Sie "MainActivity.cs"
- Öffnen Sie die Datei "MainActivity.cs", indem Sie zu Plattformen -> Android navigieren.
- Fügen Sie die Methode
MainActivity
hinzu und rufen Sie die MethodeInitialize
auf.
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()
{
IronTesseract.Initialize(this);
}
}
}
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()
{
IronTesseract.Initialize(this);
}
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Bearbeiten Sie "MainPage.xaml"
Bearbeiten Sie die XAML-Datei, um eine Schaltfläche und eine Beschriftung 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>
Bearbeiten Sie "MainPage.xaml.cs"
Erstellen Sie zunächst eine Instanz des IronTesseract-Objekts. Stellen Sie sicher, dass IronTesseract einmal innerhalb einer Klasse initialisiert wird, wie im folgenden Code gezeigt. Die Instanziierung innerhalb einer Methode kann ineffektiv sein und unerwartete Fehler verursachen.
Als Nächstes verwenden Sie die Methode "FilePicker.PickAsync", um eine Datei auszuwählen, und öffnen dann einen Lesestrom aus dem FileResult. Erstellen Sie ein neues OcrInput-Objekt und laden Sie das Bild in dieses Objekt. Führen Sie OCR auf dem Bild mit der Tesseract-Instanz durch und rufen Sie den Text ab. Schließlich zeigen Sie den resultierenden Text in einem Etikett an.
Bitte beachten Sie, dass die derzeitige Implementierung nur Bilddateien unterstützt. Das Paket unterstützt noch keine PDF-Dokumente. Daher sind alle PDF-bezogenen Konfigurationen standardmäßig deaktiviert und sollten dies auch bleiben.
using IronOcr;
namespace MAUIIronOCRAndroidSample;
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 IronOcr;
namespace MAUIIronOCRAndroidSample;
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 IronOcr
Namespace MAUIIronOCRAndroidSample
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
Stellen Sie schließlich in der .csproj-Datei sicher, dass Sie das Projekt nur für Android erstellen. Da das von uns hinzugefügte Paket nur für Android bestimmt ist, schlägt die Erstellung des Projekts für alle Plattformen fehl.
Das Projekt ausführen
Hier erfahren Sie, wie Sie das Projekt ausführen und die OCR durchführen.
.NET MAUI App Projekt herunterladen
Sie können den vollständigen Code für diese Anleitung herunterladen. Er wird als gezippte Datei geliefert, die Sie in Visual Studio als .NET MAUI App-Projekt öffnen können.
Klicken Sie hier, um das Projekt herunterzuladen.
Verwendung von IronOcr.Android in Avalonia
Ähnlich wie MAUI kann IronOcr.Android in einem Avalonia-Projekt mit den gleichen Einstellungen wie oben beschrieben verwendet werden.
Wenn Sie OCR unter iOS durchführen möchten, lesen Sie den folgenden Artikel, um mehr zu erfahren: "OCR auf iOS in .NET MAUI durchführen"