C#'de Aynı Anda Birden Fazla Barkod Nasıl Okunur?

Birden Fazla Barkodu Aynı Anda Okuma C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode, lojistik, perakende ve envanter yönetimi uygulamaları için veri işlemlerini kolaylaştırarak, Birden Fazla Barkod Bekleniyor = true ayarlayarak görüntüler ve PDF'lerden aynı anda birden fazla barkodun okunmasını sağlar. Depo sistemleri, perakende satış noktası uygulamaları veya belge işleme çözümleri geliştirirken, IronBarcode'un gelişmiş okuma yetenekleri ihtiyaç duyduğunuz güvenilirliği ve performansı sağlar.

Hızlı Başlangıç: Bir Görüntüden Tüm Barkodları Kolayca Okuyun

Bu örnek, IronBarcode'un içerdiği her barkod için bir görüntüyü taramak için ne kadar hızlı kullanılabileceğini gösterir. Sadece istediğiniz barkod türleriyle birlikte Birden Fazla Barkod Bekleniyor = true ayarlayın—gereksiz kod yok, zorluk yok.

  1. IronBarcode aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package BarCode
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    var results = IronBarCode.BarcodeReader.Read("image.png", new IronBarCode.BarcodeReaderOptions { Birden Fazla Barkod Bekleniyor = true, ExpectBarcodeTypes = IronBarCode.BarcodeEncoding.AllOneDimensional });
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronBarcode kullanmaya başlayın

    arrow pointer


Görüntüden Birden Fazla Barkodu Nasıl Okurum?

Varsayılan olarak IronBarcode, bir belgeyi sürekli tarar ve birden fazla barkodu okur. Ancak, bazen birden fazla barkod mevcutken yalnızca bir barkod değeri döndürüldüğü durumlar yaşanmıştır. Bunu ele almak için, aşağıda gösterildiği gibi birden fazla barkodu okumayı etkinleştirici ayarları özelleştirin. ExpectMultipleBarcodes özelliği hem BarcodeReaderOptions hem de PdfBarcodeReaderOptions sınıflarında bulunmaktadır, bu nedenle hem görüntülerde hem de PDF belgelerinde barkod okumak için kullanabilirsiniz.

Farklı barkod biçimleri gösteren A, B ve C olarak etiketlenmiş üç örnek barkod, çoklu barkod okuma gösterimi için
:path=/static-assets/barcode/content-code-examples/how-to/read-multiple-barcodes-read-multiple-barcodes.cs
using IronBarCode;
using System;

// Set the option to read multiple barcodes
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
};

// Read barcode
var results = BarcodeReader.Read("testbc1.png", options);

foreach (var result in results)
{
    Console.WriteLine(result.ToString());
}
Imports IronBarCode
Imports System

' Set the option to read multiple barcodes
Private options As New BarcodeReaderOptions() With {
	.ExpectMultipleBarcodes = True,
	.ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional
}

' Read barcode
Private results = BarcodeReader.Read("testbc1.png", options)

For Each result In results
	Console.WriteLine(result.ToString())
Next result
$vbLabelText   $csharpLabel

ExpectMultipleBarcodes true olarak ayarlandığında IronBarcode, belgede birden fazla barkodu tarayabilir ve onları BarcodeResults değişkeninde saklayabilir. foreach döngüsü kullanarak tüm barkod değerlerine kolayca erişebilir ve konsola yazdırabilirsiniz.

Gelişmiş Çoklu Barkod Okuma Senaryoları

Birden fazla barkodla çalışırken, ek yapılandırma gerektiren senaryolarla karşılaşabilirsiniz. Bu karmaşık belgeden farklı formatlarda birden fazla barkodu nasıl okuyabileceğinizi gösteren kapsamlı bir örnek:

:path=/static-assets/barcode/content-code-examples/how-to/read-multiple-barcodes-3.cs
using IronBarCode;
using System;
using System.Linq;

// Configure advanced options for mixed barcode types
BarcodeReaderOptions advancedOptions = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = true,
    // Read both 1D and 2D barcodes
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional | BarcodeEncoding.QRCode | BarcodeEncoding.DataMatrix,
    // Apply image correction filters for better accuracy
    ImageFilters = new ImageFilterCollection() {
        new SharpenFilter(),
        new ContrastFilter()
    },
    // Set speed vs accuracy balance
    Speed = ReadingSpeed.Balanced
};

// Read barcodes from the image
var imageResults = BarcodeReader.Read("mixed-barcodes.jpg", advancedOptions);

