.NET MAUI Çizgikodu Tarayıcı SDK Uygulaması Nasıl Oluşturulur
.NET MAUI, Android, iOS ve Windows'u hedefleyen tek bir kod tabanı vaadini yerine getirir. Zorluk, barkod tarama gibi yerel donanım özelliklerini entegre etmeniz gerektiğinde ortaya çıkar. Kamera API'lerini manuel olarak köprülemek, platforma özgü yapılandırmalar, koşullu derleme direktifleri ve saatlerce hata ayıklama anlamına gelir. Daha hızlı bir yol var.
Bu eğitim, IronBarcode kullanarak .NET MAUI'de çalışan bir çapraz platform barkod tarayıcı nasıl oluşturacağınızı gösterir. Proje kuracak, platform izinlerini yapılandıracak, görüntü dosyalarından barkodları tarayacak, PDF belgelerinden barkodları okuyacak ve tarama seçenekleri ile birden fazla semboloji kullanacaksınız -- tüm bunları desteklenen herhangi bir hedefte çalıştırabileceğiniz kodla yapacaksınız.
Ücretsiz denemenizi başlatın ve aşağıdaki adımları izleyin.
.NET MAUI'de Barkod Tarayıcı SDK Nasıl Kurulur?
.NET MAUI barkod tarayıcı SDK'yi kurmak, yeni bir proje oluşturmayı, NuGet paketini yüklemeyi ve platform izinlerini yapılandırmayı gerektirir. Tüm yapılandırma süreci Visual Studio'da birkaç dakika sürer.
.NET MAUI Projesi Oluşturun
Visual Studio'yu açın ve yeni bir .NET MAUI App projesi oluşturun. Projeyi açıklayıcı bir şey olarak adlandırın, örneğin "BarcodeScanner" ve hedef çerçeve olarak .NET 8 veya üstünü seçin. Visual Studio, Android ve iOS için platforma özgü klasörlerle varsayılan proje yapısını oluşturur.
.NET 10'u hedef alıyorsanız aynı proje şablonu geçerlidir. <TargetFrameworks> özelliğini .csproj dosyanızda güncelleyerek gereken net10.0-android, net10.0-ios ve net10.0-windows10.0.19041.0 dahil edin. Tam hedef çerçeve monikerleri ve minimum OS sürüm gereksinimleri için .NET MAUI desteklenen platformlar belgelerine bakın.
IronBarcode Yükleyin
IronBarcode NuGet paketini Paket Yöneticisi Konsolunu kullanarak yükleyin:
Install-Package BarCode
Bu komut, barkod tarayıcı SDK'yi ve .NET MAUI uygulaması için gerekli tüm bağımlılıkları indirir ve yükler.
Platform İzinlerini Yapılandırın
Canlı bir kamera akışından ziyade görüntü dosyalarından tarama yaparken bile, .NET MAUI barkod tarayıcı uygulaması için aşağıdaki izinleri yapılandırmak iyi bir uygulamadır.
Android için, Platforms/Android/AndroidManifest.xml'ye aşağıdakileri ekleyin:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
iOS için, Platforms/iOS/Info.plist'ye bu girişleri ekleyin:
<key>NSPhotoLibraryUsageDescription</key>
<string>Access needed to select barcode images for scanning.</string>
<key>NSCameraUsageDescription</key>
<string>Camera permission for barcode scanning.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Access needed to select barcode images for scanning.</string>
<key>NSCameraUsageDescription</key>
<string>Camera permission for barcode scanning.</string>
SDK'yi Başlatın
Lisans anahtarınızı uygulama yaşam döngüsünün erken aşamalarında ayarlayın, böylece IronBarcode herhangi bir tarama çağrısı yapılmadan önce tamamen etkinleştirilmiş olur. Aktivasyonu MauiProgram.cs içine yerleştirin:
using IronBarCode;
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
});
// Activate IronBarcode before the app starts
License.LicenseKey = "YOUR_LICENSE_KEY_HERE";
return builder.Build();
using IronBarCode;
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
});
// Activate IronBarcode before the app starts
License.LicenseKey = "YOUR_LICENSE_KEY_HERE";
return builder.Build();
Imports IronBarCode
Dim builder = MauiApp.CreateBuilder()
builder _
.UseMauiApp(Of App)() _
.ConfigureFonts(Sub(fonts)
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular")
End Sub)
' Activate IronBarcode before the app starts
License.LicenseKey = "YOUR_LICENSE_KEY_HERE"
Return builder.Build()
IronBarcode, geliştirme ve test için ücretsiz bir deneme lisansı sağlar. Anahtarı başlangıçta bir kez ayarlayın; aynı işlemdeki tüm BarcodeReader ve BarcodeWriter çağrıları etkin lisansı kullanır.
Görüntü Dosyalarından Barkod Nasıl Okunur?
Herhangi bir MAUI barkod tarayıcısının temel işlevi, seçilen görüntülerden barkodları okumaktır. BarcodeReader.Read() metodu bir dosya yolu kabul eder ve tespit edilen her bir barkod için BarcodeResult nesnelerinden oluşan bir koleksiyon döndürür.
Kullanıcı Arayüzünü Tasarlayın
Kullanıcıların bir resim dosyası seçip taranmış barkod verilerini görüntülemesine olanak tanıyan MainPage.xaml içinde temiz bir arayüz oluşturun:
<?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="BarcodeScanner.MainPage">
<VerticalStackLayout Padding="20" Spacing="15">
<Label Text=".NET MAUI Barcode Scanner" FontSize="24" HorizontalOptions="Center"/>
<Button Text="Select Image to Scan" Clicked="OnSelectImageClicked"/>
<Image x:Name="SelectedImageView" HeightRequest="200"/>
<Label x:Name="ResultLabel" FontSize="16"/>
</VerticalStackLayout>
</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="BarcodeScanner.MainPage">
<VerticalStackLayout Padding="20" Spacing="15">
<Label Text=".NET MAUI Barcode Scanner" FontSize="24" HorizontalOptions="Center"/>
<Button Text="Select Image to Scan" Clicked="OnSelectImageClicked"/>
<Image x:Name="SelectedImageView" HeightRequest="200"/>
<Label x:Name="ResultLabel" FontSize="16"/>
</VerticalStackLayout>
</ContentPage>
Barkod Tarama Uygulayın
Tarama mantığını MainPage.xaml.cs'ye ekleyin. Bu kod, MAUI FilePicker API'si aracılığıyla resim seçimini işler ve seçilen dosya yolunu IronBarcode'a aktarır:
using IronBarCode;
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private async void OnSelectImageClicked(object sender, EventArgs e)
{
var result = await FilePicker.PickAsync(new PickOptions
{
FileTypes = FilePickerFileType.Images,
PickerTitle = "Select a barcode image"
});
if (result != null)
{
// Display the selected image
SelectedImageView.Source = ImageSource.FromFile(result.FullPath);
// Read barcodes from the image file
var barcodes = BarcodeReader.Read(result.FullPath);
ResultLabel.Text = barcodes.Any()
? $"Found: {barcodes.First().Value}"
: "No barcodes detected in selected image.";
}
}
}
using IronBarCode;
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private async void OnSelectImageClicked(object sender, EventArgs e)
{
var result = await FilePicker.PickAsync(new PickOptions
{
FileTypes = FilePickerFileType.Images,
PickerTitle = "Select a barcode image"
});
if (result != null)
{
// Display the selected image
SelectedImageView.Source = ImageSource.FromFile(result.FullPath);
// Read barcodes from the image file
var barcodes = BarcodeReader.Read(result.FullPath);
ResultLabel.Text = barcodes.Any()
? $"Found: {barcodes.First().Value}"
: "No barcodes detected in selected image.";
}
}
}
Imports IronBarCode
Public Partial Class MainPage
Inherits ContentPage
Public Sub New()
InitializeComponent()
End Sub
Private Async Sub OnSelectImageClicked(sender As Object, e As EventArgs)
Dim result = Await FilePicker.PickAsync(New PickOptions With {
.FileTypes = FilePickerFileType.Images,
.PickerTitle = "Select a barcode image"
})
If result IsNot Nothing Then
' Display the selected image
SelectedImageView.Source = ImageSource.FromFile(result.FullPath)
' Read barcodes from the image file
Dim barcodes = BarcodeReader.Read(result.FullPath)
ResultLabel.Text = If(barcodes.Any(), $"Found: {barcodes.First().Value}", "No barcodes detected in selected image.")
End If
End Sub
End Class
Çıktı

BarcodeReader.Read() metodu, seçilen resmi analiz eder ve tespit edilen tüm barkodları döndürür. IronBarcode, QR kodları, Code 128, Code 39, EAN-13 ve diğer birçok desteklenen formatı içeren birden fazla barkod sembolojisini otomatik olarak tanır. Sonuç koleksiyonu, her tespit edilen kod için BarcodeType, Value, PageNumber gibi özellikleri ve sınırlayıcı kutu koordinatlarını sunar.
PDF Belgelerinden Barkod Nasıl Taranır?
IronBarcode'un birçok alternatiften ayıran özelliklerden biri, barkodları doğrudan PDF dosyalarından okumasıdır. Bu, belge iş akışlarını ele alan .NET MAUI uygulamaları için gereklidir -- gönderi manifestleri, satın alma emirleri, tıbbi kayıtlar ve benzeri kullanım durumları, PDF'ye gömülü barkodlara bağlıdır.
BarcodeReader.ReadPdf() metodu, bir dosya yolu kabul eder ve görüntü okuyucunun BarcodeResult koleksiyonunun aynısını döndürür, ek olarak her barkodun hangi PDF sayfasından geldiğini belirten PageNumber özelliği ile birlikte:
using IronBarCode;
private async void OnSelectPdfClicked(object sender, EventArgs e)
{
var result = await FilePicker.PickAsync(new PickOptions
{
PickerTitle = "Select a PDF with barcodes"
});
if (result != null)
{
// Read barcodes from every page of the PDF
var barcodes = BarcodeReader.ReadPdf(result.FullPath);
var output = string.Join("\n", barcodes.Select(b =>
$"Page {b.PageNumber}: [{b.BarcodeType}] {b.Value}"));
await DisplayAlert("Scan Results", output.Length > 0 ? output : "No barcodes found.", "OK");
}
}
using IronBarCode;
private async void OnSelectPdfClicked(object sender, EventArgs e)
{
var result = await FilePicker.PickAsync(new PickOptions
{
PickerTitle = "Select a PDF with barcodes"
});
if (result != null)
{
// Read barcodes from every page of the PDF
var barcodes = BarcodeReader.ReadPdf(result.FullPath);
var output = string.Join("\n", barcodes.Select(b =>
$"Page {b.PageNumber}: [{b.BarcodeType}] {b.Value}"));
await DisplayAlert("Scan Results", output.Length > 0 ? output : "No barcodes found.", "OK");
}
}
Imports IronBarCode
Private Async Sub OnSelectPdfClicked(sender As Object, e As EventArgs)
Dim result = Await FilePicker.PickAsync(New PickOptions With {
.PickerTitle = "Select a PDF with barcodes"
})
If result IsNot Nothing Then
' Read barcodes from every page of the PDF
Dim barcodes = BarcodeReader.ReadPdf(result.FullPath)
Dim output = String.Join(vbLf, barcodes.Select(Function(b) $"Page {b.PageNumber}: [{b.BarcodeType}] {b.Value}"))
Await DisplayAlert("Scan Results", If(output.Length > 0, output, "No barcodes found."), "OK")
End If
End Sub
Çıktı

ReadPdf() metodu, bir PDF'in tüm sayfalarını tarar ve barkod verilerini sayfa numaralarıyla birlikte döndürerek içinde birden fazla barkod bulunan belgeleri işlemeyi basit hale getirir. PDF düzinelerce sayfa içeriyorsa, taramayı alakalı sayfalarla sınırlandırmak ve işlem süresini azaltmak için BarcodeReaderOptions nesnesi ile PageNumbers belirli bir aralığa ayarlamayı düşünün.
Birden Çok Barkod ve QR Kodları Nasıl Ele Alınır?
Üretim uygulamaları genellikle tek bir görüntüden birden fazla barkod tespit etmeyi veya sonuçları barkod türüne göre filtrelemeyi gerektirir. BarcodeReaderOptions sınıfı, tespit davranışını kontrol eden yapılandırma özelliklerini sunar. ExpectMultipleBarcodes 'i true olarak ayarlamak, okuyucuya erken durmak yerine ilk eşleşmeden sonra taramaya devam etmesini söyler:
using IronBarCode;
// Configure the reader for multi-barcode detection with type filtering
var options = new BarcodeReaderOptions
{
ExpectMultipleBarcodes = true,
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
Speed = ReadingSpeed.Balanced
};
var barcodes = BarcodeReader.Read(imagePath, options);
foreach (var barcode in barcodes)
{
Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}");
}
using IronBarCode;
// Configure the reader for multi-barcode detection with type filtering
var options = new BarcodeReaderOptions
{
ExpectMultipleBarcodes = true,
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
Speed = ReadingSpeed.Balanced
};
var barcodes = BarcodeReader.Read(imagePath, options);
foreach (var barcode in barcodes)
{
Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}");
}
Imports IronBarCode
' Configure the reader for multi-barcode detection with type filtering
Dim options As New BarcodeReaderOptions With {
.ExpectMultipleBarcodes = True,
.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128,
.Speed = ReadingSpeed.Balanced
}
Dim barcodes = BarcodeReader.Read(imagePath, options)
For Each barcode In barcodes
Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}")
Next
Speed özelliği, tarama süresi ile doğruluk arasında denge sağlar. ReadingSpeed.Faster, yüksek kaliteli görüntüleri toplu olarak tarayan uygulamalar için uygun olan veri işleme hızını önceliklendirir. ReadingSpeed.ExtraSlow, düşük kontrast, eğik açılar veya kısmen örtülmüş kodlar gibi zorlu girişler için daha agresif görüntü düzeltme geçişleri uygular. ReadingSpeed.Balanced, çoğu uygulama için doğru başlangıç noktasıdır.
BarcodeEncoding numaralandırması bit düzeyinde kombinasyonları destekler, böylece gereksiz kontrollerle performansı cezalandırmadan taramayı tam olarak kullanım durumuna uygun sembolojilerle sınırlayabilirsiniz.
Memory Streams Üzerinden Barkod Nasıl Okunur?
Çoğu senaryoda dosya yolları iyi çalışır, ancak bazı .NET MAUI iş akışları görüntü verilerini bellek üzerinden iletir -- bir kamera önizlemesinden yakalanan kareler, bir REST API'den indirilen baytlar veya süreç içinde oluşturulan görüntü verileri. IronBarcode, BarcodeReader.Read() aşırı yüklemesinde doğrudan System.IO.Stream girdilerini destekler:
using IronBarCode;
using System.IO;
// Read a barcode from a MemoryStream (e.g., an in-memory image buffer)
private BarcodeResult[] ReadFromStream(Stream imageStream)
{
return BarcodeReader.Read(imageStream);
}
// Example: download an image and scan without writing to disk
private async Task<string> ScanDownloadedBarcode(string imageUrl)
{
using var httpClient = new HttpClient();
using var stream = await httpClient.GetStreamAsync(imageUrl);
using var memoryStream = new MemoryStream();
await stream.CopyToAsync(memoryStream);
memoryStream.Position = 0;
var barcodes = BarcodeReader.Read(memoryStream);
return barcodes.Any() ? barcodes.First().Value : string.Empty;
}
using IronBarCode;
using System.IO;
// Read a barcode from a MemoryStream (e.g., an in-memory image buffer)
private BarcodeResult[] ReadFromStream(Stream imageStream)
{
return BarcodeReader.Read(imageStream);
}
// Example: download an image and scan without writing to disk
private async Task<string> ScanDownloadedBarcode(string imageUrl)
{
using var httpClient = new HttpClient();
using var stream = await httpClient.GetStreamAsync(imageUrl);
using var memoryStream = new MemoryStream();
await stream.CopyToAsync(memoryStream);
memoryStream.Position = 0;
var barcodes = BarcodeReader.Read(memoryStream);
return barcodes.Any() ? barcodes.First().Value : string.Empty;
}
Imports IronBarCode
Imports System.IO
Imports System.Net.Http
Imports System.Threading.Tasks
' Read a barcode from a MemoryStream (e.g., an in-memory image buffer)
Private Function ReadFromStream(imageStream As Stream) As BarcodeResult()
Return BarcodeReader.Read(imageStream)
End Function
' Example: download an image and scan without writing to disk
Private Async Function ScanDownloadedBarcode(imageUrl As String) As Task(Of String)
Using httpClient As New HttpClient()
Using stream As Stream = Await httpClient.GetStreamAsync(imageUrl)
Using memoryStream As New MemoryStream()
Await stream.CopyToAsync(memoryStream)
memoryStream.Position = 0
Dim barcodes = BarcodeReader.Read(memoryStream)
Return If(barcodes.Any(), barcodes.First().Value, String.Empty)
End Using
End Using
End Using
End Function
Akış aşırı yüklemesi, Stream alt sınıfını kabul eder, MemoryStream, FileStream ve ağ akışları dahil. Kütüphane, format tespitini dahili olarak işler, bu yüzden Read() çağrılmadan önce görüntü türünü belirtmeniz gerekmez.
Bir MAUI Uygulamasında Barkod Nasıl Üretilir?
IronBarcode, okuma işleminin yanı sıra barkod üretimini de gerçekleştirir. BarcodeWriter sınıfı, barkodları resim dosyaları, Bitmap nesneleri veya bir MAUI görünümünde satır içi görüntüleyebileceğiniz Stream örnekleri olarak üretir. Bu, tarama işlevselliği ile birlikte barkodları yazdırması veya paylaşması gereken envanter uygulamaları için faydalıdır:
using IronBarCode;
// Generate a QR code and display it in a MAUI Image control
private async void OnGenerateQrClicked(object sender, EventArgs e)
{
// Create a QR code barcode
var qrCode = QRCodeWriter.CreateQrCode(
value: "https://ironsoftware.com/csharp/barcode/",
qrCodeSize: 500,
errorCorrection: QRCodeWriter.QrErrorCorrectionLevel.Medium
);
// Save to a temporary file and display
var tempPath = Path.Combine(FileSystem.CacheDirectory, "generated-qr.png");
qrCode.SaveAsPng(tempPath);
GeneratedImageView.Source = ImageSource.FromFile(tempPath);
}
using IronBarCode;
// Generate a QR code and display it in a MAUI Image control
private async void OnGenerateQrClicked(object sender, EventArgs e)
{
// Create a QR code barcode
var qrCode = QRCodeWriter.CreateQrCode(
value: "https://ironsoftware.com/csharp/barcode/",
qrCodeSize: 500,
errorCorrection: QRCodeWriter.QrErrorCorrectionLevel.Medium
);
// Save to a temporary file and display
var tempPath = Path.Combine(FileSystem.CacheDirectory, "generated-qr.png");
qrCode.SaveAsPng(tempPath);
GeneratedImageView.Source = ImageSource.FromFile(tempPath);
}
Imports IronBarCode
' Generate a QR code and display it in a MAUI Image control
Private Async Sub OnGenerateQrClicked(sender As Object, e As EventArgs)
' Create a QR code barcode
Dim qrCode = QRCodeWriter.CreateQrCode(
value:="https://ironsoftware.com/csharp/barcode/",
qrCodeSize:=500,
errorCorrection:=QRCodeWriter.QrErrorCorrectionLevel.Medium
)
' Save to a temporary file and display
Dim tempPath = Path.Combine(FileSystem.CacheDirectory, "generated-qr.png")
qrCode.SaveAsPng(tempPath)
GeneratedImageView.Source = ImageSource.FromFile(tempPath)
End Sub
QRCodeWriter sınıfı, dört QR hata düzeltme seviyesini (Düşük, Orta, Çeyrek, Yüksek), özel boyutlandırma ve ön plan/arka plan rengi kontrolünü içeren stil seçeneklerini destekler. QR olmayan sembolojiler için, uygun BarcodeEncoding değeri ile BarcodeWriter.CreateBarcode() kullanın. barkod oluşturma API referansı, desteklenen tüm çıktı formatlarını belgelemektedir.
Bu Barkod Tarayıcı Kütüphanesinin Temel Yetkinlikleri Nelerdir?
IronBarcode, onu ZXing.Net.MAUI gibi açık kaynak alternatiflerinden ayıran .NET MAUI barkod tarama projeleri için birkaç avantaj sunar:
| Yetkinlik | Detay |
|---|---|
| Çoklu platform desteği | Tek bir NuGet paketinden Android, iOS ve Windows hedefler |
| Çoklu giriş kaynakları | Dosya yollarından, bellek akışlarından ve PDF belgelerinden tarama |
| Format kapsamı | 30'dan fazla 1D ve 2D sembolojiyi çözer, QR, Veri Matrisi ve PDF417 dahil |
| Barkod üretimi | PNG, bitmap veya akış çıktısı olarak QR kodları ve 1D barkodlar üretir |
| Görüntü düzeltme | Dönen, kaymış ve düşük kontrastlı girdileri otomatik olarak yönetir |
| Yerel SDK bağımlılığı yok | Platforma özgü yerel bağlar gerektirmeyen saf .NET kütüphanesi |
"Yerel SDK bağımlılığı yok" noktası, platforma özgü yerel kütüphanelerin her hedef için ayrı bağlama adımları gerektirdiğinden .NET MAUI projelerinde önemlidir. IronBarcode bu karmaşıklığı tamamen önler, bu da aynı NuGet referansının ek yapılandırmaya gerek kalmadan desteklenen üç platform için çalışan ikili dosyalar üretmesi anlamına gelir.
Desteklenen barkod formatlarının tam listesi için IronBarcode desteklenen formatlar belgelerine bakın. Üretim dağıtımı için fiyatlandırma ve lisanslama koşulları hakkında bilgi almak için IronBarcode lisanslama sayfasını inceleyin.
Üretimde Barkod Taraması İçin En İyi Uygulamalar Nelerdir?
Bir barkod tarayıcıyı üretime dağıtmak, temel okuma çağrısının ötesinde birkaç alana dikkat etmeyi gerektirir. .NET MAUI barkod uygulamalarındaki en yaygın hata noktalarını ele alan aşağıdaki kılavuzlar.
Doğru okuma hızını seçin. ReadingSpeed.Balanced çoğu gerçek dünya görüntüsünü doğru şekilde işler. ReadingSpeed.ExtraSlow'ü basılı belgelerin veya kullanıcıların yeniden çekemeyeceği görüntülerin taramaları için ayırın. Her taramanın oldukça uzun sürdüğü için yüksek hacimli işler için ReadingSpeed.ExtraSlow'den kaçının.
Beklenen türlere göre filtrele. Eğer uygulama yalnızca QR kodları işliyorsa, ExpectBarcodeTypes = BarcodeEncoding.QRCode ayarlayın. Arama alanının kısıtlanması, işlem süresini azaltır ve arka plan grafiklerinde bulunan diğer sembolojilerden gelen yanlış pozitifleri ortadan kaldırır.
Sadece gerektiğinde ExpectMultipleBarcodes kullanın. Bunu true ayarlamak, okuyucunun her zaman ek geçişler yapmasına neden olur. Tek barkod girdileri için varsayılanı (false) bırakın, böylece ilk geçerli kod bulunduğunda tarama döner.
Boş sonuçları nazikçe yönetin. BarcodeReader.Read(), tespit edilen barkod olmadığında hata atmadan boş bir dizi döndürür. .Any() kontrol edin ve First()'e erişmeden önce kullanıcıya net bir mesaj sunun. Bir yeniden deneme istemiyle rehberlik sunmak ('barkodun iyi aydınlatılmış ve ortalandığından emin olun') genel bir hatadan daha iyi bir kullanıcı deneyimi sunar.
Seçenekler nesnesini önbelleğe alın. Tüm taramalarda bir BarcodeReaderOptions örneği oluşturmak tahsisatlar ekler. Seçenekleri sınıf seviyesinde bir kez oluşturun ve çağrılar arasında tekrar kullanın.
Tarama hatalarını teşhis etmek ve performansı optimize etmek için ek kılavuzluk için IronBarcode sorun giderme kılavuzu ve barkod okuyucu kılavuzunu inceleyin.
Sıradaki Adımlarınız Neler?
IronBarcode ile .NET MAUI barkod tarayıcı oluşturmak, tek bir NuGet paketi yüklemeyi, platform izinlerini yapılandırmayı ve bir dosya yolu veya akışla BarcodeReader.Read() çağrısını yapmayı gerektirir. Aynı API, platforma özgü kod dalları olmadan Android, iOS ve Windows'u hedef alır.
Uygulamayı daha da genişletmek için şunları göz önünde bulundurun:
- IronBarcode tam özellik listesi -- tüm tarama ve oluşturma yeteneklerinin kataloğu
- Barkod okuyucu API referansı -- tam yöntem ve özellik dokümantasyonu
- MAUI barkod okuyucu adım adım kılavuz -- kamera entegrasyonunu kapsayan genişletilmiş yürüyüş
- MAUI belge tarayıcı kılavuzu -- belge tarama kullanım durumları
Ücretsiz denemenizi başlatmak için bir geliştirme lisans anahtarı almak veya üretim dağıtımı için lisans seçeneklerini keşfetmek için.
Sıkça Sorulan Sorular
.NET MAUI nedir ve barkod taramayı entegre etmek neden zorludur?
.NET MAUI, tek bir kod tabanından Android, iOS ve Windows'u hedefleyen çapraz platform bir UI framework'tür. Barkod tarama, her platform farklı kamera ve depolama API'ları sunduğu için zordur. IronBarcode, sizin için platform farklarını yönen bir birleşik .NET API sunar.
.NET MAUI uygulamalarında IronBarcode hangi barkod formatlarını destekliyor?
IronBarcode, 30'dan fazla barkod sembolojisini destekler, QR Kod, Kod 128, Kod 39, EAN-13, EAN-8, UPC-A, UPC-E, Veri Matrisi, PDF417, Aztec ve ITF dahil. Belirli formatlara göre filtrelemek için BarcodeEncoding enumunu kullanın.
IronBarcode, bir .NET MAUI uygulamasında PDF dosyalarından barkod okuyabilir mi?
Evet. BarcodeReader.ReadPdf() yöntemi, bir PDF belgesinin tüm sayfalarını tarar ve bir BarcodeResult koleksiyonu döndürür. Her sonuç, barkod değeri, türü ve sayfa numarasını içerir.
IronBarcode, tüm .NET MAUI hedef platformlarında çalışır mı?
IronBarcode, Android, iOS ve Windows hedeflerini tek bir NuGet paketi kullanarak bir .NET MAUI projesinde destekler. Platforma özgü yerel SDK bağlamaları gerektirmez.
Tek bir resimden birden fazla barkodu nasıl tararsınız?
BarcodeReaderOptions içinde ExpectMultipleBarcodes = true olarak ayarlayın ve seçenekler nesnesini BarcodeReader.Read()'e geçirin. Okuyucu, resimdeki tüm barkodları algılamak için ek tarama geçişleri yapar.
ReadingSpeed.Faster ve ReadingSpeed.ExtraSlow arasındaki fark nedir?
ReadingSpeed.Faster, çıktıyı önceliklendirir ve yüksek kaliteli görseller için iyi çalışır. ReadingSpeed.ExtraSlow, daha agresif görüntü düzeltmesi uygular ve düşük kontrastlı, döndürülmüş veya kısmi olarak engellenmiş barkodlar gibi zorlu girdiler için uygundur.
IronBarcode, bir MemoryStream'den barkod okuyabilir mi?
Evet. BarcodeReader.Read(), MemoryStream, FileStream ve ağ akışlarını içeren bir System.IO.Stream parametresini kabul eder. Bu, hafızadaki görüntü verilerini diske yazmadan tarama yapmanıza olanak tanır.
IronBarcode kullanarak bir .NET MAUI uygulamasında QR kodu nasıl oluşturulur?
QRCodeWriter.CreateQrCode()'u hedef değer, boyut ve hata düzeltme seviyesi ile kullanın. Sonucu SaveAsPng() kullanarak bir PNG dosyası olarak kaydedin ve ImageSource.FromFile() kullanarak MAUI Görüntü kontrolünde görüntüleyin.
Bir .NET MAUI Android uygulamasında barkod taraması için hangi izinler gereklidir?
AndroidManifest.xml'e android.permission.READ_EXTERNAL_STORAGE ve android.permission.CAMERA ekleyin. iOS için, Info.plist'e NSPhotoLibraryUsageDescription ve NSCameraUsageDescription anahtarlarını ekleyin.




