.NET MAUI'de Android'de OCR Nasıl Gerçekleştirilir
.NET MAUI (Çoklu platform Uygulama UI), Android, iOS, macOS ve Windows için .NET kullanılarak çapraz platform uygulamalar oluşturmak amacıyla tasarlanmış Xamarin.Forms çatısının evrimidir. .NET MAUI, birden fazla platformda çalışabilen yerel kullanıcı arayüzleri oluşturma sürecini basitleştirmeyi amaçlar.
IronOcr.Android paketi Android için OCR desteği getirir!!
Android'de IronOCR'yi .NET MAUI üzerinde nasıl kullanabilirsiniz
- Android'de OCR işlemi yapmak için C# kütüphanesini indirin
- Bir .NET MAUI Uygulama projesi oluşturun
- JSON dosyasını bir etkinleştirme butonu ve çıktı metni göstermek için düzenleyin
- C# dosyasını OCR işlemi yapmak için düzenleyin
- Hızlı başlamak için örnek projeyi indirin
IronOCR Android Paketi
IronOcr.Android paketi, Android cihazlarda .NET çapraz platform projeleri üzerinden OCR özelliklerini etkinleştirir. Vanilla IronOCR paketi gerekli değil.
Install-Package IronOcr.Android
NuGet ile yükleyin
Install-Package IronOcr.Android
Bir .NET MAUI projesi oluşturun
Visual Studio'yu açın ve "Yeni bir proje oluştur"u tıklayın. MAUI'yi arayın, .NET MAUI Uygulamasını seçin ve "Next"e tıklayın.

IronOcr.Android kütüphanesini dahil edin
Kütüphane çeşitli şekillerde eklenebilir. Belki en kolay yolu NuGet kullanmaktır.
- Visual Studio içinde "Bağımlılıklar" üzerine sağ tıklayın ve "NuGet Paketlerini Yönet ..."i seçin.
- "Gözat" sekmesini seçip "IronOcr.Android" araması yapın.
- "IronOcr.Android" paketini seçin ve "Install" düğmesine tıklayın.

