Altbilgi içeriğine atla
IRONBARCODE KULLANARAK

C#'ta bir .NET MAUI Barkod Tarayıcı Nasıl Oluşur?

IronBarcode, .NET MAUI uygulamanızın içerisinden doğrudan resim dosyalarından barkod taramanıza olanak tanır -- kamera akışı, sürücü yapılandırması veya platforma özgü izin döngüleri gerekmez.

JPEG, PNG, GIF, TIFF ve BMP dosyalarından barkodları tek bir yöntem çağrısıyla tarayabilirsiniz. Aynı kod, değişiklik yapmadan Windows, Android ve iOS'u hedefler. Yukarıdaki kod örneklerini takip etmek için ücretsiz deneme ile başlayın.

Barkod Tarama için Bir .NET MAUI Projesi Nasıl Oluşturulur?

Visual Studio'da bir .NET MAUI projesi kurmak oldukça basittir. Visual Studio 2022 veya daha yenisini başlatın, Yeni bir proje oluşturun seçeneğini seçin, .NET MAUI Uygulaması şablonunu seçin, proje adınızı girin ve hedef platformlarınızı seçin. Bu eğitim Windows dağıtımına odaklanır, ancak aynı proje Android ve iOS üzerinde de çalışır. .NET MAUI, C# ve XAML kullanarak tek bir ortak kod tabanı üzerinden yerel mobil ve masaüstü uygulamalar oluşturmaya yönelik Microsoft'un çok platformlu framework'üdür.

Kamera tabanlı çözümler gibi CameraView ayarları ve MauiProgram.cs kaydı gerektiren ZXing.Net.MAUI'den farklı olarak, IronBarcode özel bir yapılandırma gerektirmez. Sizin MauiProgram.cs varsayılan şablon durumunda kalır. Bu, başlangıç kodunuzu üçüncü taraf işleyici kayıtlarından özgür tutar ve başlangıç zamanında oluşabilecek hata riski alanını azaltır.

IronBarcode'u yüklemek için Paket Yöneticisi Konsolu'nda bu komutu çalıştırın:

Install-Package BarCode

Bu tek paket, barkod tarama, QR kod tanıma, çoklu barkod algılama ve barkod oluşturma imkanı sunar. Ek bağımlılıklar gerekmez.

IronBarcode'u üretimde etkinleştirmek için lisans anahtarınızı App.xaml.cs veya MauiProgram.cs içerisine ayarlayın:

IronBarCode.License.LicenseKey = "YOUR_IRONBARCODE_LICENSE_KEY";
IronBarCode.License.LicenseKey = "YOUR_IRONBARCODE_LICENSE_KEY";
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR_IRONBARCODE_LICENSE_KEY"
$vbLabelText   $csharpLabel

Bir anahtarı IronBarcode lisans sayfası'ndan alabilir veya ücretsiz deneme lisansı ile başlayabilirsiniz.

Görüntü Tabanlı Tarama için İzinler Nasıl Farklılık Gösterir?

Geleneksel kamera tabanlı barkod tarayıcılar, platform manifestlerinde açık izinler gerektirir. Android'de, AndroidManifest.xml eklemeniz gerekiyor:

  • <uses-permission android:name="android.permission.CAMERA" />
  • <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

iOS'ta, NSCameraUsageDescription'i Info.plist'te beyan edersiniz. Çalışma zamanında reddedilen izinlerin ele alınması, gözden kaçması kolay hata yolları ekler.

IronBarcode bir kamera önizlemesi yerine bir dosya akışından okuduğu için, sadece dosya sistemine erişim ihtiyacınız var. Windows'ta bu otomatik olarak sağlanır. Android ve iOS'ta, kullanıcı bir resim seçtiğinde kullanıcı onayını FilePicker yönetir -- manuel izin talepleri gerekmez.

Bir MAUI Barkod Tarayıcı için Hangi XAML Arayüzü En İyi Çalışır?

