.NET MAUI Uygulamasında Belge Tarayıcı SDK Nasıl Kullanılır
Mobil teknolojinin yükselmesiyle birlikte, Scanbot SDK ve Yerel SDK'lar gibi belge tarama uygulamaları hem bireyler hem de işletmeler için vazgeçilmez araçlar haline gelmiştir. Bu eğiticide, .NET Çok Platformlu Uygulama Arayüzü'nün (MAUI) en son sürümünü ve .NET için güçlü bir OCR (Optik Karakter Tanıma) kütüphanesi olan IronOCR'u kullanarak bir belge tarayıcı uygulaması oluşturmayı keşfedeceğiz. .NET MAUI, Android gibi cihazlarda sorunsuz dağıtımı sağlayarak çapraz platform mobil uygulamaların oluşturulmasını basitleştirir. Bu kılavuzun sonunda, görüntülerden ve taranmış dosyalardan metin çıkarabilen kendi belge tarayıcı SDK uygulamanızı geliştirebileceksiniz.
Bir .NET MAUI Uygulamasında Belge Tarayıcı SDK'sı Nasıl Kullanılır
- Belge Tarayıcı SDK'sını kullanmak için IronOCR C# Kütüphanesini yükleyin.
- Gereken kontrollerle bir .NET MAUI formu tasarlayın.
- MediaPicker.CapturePhotoAsync yöntemi ile fotoğraf çekin.
- Çekilen fotoğrafı Stream'e dönüştürün.
- Akışı OcrInput LoadImage yöntemine geçirin.
- IronTesseract Read yöntemi kullanılarak OCR gerçekleştirin.
- OcrResult Text özelliği ile belge metnini görüntüleyin.
IronOCR - C# OCR Kütüphanesi
IronOCR Iron Software, LLC tarafından geliştirilmiş olan, görüntüleri ve taranmış belgeleri düzenlenebilir metne doğru ve etkili bir şekilde dönüştürmek için tasarlanmış ileri düzey bir Optik Karakter Tanıma (OCR) yazılımıdır. OCR teknolojisi, işletmelerin belge işlemlerini nasıl yönettiklerini devrim niteliğinde değiştirerek, taranan belgeler, PDF'ler ve görüntüler gibi çeşitli kaynaklardan değerli bilgiler çıkarmayı kolaylaştırdı.
IronOCR, gelişmiş özellikleri, sağlam performansı ve kolay entegrasyonu sayesinde OCR çözümleri arasında öne çıkıyor. İster uygulamalarınıza OCR özelliklerini entegre etmeyi düşünen bir geliştirici olun, ister belge yönetim süreçlerini kolaylaştırmak isteyen bir işletme olun, IronOCR kapsamlı bir çözüm sunar.
IronOCR'nin Temel Özellikleri
- Yüksek Doğruluk: IronOCR, metin tanımada olağanüstü doğruluk sağlamak için son teknoloji algoritmalar ve makine öğrenme teknikleri kullanır. Düşük çözünürlüklü veya kötü kaliteli taramalar içeren karmaşık belgelerden metinleri doğru bir şekilde çıkarabilir.
- Çoklu Dil Desteği: IronOCR, 125'ten fazla dilde metin tanıma desteği sunar, bu da çeşitli dilsel ortamlarda faaliyet gösteren işletmeler için uygundur.
- Görüntü Ön İşleme: IronOCR, doğruluğu artırmak için gürültü azaltma, kontrast ayarlama ve eğiklik düzeltme gibi çeşitli görüntü ön işleme yetenekleri sağlar. Bu teknikler, özellikle bozuk veya kusurlu görüntülerde, OCR sonuçlarını iyileştirir.
- Çeşitli Dosya Formatları Desteği: IronOCR, TIFF, JPEG, PNG ve PDF dahil olmak üzere geniş bir dosya format yelpazesi destekleyerek farklı belge kaynaklarıyla uyumluluğu sağlar.
- Özelleştirme Seçenekleri: Geliştiriciler, IronOCR'nin davranışını belirli gereksinimleri karşılayacak şekilde özelleştirebilir, tanıma parametreleri ve iş akışı entegrasyonunda esneklik sunar.
- Hızlı ve Ölçeklenebilir: Performans için optimize edilmiş IronOCR, büyük hacimli belgelerden metni hızla çıkarır. Ölçeklenebilir mimarisi, belge hacmine bakılmaksızın sorunsuz işlemi garanti eder.
- .NET Uygulamalarıyla Entegrasyon: IronOCR, .NET uygulamalarıyla sorunsuz bir şekilde entegre olarak OCR işlevselliği için kolay kullanımlı bir API sunar. Bu, geliştirmeyi basitleştirir ve OCR destekli uygulamaların pazara sunma süresini hızlandırır.
- Belge Sınıflandırma ve Veri Çıkartma: Temel metin tanımanın ötesine geçen IronOCR, adlar, adresler veya fatura numaraları gibi belirli veri alanlarını tanımlayarak belge sınıflandırması ve veri çıkarma için gelişmiş özellikler sunar.
Gereksinimler
- Temel C# programlama bilgisi.
- .NET MAUI iş yükü ile Visual Studio 2022 yüklü.
- IronOCR paket kitaplığı, NuGet Paket Yöneticisi üzerinden yüklendi.
1. .NET MAUI Projenizi Ayarlama
- Visual Studio 2022'yi açın ve yeni bir .NET MAUI App projesi oluşturun.

