.NET MAUI'de Android'de OCR Nasıl Gerçekleştirilir

This article was translated from English: Does it need improvement?
Translated
View the article in English
Android related to .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!!

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
PDF için C# NuGet Kütüphanesi

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.

.NET MAUI Uygulama projesi oluştur

IronOcr.Android kütüphanesini dahil edin

Kütüphane çeşitli şekillerde eklenebilir. Belki en kolay yolu NuGet kullanmaktır.

  1. Visual Studio içinde "Bağımlılıklar" üzerine sağ tıklayın ve "NuGet Paketlerini Yönet ..."i seçin.
  2. "Gözat" sekmesini seçip "IronOcr.Android" araması yapın.
  3. "IronOcr.Android" paketini seçin ve "Install" düğmesine tıklayın.

IronOcr.Android paketini indirin

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:

  1. Projeye sağ tıklayın ve "Proje Dosyasını Düzenle" seçeneğini seçin.
  2. 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
  3. "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.
  • MainActivity yöntemini ekleyin ve Initialize yö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
$vbLabelText   $csharpLabel

"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>
XML

"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
$vbLabelText   $csharpLabel

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.

Execute .NET MAUI App project

.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.

Projenin indirilmesi için buraya tıklayın.

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.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,585,834 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronOcr
örnekleri çalıştır resminizin aranabilir metne donuşünü izleyin.