Çoğu barkod tarama senaryosunu kapsayan minimal bir arayüz -- bir resim seçici düğmesi, bir resim görüntüleme alanı ve bir sonuçlar etiketi içerir. .NET MAUI ContentPage için bu düzeni oluşturan aşağıdaki XAML:

<?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">
    <ScrollView>
        <VerticalStackLayout Spacing="20" Padding="30">
            <Label Text="MAUI Barcode Scanner"
                   FontSize="24"
                   HorizontalOptions="Center" />
            <Button x:Name="SelectImageBtn"
                    Text="Select Image File"
                    Clicked="OnSelectImage" />
            <Image x:Name="SelectedImageDisplay"
                   HeightRequest="250" />
            <Label x:Name="ResultsLabel"
                   Text="Barcode results will appear here" />
        </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"
             x:Class="BarcodeScanner.MainPage">
    <ScrollView>
        <VerticalStackLayout Spacing="20" Padding="30">
            <Label Text="MAUI Barcode Scanner"
                   FontSize="24"
                   HorizontalOptions="Center" />
            <Button x:Name="SelectImageBtn"
                    Text="Select Image File"
                    Clicked="OnSelectImage" />
            <Image x:Name="SelectedImageDisplay"
                   HeightRequest="250" />
            <Label x:Name="ResultsLabel"
                   Text="Barcode results will appear here" />
        </VerticalStackLayout>
    </ScrollView>
</ContentPage>
XML

Düzen, dosya seçiciyi tetiklemek için bir düğme, seçilen görüntü için bir görüntüleme alanı ve çözümlenmiş barkod değerleri için bir etiket sunar. Tüm .NET MAUI hedef platformlarında platforma özgü ayarlamalar yapmadan doğru bir şekilde işler.

Üretim uygulamaları için, birden fazla barkod sonucunu kaydırılabilir bir listede görüntülemek için, özellikle birden fazla barkod içeren belgeleri tararken, ResultsLabel'i CollectionView ile değiştirmeyi düşünün.

.NET MAUI'de Görüntü Dosyalarından Barkodları Nasıl Tararsınız?

MainPage.xaml.cs içindeki arka plan kodu, resim seçimini ve barkod okumayı yönetir. BarcodeReader.Read bir dosya yolunu kabul eder ve bir BarcodeResults koleksiyonu döndürür. Koleksiyondaki her öğe barkod Value, BarcodeType ve konum koordinatlarını açığa çıkarır.

İşte tam uygulama:

using IronBarCode;
namespace BarcodeScanner;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    private async void OnSelectImage(object sender, EventArgs e)
    {
        try
        {
            // Open the system file picker filtered to image types
            var result = await FilePicker.PickAsync(new PickOptions
            {
                FileTypes = FilePickerFileType.Images,
                PickerTitle = "Select a barcode image"
            });

            if (result != null)
            {
                // Display the selected image in the UI
                var stream = await result.OpenReadAsync();
                SelectedImageDisplay.Source = ImageSource.FromStream(() => stream);

                // Decode all barcodes found in the image
                var barcodes = BarcodeReader.Read(result.FullPath);

                if (barcodes.Count > 0)
                {
                    // Build a display string listing each barcode type and value
                    string output = string.Join("\n",
                        barcodes.Select(b => $"{b.BarcodeType}: {b.Value}"));
                    ResultsLabel.Text = output;
                }
                else
                {
                    ResultsLabel.Text = "No barcodes detected in image";
                }
            }
        }
        catch (Exception ex)
        {
            ResultsLabel.Text = $"Error: {ex.Message}";
        }
    }
}
using IronBarCode;
namespace BarcodeScanner;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    private async void OnSelectImage(object sender, EventArgs e)
    {
        try
        {
            // Open the system file picker filtered to image types
            var result = await FilePicker.PickAsync(new PickOptions
            {
                FileTypes = FilePickerFileType.Images,
                PickerTitle = "Select a barcode image"
            });

            if (result != null)
            {
                // Display the selected image in the UI
                var stream = await result.OpenReadAsync();
                SelectedImageDisplay.Source = ImageSource.FromStream(() => stream);

                // Decode all barcodes found in the image
                var barcodes = BarcodeReader.Read(result.FullPath);

                if (barcodes.Count > 0)
                {
                    // Build a display string listing each barcode type and value
                    string output = string.Join("\n",
                        barcodes.Select(b => $"{b.BarcodeType}: {b.Value}"));
                    ResultsLabel.Text = output;
                }
                else
                {
                    ResultsLabel.Text = "No barcodes detected in image";
                }
            }
        }
        catch (Exception ex)
        {
            ResultsLabel.Text = $"Error: {ex.Message}";
        }
    }
}
Imports IronBarCode