- Uygun bir proje adı seçin ve proje ayarlarınızı yapılandırın.

- Hedef platform cihaz geliştirmesi için gerekli Android ve iOS SDK'larını yüklediğinizden emin olun.
2. IronOCR Kitaplığını Yükleme
- Visual Studio'da Çözümünüze sağ tıklayın.
- 'Sürüm Çözümü için NuGet Paketlerini Yönet' seçeneğini seçin ve Gözat sekmesinden 'IronOCR' arayın.

- IronOCR kitaplığını projenize yükleyin.
3. Arayüzü Tasarlama
MainPage.xaml'in düzenini tasarlamaya başlayalım. Yakalanan fotoğrafı görüntülemek için bir resim kontrolüne, fotoğraf çekmek için bir Yakalama düğmesine ve çıkarılan metni görüntülemek için bir Etiket kontrolüne sahip basit bir düzen oluşturacağız.
İşte MainPage.xaml için XAML kodu:
<?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"
xmlns:d="http://schemas.microsoft.com/dotnet/2021/maui/design"
x:Class="DocumentScanner.MainPage">
<ScrollView>
<VerticalStackLayout Padding="30,0" Spacing="25">
<Image Source="dotnet_bot.png"
HeightRequest="185"
Aspect="AspectFit"
SemanticProperties.Description="dot net bot in a race car number eight" />
<Label Text="Welcome to .NET MAUI Document Scanner SDK"
style="{StaticResource Headline}"
SemanticProperties.HeadingLevel="Level1" />
<Label Text="Using IronOCR"
style="{StaticResource SubHeadline}"
SemanticProperties.HeadingLevel="Level2"
SemanticProperties.Description="Welcome to .NET MAUI Document Scanner SDK" />
<Image x:Name="cameraPreview" />
<Button Text="Capture" Clicked="OnCaptureClicked" />
<Label x:Name="textLabel" Text="Recognized Text:"/>
</VerticalStackLayout>
</ScrollView>
</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"
xmlns:d="http://schemas.microsoft.com/dotnet/2021/maui/design"
x:Class="DocumentScanner.MainPage">
<ScrollView>
<VerticalStackLayout Padding="30,0" Spacing="25">
<Image Source="dotnet_bot.png"
HeightRequest="185"
Aspect="AspectFit"
SemanticProperties.Description="dot net bot in a race car number eight" />
<Label Text="Welcome to .NET MAUI Document Scanner SDK"
style="{StaticResource Headline}"
SemanticProperties.HeadingLevel="Level1" />
<Label Text="Using IronOCR"
style="{StaticResource SubHeadline}"
SemanticProperties.HeadingLevel="Level2"
SemanticProperties.Description="Welcome to .NET MAUI Document Scanner SDK" />
<Image x:Name="cameraPreview" />
<Button Text="Capture" Clicked="OnCaptureClicked" />
<Label x:Name="textLabel" Text="Recognized Text:"/>
</VerticalStackLayout>
</ScrollView>
</ContentPage>
Bu düzen içinde:
- Görevleri dikey olarak yığmak için bir VerticalStackLayout kullanırız.
- cameraPreview adlı Görüntü kontrolü, yakalanan fotoğrafı görüntülemek için kullanılır.
- Düğme kontrolü, tıklandığında OnCaptureClicked etkinlik işleyicisini tetikler.
- Çıkarılan metni görüntülemek için textLabel adlı Etiket kontrolü kullanılır.
Çıktı

