.NET MAUI'de Android Üzerinde OCR Uygulama Yöntemleri

This article was translated from English: Does it need improvement?
Translated
View the article in English
Android related to .NET MAUI'de Android Üzerinde OCR Uygulama Yöntemleri

.NET MAUI (Çok platformlu Uygulama UI), .NET kullanarak Android, iOS, macOS ve Windows için çapraz platformlu uygulamalar geliştirmek üzere tasarlanmış Xamarin.Forms çerçevesinin 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'e OCR desteği getirir!

IronOCR Android Paketi

IronOcr.Android paketi, .NET çapraz platform projeleri aracılığıyla Android cihazlarda OCR özelliklerini etkinleştirir. Vanilla IronOCR paketi gerekli değildir.

Install-Package IronOcr.Android
PDF için C# NuGet Kütüphanesi

NuGet ile yükleyin

Install-Package IronOcr.Android

.NET MAUI projesi oluştur

Visual Studio'yu açın ve "Yeni proje oluştur"a tıklayın. MAUI arayın, .NET MAUI Uygulamasını seçin ve "İleri" tıklayın.

.NET MAUI Uygulama Projesi oluştur

IronOcr.Android kütüphanesini dahil et

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

  1. Visual Studio içinde "Dependencies" üzerine sağ tıklayın ve "NuGet Paketlerini Yönet..." seçeneğini seçin.
  2. "Gözat" sekmesini seçin ve "IronOcr.Android" arayın.
  3. "IronOcr.Android" paketini seçip "Yükle" üzerine tıklayın.

IronOcr.Android paketini indir

Diğer platformlarla sorun yaşamamak için csproj dosyanızı yalnızca Android platformunu hedefleyerek paketi dahil edecek şekilde değiştirin. Bunu yapmak için:

  1. Proje üzerine sağ tıklayın ve "Proje Dosyasını Düzenle" seçeneğini seçin.
  2. Yeni bir ItemGroup elementi oluşturun:

    <ItemGroup Condition="$(TargetFramework.Contains('android')) == true">
    </ItemGroup>
    <ItemGroup Condition="$(TargetFramework.Contains('android')) == true">
    </ItemGroup>
    XML
  3. Yeni oluşturduğumuz ItemGroup içine "IronOcr.Android" PackageReference taşırız.

Yukarıdaki adımlar, "IronOcr.Android" paketinin örneğin iOS platformları için kullanılmasını engelleyecektir (bu amaçla IronOcr.iOS yükleyin).