Namespace BarcodeScanner

    Public Partial Class MainPage
        Inherits ContentPage

        Public Sub New()
            InitializeComponent()
        End Sub

        Private Async Sub OnSelectImage(sender As Object, e As EventArgs)
            Try
                ' Open the system file picker filtered to image types
                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 in the UI
                    Dim stream = Await result.OpenReadAsync()
                    SelectedImageDisplay.Source = ImageSource.FromStream(Function() stream)

                    ' Decode all barcodes found in the image
                    Dim barcodes = BarcodeReader.Read(result.FullPath)

                    If barcodes.Count > 0 Then
                        ' Build a display string listing each barcode type and value
                        Dim output As String = String.Join(vbCrLf, barcodes.Select(Function(b) $"{b.BarcodeType}: {b.Value}"))
                        ResultsLabel.Text = output
                    Else
                        ResultsLabel.Text = "No barcodes detected in image"
                    End If
                End If
            Catch ex As Exception
                ResultsLabel.Text = $"Error: {ex.Message}"
            End Try
        End Sub
    End Class

End Namespace
$vbLabelText   $csharpLabel

BarcodeReader.Read verilen yoldaki dosyayı işler, mevcut tüm barkod sembolojilerini otomatik olarak tespit eder ve sonuçları hemen döndürür. Bu yöntem, Code 128, Code 39, QR Code, Data Matrix, PDF417 ve EAN-13 dahil olmak üzere tüm büyük 1D ve 2D barkod formatlarını destekler.

FilePicker.PickAsync çağrısı, kullanıcıların yanlışlıkla resim olmayan dosyaları seçmesini önlemek için seçiciyi resim türleriyle sınırlar. result null ise, kullanıcı iptal etti demektir -- if (result != null) koruması bunu sessizce idare eder.

Taranan Sonuçları Bir Diyalog Kutusunda Nasıl Gösterirsiniz?

Kısa onay mesajları için, DisplayAlert ek UI elemanları gerektirmeden bir modül diyalog kutusu sağlar:

private async void ShowScanSummary(BarcodeResults barcodes)
{
    if (barcodes.Count > 0)
    {
        // Inform the user how many barcodes were detected
        string message = $"Found {barcodes.Count} barcode(s) in the image.";
        await DisplayAlert("Scan Complete", message, "OK");
    }
    else
    {
        await DisplayAlert("No Results", "No barcodes were found in the image.", "OK");
    }
}
private async void ShowScanSummary(BarcodeResults barcodes)
{
    if (barcodes.Count > 0)
    {
        // Inform the user how many barcodes were detected
        string message = $"Found {barcodes.Count} barcode(s) in the image.";
        await DisplayAlert("Scan Complete", message, "OK");
    }
    else
    {
        await DisplayAlert("No Results", "No barcodes were found in the image.", "OK");
    }
}
Private Async Sub ShowScanSummary(barcodes As BarcodeResults)
    If barcodes.Count > 0 Then
        ' Inform the user how many barcodes were detected
        Dim message As String = $"Found {barcodes.Count} barcode(s) in the image."
        Await DisplayAlert("Scan Complete", message, "OK")
    Else
        Await DisplayAlert("No Results", "No barcodes were found in the image.", "OK")
    End If
End Sub
$vbLabelText   $csharpLabel