// Process results with error handling
foreach (var result in imageResults)
{
    Console.WriteLine($"Barcode Type: {result.BarcodeType}");
    Console.WriteLine($"Value: {result.Value}");
    Console.WriteLine($"Page: {result.PageNumber}");
    Console.WriteLine("---");
}
Imports IronBarCode
Imports System
Imports System.Linq

' Configure advanced options for mixed barcode types
Dim advancedOptions As New BarcodeReaderOptions() With {
    .ExpectMultipleBarcodes = True,
    ' Read both 1D and 2D barcodes
    .ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional Or BarcodeEncoding.QRCode Or BarcodeEncoding.DataMatrix,
    ' Apply image correction filters for better accuracy
    .ImageFilters = New ImageFilterCollection() From {
        New SharpenFilter(),
        New ContrastFilter()
    },
    ' Set speed vs accuracy balance
    .Speed = ReadingSpeed.Balanced
}

' Read barcodes from the image
Dim imageResults = BarcodeReader.Read("mixed-barcodes.jpg", advancedOptions)

' Process results with error handling
For Each result In imageResults
    Console.WriteLine($"Barcode Type: {result.BarcodeType}")
    Console.WriteLine($"Value: {result.Value}")
    Console.WriteLine($"Page: {result.PageNumber}")
    Console.WriteLine("---")
Next
$vbLabelText   $csharpLabel

Bu gelişmiş örnek, birkaç önemli özelliği sergiler:

Tek Bir Barkodu Daha İyi Performans İçin Nasıl Okurum?

IronBarcode, görüntülerde veya PDF'lerde hem tek hem de birden fazla barkod okur. Varsayılan olarak, motor yalnızca bir barkod bulunsa bile tüm belgeyi tarar. Tek bir barkodu okurken performansı artırmak için ExpectMultipleBarcodes false olarak ayarlayın. Bu, motorun ilk barkodu algıladıktan sonra tüm belgeyi taramayı durdurarak daha hızlı barkod alımına olanak tanır. Aşağıdaki kod bu yaklaşımı gösterir.

Barkod okuma gösterimi için A, B ve C olarak etiketlenmiş üç özdeş örnek barkod
:path=/static-assets/barcode/content-code-examples/how-to/read-multiple-barcodes-read-single-barcode.cs
using IronBarCode;
using System;

// Set the option to read single barcode
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
};

// Read barcode
var results = BarcodeReader.Read("testbc1.png", options);

foreach (var result in results)
{
    Console.WriteLine(result.ToString());
}
Imports IronBarCode
Imports System

' Set the option to read single barcode
Private options As New BarcodeReaderOptions() With {
	.ExpectMultipleBarcodes = False,
	.ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional
}

' Read barcode
Private results = BarcodeReader.Read("testbc1.png", options)

For Each result In results
	Console.WriteLine(result.ToString())
Next result
$vbLabelText   $csharpLabel

Bu örnekte, daha önce olduğu gibi çoklu barkodlu aynı görüntüyü kullandık, ancak ExpectMultipleBarcodes'ı false olarak ayarladık. Sonuç olarak, yalnızca ilk barkod değeri döndürülür ve tarama işlemi ilk barkod alındığında durur.

Kırpma Bölgeleri ile Tek Barkod Okumayı Optimize Etme

Tekli barkodları okurken daha iyi performans için, Birden Fazla Barkod Bekleniyor = false ayarını kırpma bölgesi özellikleri ile birleştirin. Bu teknik, barkodun yaklaşık konumunu bildiğinizde özellikle kullanışlıdır:

:path=/static-assets/barcode/content-code-examples/how-to/read-multiple-barcodes-5.cs
using IronBarCode;
using IronSoftware.Drawing;

// Define a crop region where the barcode is likely located
var cropRegion = new Rectangle(100, 100, 300, 200);

// Configure options for optimal single barcode reading
BarcodeReaderOptions optimizedOptions = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.Code128,
    CropArea = cropRegion,
    Speed = ReadingSpeed.Faster
};

// Read with optimized settings
var result = BarcodeReader.Read("product-label.png", optimizedOptions).FirstOrDefault();

if (result != null)
{
    Console.WriteLine($"Barcode found: {result.Value}");
}
Imports IronBarCode
Imports IronSoftware.Drawing

' Define a crop region where the barcode is likely located
Dim cropRegion As New Rectangle(100, 100, 300, 200)