"MainActivity.cs" Düzenle

  • Platformlar -> Android dizininden "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 MAUI IronOCRAndroidSample
{
    [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 MAUI IronOCRAndroidSample
{
    [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 MAUI_IronOCRAndroidSample

    <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" Düzenle

OCR sonucunu göstermek için bir düğme ve bir etiket görüntülemek üzere XAML dosyasını 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="MAUI IronOCRAndroidSample.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="MAUI IronOCRAndroidSample.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" Düzenle

İlk olarak, IronTesseract nesnesinin bir örneğini oluşturun. Aşağıdaki kodda gösterildiği gibi, sınıf içinde IronTesseract'ün bir kez başlatıldığından emin olun. Bunu bir yöntem içinde örneklemek etkisiz olabilir ve beklenmedik hatalara yol açabilir.

Ardından, bir dosya seçmek için FilePicker.PickAsync yöntemini kullanın, sonra FileResult üzerinden bir okuma akışı açın. Yeni bir OcrInput nesnesi oluşturun ve görüntüyü buna yükleyin. Görüntü üzerinde OCR gerçekleştirin ve metni geri alın. Sonuçlanan metni nihayet bir etikete gösterin.

using IronOcr;
using Microsoft.Maui.Controls;
using System;
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;

namespace MAUI IronOCRAndroidSample
{
    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 MAUI IronOCRAndroidSample
{
    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 MAUI_IronOCRAndroidSample
    Public Partial 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(sender As Object, e As EventArgs)
            Try
                ' Configure the file picker
                Dim options As New PickOptions With {
                    .PickerTitle = "Please select a file"
                }

                ' Await user's file selection
                Dim result = Await FilePicker.PickAsync(options)
                If result IsNot Nothing Then
                    Using stream = Await result.OpenReadAsync()
                        ' Instantiate OcrInput
                        Using 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 Using
                    End Using
                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 sadece Android için projeyi derlediğinizden emin olun. Eklediğimiz paket yalnızca Android için olduğundan, projeyi tüm platformlar için derlemek başarısız olacaktır.

Projeyi Çalıştırın

Proje nasıl çalıştırılacağını ve OCR işlemi nasıl yapılacağını gösterecektir.

Execute .NET MAUI App project

.NET MAUI Uygulama Projesi İndirin

Bu kılavuzun tüm kodunu indirebilirsiniz. Visual Studio'da .NET MAUI Uygulama projesi olarak açabileceğiniz sıkıştırılmış bir dosya olarak gelir.

[Projeyi indirmek için buraya tıklayın.](/static-assets/ocr/how-to/setup-android/MAUI IronOCRAndroidSample.zip)

Avalonia'da IronOcr.Android Kullanımı

MAUI'ye benzer şekilde, IronOcr.Android, yukarıda açıklanan aynı kurulumla bir Avalonia projesinde kullanılabilir.

iOS üzerinde OCR yapmak isterseniz, daha fazla bilgi edinmek için şu makaleye gidin: ".NET MAUI'de iOS üzerinde OCR Yapma Yöntemleri"

Sıkça Sorulan Sorular

.NET MAUI uygulamasında Android'de OCR işlemini nasıl gerçekleştirebilirim?

Android'de .NET MAUI kullanarak OCR gerçekleştirmek için, Visual Studio ile NuGet üzerinden IronOcr.Android paketini yükleyin. IronTesseract sınıfını kullanarak görüntüleri işleyin ve metin çıkarın. Projenizin Android'i hedefleyecek şekilde yapılandırıldığından emin olmak için .csproj dosyasını uygun şekilde değiştirin.

IronOcr.Android paketinin amacı nedir?

IronOcr.Android paketi, .NET MAUI projeleri kapsamında Android cihazlarda OCR yeteneklerini sunmak üzere özel olarak tasarlanmıştır. Tekstil tanıma özelliklerinin Android'i hedefleyen çoklu platform uygulamalarına entegrasyonunu basitleştirir.

.NET MAUI projesini Android OCR için nasıl yapılandırırım?

IronOcr.Android paketini NuGet üzerinden yükleyerek .NET MAUI projenizi yapılandırın. .csproj dosyasını, Android'i hedef alacak şekilde yeniden gruplandırısız bir UnsurGrubu oluşturup IronOcr.Android PackageReference'yı içine taşıyarak ayarlayın. Bu, diğer platformlar için oluşturma sorunlarını önler.

OCR kurulumu için MainActivity.cs'de hangi değişiklikler gereklidir?

Platformlar -> Android altında bulunan MainActivity.cs dosyasında, MainActivity yöntemini ekleyin ve IronTesseract'tan Initialize yöntemini çağırın. Bu, görüntülerden metin işleme yeteneklerini kurar.

OCR özelliklerini entegre etmek için MainPage.xaml'ı nasıl düzenlerim?

MainPage.xaml'ı, dosya yükleme için bir düğme ve OCR sonuçlarını görüntülemek için bir etiket ekleyerek düzenleyin. Kullanıcı girdiğini etkili bir şekilde yönetmek için OCR işlem mantığıyla etkileşim kuracak gerekli kullanıcı arayüzü unsurlarını tanımlayın.

OCR işlemi sırasında hata ile karşılaşırsam ne yapmalıyım?

Try-catch bloklarını OCR işleme kodunuzun etrafına yerleştirerek istisnaları karşılayın. Hataları tanımlamanıza ve sorunları çözmenize yardımcı olması için Debug.WriteLine veya başka bir kayıt tutma mekanizmasını kullanarak herhangi bir hatayı kaydedin.

IronOcr.Android paketini Avalonia projelerinde kullanmak mümkün müdür?

Evet, IronOcr.Android paketi, .NET MAUI'deki gibi benzer bir kurulum işlemiyle Avalonia projelerinde kullanılabilir. OCR işlevselliğini etkinleştirmek için proje yapılandırmasını buna göre ayarlayın.

Android OCR için .NET MAUI kullanarak tamamlanmış bir örnek projeyi nerede bulabilirim?

Android OCR için .NET MAUI ile kullanarak IronOCR kütüphanesiyle tamamlanmış bir örnek proje, rehberde sağlanan bir bağlantı ile indirilebilir. Proje, Visual Studio'da açılmaya hazır bir şekilde sıkıştırılmış dosya olarak gelir.

IronOcr.Android paketi, çoklu platform projesinde yalnızca Android'i nasıl hedef alır?

IronOcr.Android paketinin yalnızca Android'i hedeflemesini sağlamak için, .csproj dosyasını Android için koşullu bir UnsurGrubu oluşturarak ayarlayın ve IronOcr.Android PackageReference'yi bu grubun içine taşıyın. Bu, diğer platformlar için oluştururken çatışmaları önler.

IronOCR ile OCR sonuçlarının doğruluğunu nasıl artırırım?

IronOCR ile OCR doğruluğunu artırmak için yüksek kaliteli giriş görüntülerini sağlamaya, uygun dil paketlerini kullanmaya ve kütüphanenin görüntü ön işleme özelliklerinden yararlanmaya özen gösterin.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 6,151,372 | Sürüm: 2026.7 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronOcr
örnek çalıştır görüntünüzün aranabilir metin haline gelmesini izleyin.