4. Belge Tarama İşlevselliğini Uygulama
.NET MAUI Belge Tarama uygulamamıza metin çıkarma işlevselliğini entegre etmek için şu adımları izleyeceğiz:
- Kamera API'sini Kullanın: .NET MAUI tarafından sağlanan kamera API'sini kullanarak uygulamanız içinde doğrudan görüntü dosyaları yakalayın.
- Görüntüyü IronOCR'ye Geçirin: Bir görüntü yakalandığında, güçlü işlevselliğini kullanarak metin çıkarmak amacıyla IronOCR'ye geçirin.
- Çıkarılan Metni Görüntüleyin: Kullanıcı arayüzünüzdeki belirlenmiş alanda çıkarılan metni kullanıcıların görmesi için görüntüleyin.
Bu adımları uygulayan ilgili kod parçacığı burada:
using IronOcr;
namespace DocumentScanner
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private async void OnCaptureClicked(object sender, EventArgs e)
{
License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
try
{
// Request camera permissions
var status = await Permissions.RequestAsync<Permissions.Camera>();
if (status == PermissionStatus.Granted)
{
// Take photo
var photo = await MediaPicker.CapturePhotoAsync();
if (photo != null)
{
// Display captured photo in Image
cameraPreview.Source = ImageSource.FromStream(() => photo.OpenReadAsync().Result);
using (var stream = await photo.OpenReadAsync())
{
// Use a stream from the captured photo for OCR
var ocr = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(stream);
var ocrResult = ocr.Read(ocrInput);
if (string.IsNullOrEmpty(ocrResult.Text))
{
await DisplayAlert("Error", "No Text Detected!", "OK");
}
else
{
await DisplayAlert("Text Detected!", ocrResult.Text, "OK");
// Display extracted text
textLabel.Text = ocrResult.Text;
}
}
}
}
else
{
// Camera permission denied
await DisplayAlert("Permission Denied", "Camera permission is required to capture photos.", "OK");
}
}
catch (Exception ex)
{
// Handle exception
await DisplayAlert("Error", ex.Message, "OK");
}
}
}
}
using IronOcr;
namespace DocumentScanner
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private async void OnCaptureClicked(object sender, EventArgs e)
{
License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
try
{
// Request camera permissions
var status = await Permissions.RequestAsync<Permissions.Camera>();
if (status == PermissionStatus.Granted)
{
// Take photo
var photo = await MediaPicker.CapturePhotoAsync();
if (photo != null)
{
// Display captured photo in Image
cameraPreview.Source = ImageSource.FromStream(() => photo.OpenReadAsync().Result);
using (var stream = await photo.OpenReadAsync())
{
// Use a stream from the captured photo for OCR
var ocr = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(stream);
var ocrResult = ocr.Read(ocrInput);
if (string.IsNullOrEmpty(ocrResult.Text))
{
await DisplayAlert("Error", "No Text Detected!", "OK");
}
else
{
await DisplayAlert("Text Detected!", ocrResult.Text, "OK");
// Display extracted text
textLabel.Text = ocrResult.Text;
}
}
}
}
else
{
// Camera permission denied
await DisplayAlert("Permission Denied", "Camera permission is required to capture photos.", "OK");
}
}
catch (Exception ex)
{
// Handle exception
await DisplayAlert("Error", ex.Message, "OK");
}
}
}
}
Imports IronOcr
Namespace DocumentScanner
Partial Public Class MainPage
Inherits ContentPage
Public Sub New()
InitializeComponent()
End Sub
Private Async Sub OnCaptureClicked(ByVal sender As Object, ByVal e As EventArgs)
License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
Try
' Request camera permissions
Dim status = Await Permissions.RequestAsync(Of Permissions.Camera)()
If status = PermissionStatus.Granted Then
' Take photo
Dim photo = Await MediaPicker.CapturePhotoAsync()
If photo IsNot Nothing Then
' Display captured photo in Image
cameraPreview.Source = ImageSource.FromStream(Function() photo.OpenReadAsync().Result)
Using stream = Await photo.OpenReadAsync()
' Use a stream from the captured photo for OCR
Dim ocr = New IronTesseract()
Dim ocrInput As New OcrInput()
ocrInput.LoadImage(stream)
Dim ocrResult = ocr.Read(ocrInput)
If String.IsNullOrEmpty(ocrResult.Text) Then
Await DisplayAlert("Error", "No Text Detected!", "OK")
Else
Await DisplayAlert("Text Detected!", ocrResult.Text, "OK")
' Display extracted text
textLabel.Text = ocrResult.Text
End If
End Using
End If
Else
' Camera permission denied
Await DisplayAlert("Permission Denied", "Camera permission is required to capture photos.", "OK")
End If
Catch ex As Exception
' Handle exception
Await DisplayAlert("Error", ex.Message, "OK")
End Try
End Sub
End Class
End Namespace
Kod Açıklaması
Kodu adım adım inceleyelim:
- MainPage.xaml.cs dosyasında, OnCaptureClicked yöntemi Yakalama düğmesinin tıklama olayını işlemek için tanımlanmıştır.
- IronOCR lisans anahtarı kurulumu yapılır, IronOCR kitaplığını kullanmak için gereklidir.
"YOUR-LICENSE-KEY-HERE"ile kendi lisans anahtarınızı değiştirin. - Uygulamanın cihazın kamerasına erişebilmesi için Kameraya Permissions.
RequestAsync<Permissions.Camera>() kullanılarak izinler istenir. - Fotoğraf çekmek için kamera ile
MediaPicker.CapturePhotoAsync()çağrılır. Başarılı olursa, fotoğraf cameraPreview Görüntü kontrolünde görüntülenir. - Çekilen fotoğraftan bir akış açılır ve IronOCR için giriş olarak kullanılır, bir IronTesseract örneği oluşturulur, görüntü akışı bir OcrInput nesnesine yüklenir ve OCR gerçekleştirilmek üzere Read yöntemi çağrılır. Başarılı olursa, çıkarılan metin textLabel kontrolünde görüntülenir. Eğer metin bulunmazsa, DisplayAlert kullanılarak bir hata mesajı gösterilir.
IronOCR'u daha fazla araştırmak ve ek kod örnekleri için, bu kod örnekleri sayfasını ziyaret edin.
5. Belge Tarayıcı Uygulamasını Test Etme
- Çapraz platform uyumluluğunu sağlamak için uygulamayı çeşitli platformlarda (Android, iOS ve Windows) çalıştırın.
- Çeşitli yazı tipleri, boyutları ve yönleri ile belgeleri taramak gibi farklı senaryoları test edin.
- Çıkarılan metnin doğru ve kullanıcı arayüzünde doğru görüntülendiğini doğrulayın.
Çıktı - Metin Olmadan Tarama Yapılmış Belge

Çıktı - Metin ile Tarama Yapılmış Belge

Sonuç
Bu eğitici ile, .NET MAUI içinde IronOCR belge tarayıcı SDK'sını nasıl kullanacağınızı öğrendiniz. Belge tarama uygulamaları, kağıt belgeleri dijitalleştirmekten makbuzlar ve faturalar gibi depolanmış bilgileri çıkartmaya kadar birçok pratik uygulamaya sahiptir. IronOCR'un güçlü yetenekleri ve .NET MAUI'nin esnekliği ile, çeşitli kullanım senaryolarına yönelik özellik açısından zengin belge tarayıcı uygulamaları oluşturabilirsiniz. Farklı işlevsellikleri deneyin, ek kütüphaneleri keşfedin ve daha da etkileyici uygulamalar oluşturmak için becerilerinizi geliştirmeye devam edin.
IronOCR yetenekleri hakkında daha ayrıntılı bilgi için bu belgeleme sayfasını ziyaret edin.
IronOCR, ticari modda tam işlevselliğini test etmek için ücretsiz deneme sunar. Süresiz lite lisansı $999'den başlar. Kütüphaneyi indirme sayfasından indirip deneyin.
Sıkça Sorulan Sorular
.NET MAUI kullanarak bir belge tarayıcı uygulaması nasıl oluşturabilirim?
.NET MAUI kullanarak IronOCR sayesinde bir belge tarayıcı uygulaması oluşturabilirsiniz. Visual Studio'daki NuGet Paket Yöneticisi üzerinden IronOCR'u yükleyerek başlayın, ardından uygulamanızın kullanıcı arayüzünü .NET MAUI ile tasarlayın ve IronTesseract'ın Read yöntemini kullanarak tarama işlevini uygulayın.
Bir belge tarayıcı uygulaması için IronOCR kullanmanın faydaları nedir?
IronOCR, metin tanımada yüksek doğruluk, çoklu dil desteği ve çeşitli dosya formatları ile uyumluluk sunar. Ayrıca görüntü ön işleme, hızlı performans ve .NET uygulamaları ile sorunsuz entegrasyon sağlar, bu da onu belge tarayıcı uygulamaları için sağlam bir seçenek yapar.
.NET MAUI projesine IronOCR nasıl kurulur?
.NET MAUI projesine IronOCR kurmak için, Visual Studio'yu açın ve 'IronOCR' araması yaparak NuGet Paket Yöneticisi'ni kullanın. Paketi projenize ekleyin ve OCR işlevlerini kullanmaya başlayın.
Bir belge tarayıcı uygulamasında görüntüleri yakalama ve işleme adımları nelerdir?
Süreç, görüntüleri yakalamak için MediaPicker kullanmayı, bunları bir akış formatına dönüştürmeyi ve ardından metin çıkarma işlemi yapmak için IronOCR'un IronTesseract'ını kullanmayı içerir. Çıkarılan metin, uygulamanın kullanıcı arayüzünde görüntülenebilir.
IronOCR tarafından OCR işleme için hangi dosya formatları destekleniyor?
IronOCR, TIFF, JPEG, PNG ve PDF dahil geniş bir dosya formatı yelpazesini destekleyerek çeşitli belge tarama ve metin çıkarma özelliklerine olanak tanır.
IronOCR, birden fazla dilde OCR'i destekleyebilir mi?
Evet, IronOCR 125'ten fazla dilde OCR desteği sunar, bu da çeşitli dilsel bağlamlarda metin tanıma gereksinimi olan uygulamalar için uygundur.
.NET MAUI çapraz platform geliştirimi nasıl kolaylaştırır?
.NET MAUI, tek bir kod tabanı ile Android, iOS ve Windows cihazlar arasında sorunsuz dağıtım yaparak, geliştiricilerin çapraz platform mobil uygulamalar oluşturmalarına olanak tanır.
.NET MAUI ile bir belge tarayıcı uygulaması geliştirmek için önkoşullar nelerdir?
Ön koşullar arasında temel C# programlama bilgisi, .NET MAUI iş yükü ile Visual Studio 2022 ve NuGet üzerinden yüklenmiş IronOCR kütüphanesi bulunmaktadır.
Belge tarayıcı uygulamamın platformlar arası uyumluluğunu nasıl test edebilirim?
.NET MAUI'nin çapraz platform yeteneklerinden yararlanarak uygulamanızı Android, iOS ve Windows cihazlarında dağıtarak metin çıkarma işlevselliğini ve doğruluğunu test edebilirsiniz.