Bu desen, basit onay akışları için iyi çalışır. Çözümlenen değerlere göre harekete geçmesi gereken uygulamalar için -- örneğin, bir barkod envanter yönetim sisteminde bir ürünün barkodunu aramak gibi -- barcodes koleksiyonunu iş mantığı katmanınıza doğrudan OnSelectImage işlemcisinden iletin.

Birden Fazla Barkodu Nasıl Tarar ve Tespit Hızını Nasıl Ayarlarsınız?

Bir resim birden fazla barkod içerdiğinde, IronBarcode varsayılan olarak hepsini algılar. Hangi formatların beklenildiğini biliyorsanız ve daha iyi performans istiyorsanız, BarcodeReaderOptions'i BarcodeReader.Read çağrılmadan önce yapılandırın:

using IronBarCode;

// Target only QR codes and Code 128 for faster detection
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;

// Target only QR codes and Code 128 for faster detection
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

' Target only QR codes and Code 128 for faster detection
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
$vbLabelText   $csharpLabel

ExpectBarcodeTypes özelliği tespit motorunu belirtilen sembolojilere daraltır. Speed'i ReadingSpeed.Faster olarak ayarlamak, yüksek kontrastlı, bozulmamış görüntüler için uygundur. ReadingSpeed.Detailed, ek görüntü düzeltme geçişleri uygular ve döndürme, eğim ve düşük çözünürlük girdilerini ek işlem süresi karşılığında işler.

ExpectMultipleBarcodes = true okuma işlemini erken dönmek yerine ilk eşleşmeden sonra taramaya devam etmesini söyler. Tek barkodlu senaryolarda, bu seçeneği devre dışı bırakmak, her taramadan birkaç milisaniye tasarruf sağlar.

Bu yapılandırma, tarayıcıyı bir dizi uygulama için pratik hale getirir: ürün barkodlarını okuyan bir perakende uygulaması, gönderi fotoğraflarındaki basılı barkod etiketlerini işleyen bir depo aracı veya yüklenen faturalar üzerindeki QR kodlarını çıkaran bir belge iş akışı.

Zorlayıcı veya Düşük Kaliteli Görselleri Nasıl Yönetirsiniz?

Üretim görüntüleri nadiren kusursuz olur. Sert ışıklandırma altında çekilmiş depo fotoğrafları, e-posta istemcilerinden alınan ekran görüntüleri ve taranmış belgeler, gürültü, sıkıştırma hataları ve geometrik bozulmaları beraberinde getirir. IronBarcode, kod çözmeden önce resimleri önceden işlemek için ImageFilterCollection'i açığa çıkarır.

using IronBarCode;
using IronSoftware.Drawing;

// Apply corrections for a low-quality warehouse photo
var options = new BarcodeReaderOptions
{
    ImageFilters = new ImageFilterCollection
    {
        new SharpenFilter(),
        new ContrastFilter(1.2f),
        new DenoiseFilter()
    },
    Speed = ReadingSpeed.Detailed
};

var barcodes = BarcodeReader.Read(imagePath, options);
using IronBarCode;
using IronSoftware.Drawing;

// Apply corrections for a low-quality warehouse photo
var options = new BarcodeReaderOptions
{
    ImageFilters = new ImageFilterCollection
    {
        new SharpenFilter(),
        new ContrastFilter(1.2f),
        new DenoiseFilter()
    },
    Speed = ReadingSpeed.Detailed
};

var barcodes = BarcodeReader.Read(imagePath, options);
Imports IronBarCode
Imports IronSoftware.Drawing

' Apply corrections for a low-quality warehouse photo
Dim options As New BarcodeReaderOptions With {
    .ImageFilters = New ImageFilterCollection From {
        New SharpenFilter(),
        New ContrastFilter(1.2F),
        New DenoiseFilter()
    },
    .Speed = ReadingSpeed.Detailed
}

Dim barcodes = BarcodeReader.Read(imagePath, options)
$vbLabelText   $csharpLabel