' Configure options for optimal single barcode reading
Dim optimizedOptions As New BarcodeReaderOptions() With {
    .ExpectMultipleBarcodes = False,
    .ExpectBarcodeTypes = BarcodeEncoding.Code128,
    .CropArea = cropRegion,
    .Speed = ReadingSpeed.Faster
}

' Read with optimized settings
Dim result = BarcodeReader.Read("product-label.png", optimizedOptions).FirstOrDefault()

If result IsNot Nothing Then
    Console.WriteLine($"Barcode found: {result.Value}")
End If
$vbLabelText   $csharpLabel

Tek Barkod Okuma Ne Kadar Hızlıdır?

Birden Fazla Barkod Bekleniyor = false ayarlanması, tek barkodları okumanın verimliliğini büyük ölçüde artırır. Performans artışı, özellikle yüksek çözünürlüklü görüntülerle çalışırken veya yüksek verimli uygulamalarda asenkron barkod okuma uygulanırken farkedilir.

Verilen kod parçasını kullanarak, aynı makinede Birden Fazla Barkod Bekleniyor = true ayarlanması ve false arasında performans farkının kaba bir tahmini:

Birden Fazla Barkod Bekleniyor = true Birden Fazla Barkod Bekleniyor = false
00.91 saniye 00.10 saniye

Bu, tek barkod okuma sırasında yaklaşık 9 kat performans iyileştirmesini temsil eder. Gerçek performans kazancı aşağıdakilere bağlı olarak değişir:

  • Görüntü çözünürlüğü ve karmaşıklığı
  • Görüntüde mevcut barkod sayısı
  • Seçilen barkod formatları
  • Uygulanan görüntü filtreleri
  • Donanım özellikleri

Çoklu Barkod Okuma için En İyi Uygulamalar

Üretim uygulamalarında çoklu barkod okuma uygularken, bu en iyi uygulamaları göz önünde bulundurun:

  1. Beklenen Barkod Türlerini Belirtin: BarcodeEncoding.All kullanmak yerine, yalnızca beklediğiniz formatları belirtin. Bu, performansı önemli ölçüde iyileştirir.

  2. Uygun Görüntü Formatlarını Kullanın: En iyi sonuçlar için yüksek kontrastlı görüntüler kullanın. Optimum barkod görüntüleri oluşturmaya dair daha fazlasını öğrenin.

  3. Kusurlu Barkodlarla Baş Etme: Gerçek dünya barkodları hasarlı veya kötü basılmış olabilir. Okuma başarı oranlarını artırmak için görüntü düzeltme tekniklerini kullanın.

  4. Akış İşleme: Büyük partiler için, bellek kullanımını optimize etmek adına akışlardan okuma yöntemini düşünün.

  5. Hata Yönetimi: Barkodların okunamadığı senaryolar için her zaman uygun hata yönetimi uygulayın:
:path=/static-assets/barcode/content-code-examples/how-to/read-multiple-barcodes-6.cs
try
{
    var results = BarcodeReader.Read("barcodes.png", new BarcodeReaderOptions 
    { 
        ExpectMultipleBarcodes = true 
    });
    
    if (!results.Any())
    {
        Console.WriteLine("No barcodes found in the image");
    }
    else
    {
        Console.WriteLine($"Found {results.Count()} barcodes");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Error reading barcodes: {ex.Message}");
    // Log error for debugging
}
Imports System

Try
    Dim results = BarcodeReader.Read("barcodes.png", New BarcodeReaderOptions With {
        .ExpectMultipleBarcodes = True
    })

    If Not results.Any() Then
        Console.WriteLine("No barcodes found in the image")
    Else
        Console.WriteLine($"Found {results.Count()} barcodes")
    End If
Catch ex As Exception
    Console.WriteLine($"Error reading barcodes: {ex.Message}")
    ' Log error for debugging
End Try
$vbLabelText   $csharpLabel

Bu uygulamaları izleyerek ve IronBarcode'un kapsamlı özelliklerini kullanarak, çeşitli endüstriler ve kullanım durumları arasında çoklu barkod okuma senaryolarını verimli bir şekilde ele alan sağlam uygulamalar oluşturabilirsiniz.

Sıkça Sorulan Sorular

C# 'ta tek bir görüntüden birden çok barkod nasıl okunur?

IronBarcode ile, BarcodeReaderOptions'da ExpectMultipleBarcodes = true ayarlayarak tek bir görüntüden birden çok barkod okuyabilirsiniz. Bu, IronBarcode'un tüm belgeyi taramasını ve bir BarcodeResults koleksiyonunda bulduğu tüm barkodları döndürmesini sağlar. Bu, daha sonra kolejda gezdirilebilir.

Bir görüntüdeki tüm barkodları taramanın en hızlı yolu nedir?

En hızlı yaklaşım, IronBarcode'un ExpectMultipleBarcodes = true olan Read yöntemini kullanmaktır: var results = IronBarCode.BarcodeReader.Read("image.png", new IronBarCode.BarcodeReaderOptions { ExpectMultipleBarcodes = true }). Bu minimal kod, karmaşık yapılandırma olmadan tüm barkod değerlerini çıkartır.

PDF belgelerden olduğu gibi görüntülerden çoklu barkod okuyabilir miyim?

Evet, IronBarcode hem görüntü hem de PDF belgelerinden çoklu barkod okumayı destekler. ExpectMultipleBarcodes özelliği hem BarcodeReaderOptions hem de PdfBarcodeReaderOptions sınıflarında mevcuttur, böylece herhangi bir belge türü için çoklu barkod okuma konfigüre edebilirsiniz.

ExpectMultipleBarcodes'u true olarak ayarlamazsam ne olur?

Varsayılan olarak, IronBarcode belgeleri çoklu barkodları için sürekli olarak tarar. Ancak, bazı durumlarda, birden fazla barkod mevcut olduğunda yalnızca bir barkod değeri döndürülebilir. ExpectMultipleBarcodes = true açıkça ayarlamak, IronBarcode'un belge içindeki tüm barkodları taramasını ve döndürmesini sağlar.

Birden çok barkod okuduktan sonra ayrı barkod değerlerine nasıl erişirim?

IronBarcode ile birden fazla barkod okuduktan sonra, sonuçlar bir BarcodeResults değişkenine kaydedilir. Her bir barkodun değerini, metnini ve format özelliklerini işlemek için koleksiyonda bir foreach döngüsü kullanarak kolayca erişebilirsiniz.

Perakende ve lojistik uygulamalarında birden fazla barkod okumak uygun mu?

Evet, IronBarcode'un çoklu barkod okuma yeteneği, perakende satış noktası sistemleri, depo yönetimi, lojistik takibi ve envanter yönetimi uygulamaları için idealdir. Sevk etiketlerinde, ürün kataloglarında veya envanter cetvellerinde tüm barkodları aynı anda tarayarak veri işlemlerini hızlandırır.

Birden fazla barkodu okurken hangi barkod türlerini arayacağını belirtebilir miyim?

Evet, IronBarcode, BeklenenBarkodTürleri özelliği kullanılarak beklenen barkod türlerini belirtmenize olanak tanır. Tarama performansını optimize etmek için, AllOneDimensional, QRCode veya desteklenen barkod türlerinden herhangi bir kombinasyonu taramak üzere ayarlayabilirsiniz.

ExpectMultipleBarcodes'un ayarlanması tarama performansını etkiler mi?

Bir belgede yalnızca bir barkodun bulunduğunu bildiğinizde, ExpectMultipleBarcodes = false ayarlamak performansı artırabilir. IronBarcode, ilk barkodu bulduktan sonra taramayı durdurur ve bu tek barkod içeren senaryolar için daha hızlı olmasını sağlar, ancak gerektiğinde çoklu barkod okumayı da mümkündür.

Bir projede IronBarcode'u uygulamak için hangi programlama becerileri gereklidir?

IronBarcode'u bir projede uygulamak için temel C# programlama bilgisi yeterlidir, çünkü bu kütüphane, geliştiricilere rehberlik eden basit yöntemler ve kapsamlı belgeler sağlar.

IronBarcode, hem küçük projeler hem de büyük kurumsal uygulamalar için uygun mu?

IronBarcode, küçük projeler kadar geniş çaplı kurumsal uygulamalar için de uygun, ölçeklenebilir ve çok yönlü olacak şekilde tasarlanmıştır ve sağlam barkod çözümleri gerektiren uygulamalara hizmet eder.

Hairil Hasyimi Bin Omar
Yazılım Mühendisi
Tüm harika mühendisler gibi, Hairil de hevesli bir öğrenicidir. C#, Python ve Java bilgilerini geliştirerek, bu bilgileri Iron Software genelinde ekip üyelerine değer katmak için kullanıyor. Hairil, Malay'daki Universiti Teknologi MARA'dan Kimya ve Süreç Mühendisliği alanında lisans derecesi ile Iron ...
Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 2,331,688 | 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 BarCode
bir örnek çalıştır dizginizin barkoda dönüştüğünü izle.