Diğer platformlarla ilgili sorunları önlemek için csproj dosyasını düzenleyin ve paketi yalnızca Android platformunu hedeflerken dahil edin. Bunu yapmak için:
- Projeye sağ tıklayın ve "Proje Dosyasını Düzenle" seçeneğini seçin.
-
Aşağıdaki gibi yeni bir ItemGroup öğesi oluşturun:
<ItemGroup Condition="$(TargetFramework.Contains('android')) == true"> </ItemGroup><ItemGroup Condition="$(TargetFramework.Contains('android')) == true"> </ItemGroup>XML - "IronOcr.Android" PackageReference öğesini yeni oluşturduğumuz ItemGroup'in içine taşıyın.
Yukarıdaki adımlar, "IronOcr.Android" paketinin örneğin iOS platformlarında kullanılmasını engelleyecektir (bu amaçla IronOcr.iOS paketini yükleyin).
"MainActivity.cs"'yi düzenleyin
- Platformlar -> Android bölümüne giderek "MainActivity.cs" dosyasını açın.
MainActivityyöntemini ekleyin veInitializeyöntemini çağırın.
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
"MainPage.xaml"'yi düzenleyin
XAML dosyasını bir buton ve OCR sonucunu gösterecek bir etiket göstermek için düzenleyin. Örneğin:
<?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>
"MainPage.xaml.cs"'yi düzenleyin
Öncelikle, IronTesseract nesnesinin bir örneğini oluşturun. Aşağıdaki kodda gösterildiği gibi, IronTesseract sınıf içinde bir kez başlatıldığından emin olun. Bir yöntem içinde başlatmak etkisiz olabilir ve beklenmeyen hatalara neden olabilir.
Daha sonra, bir dosya seçmek için FilePicker.PickAsync yöntemini kullanın ve ardından FileResult içinden bir okuma akışı açın. Yeni bir OcrInput nesnesi oluşturun ve görüntüyü içine yükleyin. Tesseract örneği kullanarak resim üzerinde OCR gerçekleştirin ve metni alın. Son olarak, çıkan metni bir etiket içinde gösterin.
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
Son olarak, .csproj dosyasında, yalnızca Android için projeyi oluşturduğunuzdan emin olun. Eklediğimiz paket sadece Android için olduğundan dolayı projeyi tüm platformlar için oluşturmak başarısız olur.
Projeyi Çalıştır
Bu, projeyi nasıl çalıştıracağınızı ve OCR işlemi nasıl yapacağınızı gösterecektir.
.NET MAUI Uygulama Projesini İndirin
Bu rehber için tamamlanmış kodu indirebilirsiniz. Açık bir Visual Studio'da bir .NET MAUI Uygulama projesi olarak açabileceğiniz sıkıştırılmış bir dosya ile birlikte gelir.
Avalonia'da IronOcr.Android Kullanımı
MAUI'ye benzer şekilde, IronOcr.Android, yukarıda tarif edilen aynı kurulum ile Avalonia projesinde kullanılabilir.
iOS'ta OCR işlemi yapmak istiyorsanız, daha fazla bilgi için şu makaleye gidin: ".NET MAUI'de iOS'ta OCR Nasıl Yapılır"
Sıkça Sorulan Sorular
.NET MAUI uygulamasında Android'de OCR'ı nasıl yapabilirim?
.NET MAUI kullanarak Android'de OCR gerçekleştirmek için Visual Studio'da NuGet üzerinden IronOcr.Android paketini yükleyin. Görüntüleri işlemek ve metin çıkarmak için IronTesseract sınıfını kullanın. Projenizin Android'i hedefleyecek şekilde yapılandırıldığından emin olun ve csproj dosyasını uygun şekilde değiştirin.
IronOcr.Android paketinin amacı nedir?
IronOcr.Android paketi, .NET MAUI projeleri içinde Android cihazlara OCR yetenekleri getirecek şekilde özel olarak tasarlanmıştır. Android hedefleyen çapraz platform uygulamalarda metin tanıma özelliklerinin entegrasyonunu basitleştirir.
.NET MAUI projesini Android OCR için nasıl yapılandırırım?
.NET MAUI projenizi NuGet üzerinden IronOcr.Android paketini yükleyerek yapılandırın. Farklı platformlar için derleme sorunlarını önlemek için, Android'i hedeflemek üzere .csproj dosyasını ayarlayın ve yeni bir ItemGroup elemanı oluşturarak IronOcr.Android PackageReference'i içine taşıyın.
OCR kurulumunu yapmak için MainActivity.cs'de hangi değişiklikler gereklidir?
Platforms -> Android altındaki MainActivity.cs dosyasına, MainActivity yöntemini ekleyin ve IronTesseract'tan Initialize yöntemini çağırın. Bu, görüntülerden metin işlemek için gereken OCR yeteneklerini ayarlar.
OCR özelliklerini dahil etmek için MainPage.xaml'i nasıl düzenleyebilirim?
Dosya aktarma için bir düğme ve OCR sonuçlarını göstermek için bir etiket eklemek üzere MainPage.xaml'i düzenleyin. OCR işleme mantığıyla etkileşimde bulunmak ve kullanıcı girdisini etkin bir şekilde yönetmek için gerekli UI öğelerini tanımlayın.
OCR işleme sırasında hata alırsam ne yapmalıyım?
Hataları ele almak için OCR işleme kodunuzun etrafına try-catch blokları ekleyin. Sorunları teşhis etmek ve düzeltmek için hata günlüklerini Debug.WriteLine veya başka bir günlükleme mekanizması kullanarak kaydedin.
Avalonia projelerinde IronOcr.Android paketini kullanmak mümkün mü?
Evet, IronOcr.Android paketi Avalonia projelerinde .NET MAUI'de olduğu gibi benzer bir kurulum süreci ile kullanılabilir. OCR fonksiyonunu etkinleştirmek için proje yapılandırmasını uygun şekilde ayarlayın.
.NET MAUI kullanarak Android OCR için eksiksiz bir örnek projeyi nerede bulabilirim?
IronOCR kütüphanesi kullanarak .NET MAUI'de Android OCR için eksiksiz bir örnek proje, rehberde sağlanan bir bağlantı aracılığıyla indirilebilir. Proje, Visual Studio'da açılmaya hazır ZIPlenmiş bir dosya olarak gelir.
IronOcr.Android paketinin yalnızca Android'i hedef aldığından nasıl emin olabilirim?
IronOcr.Android paketinin yalnızca Android'i hedef aldığından emin olmak için, .csproj dosyasını Android için koşullu bir ItemGroup oluşturarak ve IronOcr.Android PackageReference'i içine taşıyarak değiştirin. Bu, diğer platformlar için derleme sırasında çakışmaların önlenmesini sağlar.