SharpenFilter sıkıştırılmış veya odak dışı yakalamalardan kenar tanımını kurtarır. ContrastFilter ışığın düzensiz olduğu durumlarda yardımcı olur. DenoiseFilter düşük çözünürlüklü taramalardan gelen lekeleri azaltır. Bu filtreleri ReadingSpeed.Detailed ile birleştirmek, zorlu materyallerde okuma oranlarını en üst düzeye çıkarır.

.NET MAUI uygulamaları kullanıcı tarafından yüklenen görüntüleri çeşitli kaynaklardan kabul ediyorsa, varsayılan olarak muhafazakar bir filtre seti uygulamak ve ikinci bir denemede daha agresif bir düzeltmeye çıkmak, yaygın durumda görünür bir gecikme eklemeden kullanıcı deneyimini iyileştirir. Ayrıca, bir Uri veya byte[]'i direkt olarak BarcodeReader.Read'ye iletebilirsiniz, bu dosya sisteminden ziyade bir ağ yanıtından gelen görüntüler için kullanışlıdır. IronBarcode kullanım kılavuzlarına ek girdi kaynak örnekleri için bakın.

Görüntü Tabanlı Tarama Neden .NET MAUI Uygulamaları İçin Uygundur?

Canlı kamera taraması, bir CameraView kontrolü üzerinden platforma özgü izinler, kamera önizleme için yaşam döngüsü yönetimi ve odak olaylarının ele alınmasını gerektirir. iOS'ta bu AVCaptureSession'yi de yapılandırmak anlamına gelir; Android'de, CameraX. Her platform kendi hata modlarını ekler.

Görüntü tabanlı tarama, bu endişe kategorisinin tamamını ortadan kaldırır. IronBarcode API referansı, BarcodeReader.Read'in bir dosya yolu, Stream, Bitmap veya byte[] kabul ettiğini gösterir -- MAUI uygulamanızın üretebileceği herhangi bir temsil. Bu, görüntü FilePicker, bir ağ indirmesi, bit eşlemine dönüştürülmüş bir PDF sayfası veya bir e-posta eki olup olmadığını aynı tarama mantığının çalıştığı anlamına gelir.

Kamera donanımı kapalı kaldığı için pil tüketimi daha düşüktür. Canlı önizlemeden kaynaklanan bir kullanıcı arayüzü titreşimi yoktur ve uygulama askıya alınıp tekrar başladığında kamera yaşam döngüsü olaylarını yönetmeye gerek yoktur. Tablet ve masaüstü form faktörlerinde -- bir canlı kamera vizörünün nadiren uygun olduğu yerlerde -- görüntü tabanlı kod çözme doğal varsayılandır, bir uzlaşma değil. Kullanıcılar, cihaz türünden bağımsız olarak bulut depolama, yerel klasörler veya kamera rulolarından dosyaları aynı FilePicker çağrısı ile açabilirler.

Kullanıcıların barkod etiketlerini fotoğraflayıp yüklediği iş akışları için -- ASP.NET barkod tarayıcı web uygulamalarında yaygın -- aynı BarcodeReader.Read çağrısı hem mobil istemcide hem de sunucuda çalışır, iki tarama uygulamasını sürdürme gereğini ortadan kaldırır.

IronBarcode, ZXing.Net.MAUI ile Nasıl Karşılaştırılır?

ZXing.Net.MAUI, canlı kamera taramayı hedefler ve bir ürün gereksinimi olarak gerçek zamanlı vizör geri bildirimi gerektiğinde iyi çalışır. CameraView entegrasyonu, platform işlemci kaydı ve çalışma zamanı izin talepleri gerektirir.

IronBarcode, çoğu kurumsal doküman iş akışını kapsayan dosya tabanlı ve akış tabanlı kod çözmeyi hedefler. Daha geniş bir semboloji yelpazesini destekler; buna PDF417, Data Matrix ve Code 128 dahildir ve ZXing tarafından sunulmayan görüntü filtreleme ön işleme sağlar. Kullanıcıların nesneleri canlı olarak taramak yerine görüntü yakaladıkları veya yükledikleri uygulamalar için IronBarcode daha doğrudan bir uyum sağlar.

