.NET MAUI Uygulamasında Bir Belge Tarayıcı SDK Nasıl Kullanılır
Mobil teknolojinin yükselişi ile Scanbot SDK ve Yerel SDK'lar gibi belge tarama uygulamaları, bireyler ve işletmeler için vazgeçilmez araçlar haline gelmiştir. Bu kılavuzda, en son .NET Çoklu Platform Uygulama Arabirimi (MAUI) sürümünü ve .NET için güçlü bir OCR (Optik Karakter Tanıma) kütüphanesi olan IronOCR'yi kullanarak bir belge tarayıcı uygulaması oluşturmayı keşfedeceğiz. .NET MAUI, Android gibi cihazlarda sorunsuz dağıtımı garanti ederek çapraz platform mobil uygulamaları oluşturmayı kolaylaştırır. Bu kılavuzun sonunda, resimlerden ve taranmış dosyalardan metin çıkarabilen bir belge tarayıcı SDK uygulamanızı geliştirebileceksiniz.
.NET MAUI Uygulamasında Belge Tarayıcı SDK'yi Nasıl Kullanılır
- Belge Tarayıcı SDK'sını kullanmak için IronOCR C# Kütüphanesini yükleyin.
- Gerekli kontrol elemanlarıyla bir .NET MAUI Form tasarlayın.
- MediaPicker.CapturePhotoAsync yöntemi ile bir fotoğraf çekin.
- Çekilen fotoğrafı bir Akış (Stream) olarak dönüştürün.
- Akışı OcrInput LoadImage yöntemine geçirin.
- IronTesseract Read yöntemiyle OCR gerçekleştirin.
- Belge metnini OcrResult Text özelliği ile görüntüleyin.
IronOCR - C# OCR Kütüphanesi
IronOCR, görüntüleri ve taranmış belgeleri düzenlenebilir metne doğru ve verimli bir şekilde dönüştürmek için Iron Software, LLC tarafından geliştirilen son teknoloji bir Optik Karakter Tanıma (OCR) yazılımıdır. OCR teknolojisi, işletmelerin belge işlemesini kolaylaştırarak taranmış belgeler, PDF'ler ve görüntüler gibi çeşitli kaynaklardan değerli bilgileri çıkarmasını kolaylaştırmıştır.
IronOCR, gelişmiş özellikleri, sağlam performansı ve entegrasyon kolaylığı nedeniyle OCR çözümleri arasında öne çıkmaktadır. Geliştirici olup uygulamalarınıza OCR özelliklerini dahil etmek için ya da belgelerin yönetim süreçlerini kolaylaştırmak isteyen bir işletme olsun, IronOCR kapsamlı bir çözüm sunar.
IronOCR'un Ana Özellikleri
- Yüksek Doğruluk: IronOCR, metin tanımada olağanüstü doğruluk sağlamak için en son algoritmaları ve makine öğrenmesi tekniklerini kullanır. Düşük çözünürlükte veya kötü tarama kalitesine sahip görüntüler dahil karmaşık belgelerden metni doğru şekilde çıkarır.
- Çok Dilli Destek: IronOCR, 125'ten fazla dilde metin tanıma desteği sunarak farklı dil ortamlarında faaliyet gösteren işletmeler için uygun hale gelir.
- Görüntü Önişleme: IronOCR, doğruluğu artırmak için gürültü azaltma, kontrast ayarlama ve eğrilik giderme gibi çeşitli görüntü işleme özellikleri sunar. Bu teknikler, özellikle bozulmuş veya mükemmel olmayan görüntülerle OCR sonuçlarını iyileştirir.
- Farklı Dosya Formatları Desteği: IronOCR, TIFF, JPEG, PNG ve PDF dahil olmak üzere çeşitli dosya formatlarını destekleyerek farklı belge kaynaklarıyla uyumluluğu sağlar.
- Özelleştirme Seçenekleri: Geliştiriciler, belirli gereksinimleri karşılamak için IronOCR'un davranışını özelleştirerek tanıma parametrelerinde ve iş akışı entegrasyonunda esneklik sunabilir.
- Hızlı ve Ölçeklenebilir: Performans için optimize edilen IronOCR, büyük miktarda belgelerden metni hızla çıkarır. Ölçeklenebilir mimarisi, belge hacminden bağımsız olarak sorunsuz çalışmayı garanti eder.
- .NET Uygulamaları ile Entegrasyon: IronOCR, .NET uygulamaları ile sorunsuz bir şekilde entegre olur ve OCR işlevselliğini dahil etmek için kolay kullanılabilir bir API sunar. Bu, geliştirmeyi basitleştirir ve OCR özellikli uygulamaların pazara sunulma süresini hızlandırır.
- Belge Sınıflandırma ve Veri Çekme: Temel metin tanımanın ötesinde, IronOCR, isimler, adresler veya fatura numaraları gibi belirli veri alanlarını tanımlayan belge sınıflandırması ve veri çekme için gelişmiş özellikler sunar.
Ön Koşullar
- Temel C# programlama bilgisi.
- .NET MAUI iş yükü ile kurulu Visual Studio 2022.
- NuGet Paket Yöneticisi aracılığıyla kurulmuş IronOCR paket kitaplığı.
1. .NET MAUI Projenizi Ayarlama
- Visual Studio 2022'yi açın ve yeni bir .NET MAUI Uygulama 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'lerinin kurulu olduğundan emin olun.
2. IronOCR Kütüphanesinin Kurulması
- Visual Studio'da Çözümünüze sağ tıklayın.
- "Çözümler İçin NuGet Paketlerini Yönet" öğesini seçin ve Gözat sekmesinde 'IronOCR' arayın.

- IronOCR kütüphanesini projenize yükleyin.
3. UI Tasarımı
Ana sayfamızın görünümünü tasarlayarak başlayalım. Çekilen fotoğrafı göstermek için bir resim kontrolü, fotoğraf çekmek için bir Yakalama düğmesi ve çıkarılan metni göstermek için bir Etiket ile 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:
- Kontrolleri dikey olarak yığmak için bir VerticalStackLayout kullanıyoruz.
- cameraPreview adlı Image kontrolü, çekilen fotoğrafı göstermek için kullanılır.
- Button kontrolü tıklandığında OnCaptureClicked olay işleyicisini tetikler.
- textLabel adlı Label kontrolü, çıkarılan metni göstermek için 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ı takip edeceğiz:
- Kamera API'sini Kullanma: Uygulamanız içinde doğrudan görüntü dosyaları yakalamak için .NET MAUI tarafından sağlanan kamera API'sini kullanın.
- Görüntüyü IronOCR'a Geçin: Bir görüntü çekildiğinde, metin çıkarımı için IronOCR'a geçirerek onun sağlam işlevselliğini kullanın.
- Çıkarılan Metni Gösterin: Çıkarılan metni, kullanıcı incelemesi için uygulamanızın kullanıcı arayüzünde belirlenen alanda gösterin.
İşte bu adımları uygulayan ilgili kod parçacığı:
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ı
Gel, kodu adım adım inceleyelim:
- MainPage.xaml.cs dosyasında, OnCaptureClicked yöntemi Capture düğmesinin tıklama olayını yönetmek için tanımlanmıştır.
- IronOCR lisans anahtarı, IronOCR kütüphanesini kullanabilmek için ayarlanır.
"YOUR-LICENSE-KEY-HERE"yerine gerçek lisans anahtarınızı yerleştirin. - Uygulamanın cihazın kamerasına erişebilmesini sağlamak için Permissions.RequestAsync
() ile kamera izinleri istenir. - MediaPicker.CapturePhotoAsync() çağrısı yapılarak kamera ile fotoğraf çekilir. Başarılı olursa, fotoğraf cameraPreview Görüntü kontrolü içinde gösterilir.
- Ç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ştirmek için Read yöntemi çağrılır.
- Çıkartılan metin başarılı olursa textLabel kontrolünde gösterilir. Eğer metin tespit edilmezse, bir hata mesajı göstermek için DisplayAlert kullanılır.
IronOCR'un daha fazla keşfi ve ek kod örnekleri için şu kod örnekleri sayfasını ziyaret edin.
5. Belge Tarayıcı Uygulamasını Test Etme
- Çapraz platform uyumluluğu sağlamak için uygulamayı çeşitli platformlarda (Android, iOS ve Windows) çalıştırın.
- Çeşitli yazı tipleri, boyutları ve yönleriyle belgeleri tarama gibi farklı senaryoları test edin.
- Çıkartılan metnin doğru ve arayüzde doğru bir şekilde gösterildiğini doğrulayın.
Çıktı - Metinsiz Taratılan Belge

Çıktı - Metinli Taratılan Belge

Sonuç
Bu eğitici kılavuzu takip ederek, IronOCR belge tarayıcı SDK'sını .NET MAUI içinde nasıl kullanacağınızı öğrendiniz. Belge tarama uygulamaları, kağıt belgeleri dijitalleştirmekten makbuzlar ve faturalar gibi saklanan bilgileri çıkarmaya kadar birçok pratik uygulamaya sahiptir. IronOCR'nin güçlü yeteneklerini ve .NET MAUI'nin esnekliğini kullanarak, farklı kullanım senaryolarına hitap eden özellik açısından zengin belge tarayıcı uygulamaları oluşturabilirsiniz. Farklı işlevleri deneyin, ek kütüphaneleri keşfedin ve daha etkileyici uygulamalar oluşturmak için becerilerinizi geliştirmeye devam edin.
IronOCR yetenekleri hakkında daha ayrıntılı bilgi için, lütfen şu dokümantasyon sayfasını ziyaret edin.
IronOCR, ticari modda tam işlevselliğini test etmek için ücretsiz deneme sağlar. Süresiz lite lisansı $799 ile 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 bir belge tarayıcı uygulaması oluşturabilirsiniz. IronOCR’u Optik Karakter Tanıma için değerlendirerek başlayın. IronOCR’u Visual Studio'da NuGet Paket Yöneticisi aracılığıyla yükleyin, ardından uygulamanızın arayüzünü .NET MAUI kullanarak tasarlayın ve IronTesseract’ın Read yöntemini kullanarak tarama işlevselliğini uygulayın.
Bir belge tarayıcı uygulaması için IronOCR kullanmanın avantajları nelerdir?
IronOCR, metin tanımada yüksek doğruluk, çoklu dil desteği ve çeşitli dosya biçimleriyle uyumluluk sağlar. Ayrıca görüntü ön işleme, hızlı performans ve .NET uygulamalarıyla sorunsuz entegrasyon sunarak, belge tarayıcı uygulaması için sağlam bir seçenek sunar.
Bir .NET MAUI projesinde IronOCR’u nasıl yüklerim?
Bir .NET MAUI projesinde IronOCR’u yüklemek için Visual Studio’yu açın ve NuGet Paket Yöneticisi'ni kullanarak 'IronOCR’ü arayın. OCR işlevselliklerini kullanmaya başlamak için paketi projenize ekleyin.
Bir belge tarayıcı uygulamasında görüntü yakalama ve işleme hangi adımları içerir?
Süreç, MediaPicker ile görüntüleri yakalamayı, bunları akış formatına dönüştürmeyi ve ardından IronOCR’un IronTesseract’ını kullanarak metin çıkarmayı içerir. Çıkarılan metin uygulamanın kullanıcı arayüzünde görüntülenebilir.
IronOCR tarafından OCR işlemi için desteklenen dosya formatları nelerdir?
IronOCR, TIFF, JPEG, PNG ve PDF gibi birçok dosya formatını destekleyerek çok yönlü belge tarama ve metin çıkarma yetenekleri sağlar.
IronOCR, birden fazla dili destekleyebilir mi?
Evet, IronOCR 125'ten fazla dili destekler ve çeşitli dil bağlamlarında metin tanıma gerektiren uygulamalar için uygundur.
.NET MAUI, platformlar arası geliştirmeye nasıl olanak sağlar?
.NET MAUI, geliştiricilerin tek bir kod tabanı ile platformlar arası mobil uygulamalar oluşturmalarına olanak tanır ve Android, iOS ve Windows cihazları arasında sorunsuz dağıtım sağlar.
.NET MAUI ile bir belge tarayıcı uygulaması geliştirmek için önkoşullar nelerdir?
Önkoşullar; C# programlama konularında temel bilgi, .NET MAUI iş yükü ile Visual Studio 2022 ve NuGet'ten yüklenen IronOCR kütüphanesidir.
Belge tarayıcı uygulamamın çeşitli platformlarla uyumluluğunu nasıl test ederim?
Belge tarayıcı uygulamanızı Android, iOS ve Windows cihazlarda dağıtarak işlevselliğini ve metin çıkarmada doğruluğunu test edebilirsiniz. Bu, .NET MAUI'nin çapraz platform yeteneklerini kullanarak mümkündür.