Uygulamanızın, dosya tabanlı kod çözmenin yanı sıra canlı kamera taramasına da ihtiyacı varsa, her iki kütüphaneyi birleştirebilirsiniz: vizör iş akışı için ZXing.Net.MAUI ve toplu dosya işleme için IronBarcode.

Sonraki Adımlarınız Neler?

IronBarcode ile bir .NET MAUI barkod tarayıcı oluşturmak, 30 satırdan az C# kodu gerektirir. Resim dosyası yaklaşımı, MAUI kod tabanınızı kamera izin mantığından ve platforma özgü başlangıç kodlarından arındırır, ve aynı tarama çağrısı Windows, Android ve iOS'ta aynı şekilde çalışır.

IronBarcode API dökümantasyonu, ek yetenekler içerir: PDF belgelerinden barkod okuma, birden fazla resmi toplu işleme, özel görüntü filtreleri yazma ve barkodları okumayla birlikte oluşturma. Özellikler genel bakışı, desteklenen her sembol ve formatı listeler.

Ücretsiz deneme başlatın ve projenizde IronBarcode'u test edin veya üretim dağıtımı için hazır olduğunuzda bir lisans satın alın.

Şimdi IronBarcode ile başlayın.
green arrow pointer

Sıkça Sorulan Sorular

.NET MAUI'de kamera olmadan barkod tarayıcı nasıl oluşturulur?

IronBarcode'u NuGet üzerinden yükleyin (`Install-Package BarCode`), ardından `FilePicker.PickAsync`'ten elde edilen yol ile `BarcodeReader.Read(filePath)` çağrısını yapın. Kamera izinleri veya `CameraView` kurulumu gerekmez.

IronBarcode, .NET MAUI'de Android ve iOS'ta barkod tarıyor mu?

Evet. Aynı `BarcodeReader.Read` çağrısı Windows, Android ve iOS'ta platforma özgü kod yolları veya manifesto değişiklikleri olmadan çalışır.

IronBarcode, barkod tarama için hangi resim formatlarını destekliyor?

IronBarcode, JPEG, PNG, GIF, TIFF ve BMP dosyalarından barkodları okur. Ayrıca `Stream`, `Bitmap` ve `byte[]` girişlerini kabul eder, böylece ağ yanıtlarından gelen görüntüler önce diske yazılmadan çalışır.

.NET MAUI'de tek bir resimden birden fazla barkodu nasıl tararsınız?

`BarcodeReaderOptions` içinde `ExpectMultipleBarcodes = true` ayarlayın ve seçenekleri `BarcodeReader.Read`'e iletin. Okuyucu, tek bir `BarcodeResults` koleksiyonu içinde algılanan tüm barkodları döndürür.

IronBarcode ile ZXing.Net.MAUI arasındaki fark nedir?

ZXing.Net.MAUI, bir `CameraView` kontrolü aracılığıyla canlı kamera taramasını hedefler. IronBarcode, dosya tabanlı ve akış tabanlı kod çözmeyi hedefler, daha fazla semboloji destekler (PDF417 ve Veri Matrisi dahil) ve düşük kaliteli girdiler için resim filtre ön işleme sağlar.

Bulanık veya düşük kaliteli görüntülerde barkod algılamayı nasıl geliştirebilirsiniz?

Bir `ImageFilterCollection`'ı `BarcodeReaderOptions`'a `SharpenFilter`, `ContrastFilter` ve `DenoiseFilter` ile ekleyin ve `Speed = ReadingSpeed.Detailed` olarak ayarlayın. Bu, kod çözme geçişinden önce görüntü düzeltmeleri uygular.

IronBarcode, .NET MAUI'de hangi barkod formatlarını destekliyor?

IronBarcode, tüm büyük 1D ve 2D sembolojileri destekler: Code 128, Code 39, QR Code, Veri Matrisi, PDF417, EAN-13, EAN-8, UPC-A, UPC-E, Aztec ve daha fazlası. Tam liste IronBarcode özellik sayfasında yer almaktadır.

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

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara