IronBarcode ile C#'ta Okuma Hizini Ayarlama

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

IronBarcode, C# dilinde barkod okurken işlem hızı ile doğruluk arasındaki dengeyi kontrol etmenizi sağlayan dört okuma hızı seçeneği sunar (Faster, Balanced, Detailed, ExtremeDetail) ve Balanced çoğu uygulama için önerilen başlangıç noktasıdır.

Giriş

Barkod okurken dogruluk buyuk veri setleri icin onemlidir, ancak kaynak ayrimi ve işleme verimliligi de es anlamli onemde dusunulmelidir. Giris resimlerinin kalitesi, barkod okuyucusunun bunlari nasıl işlemesi gerektigini belirler—acik resimler icin on işlemeyi atlamak veya bozulmus barkodlar icin dogrulugu arttirmak icin daha fazla kaynak gerektiren seçenekler kullanmak.

IronBarcode, her acisindan barkod okuma surecini kontrol etmenize olanak tanir, işlem hizi ve dogruluk seviyesi secme esnekligi sunar. Giris resimlerinize ve mevcut kaynaklariniza gore karar alabilirsiniz. Daha ileri barkod okuma senaryolari icin, kapsamli barkod okuma tutorial'imizi araştırin, farkli formatlar ve teknikleri kapsar.

Bu makale, farkli senaryolar icin optimal okuma hizi secimi icin rehberlik saglar. Okuma hizinin degismesinin sonuclari nasıl etkiledigini gösterme icin QR kod örneklerini kullanacagiz. Özellikle QR kodlariyla calisiyorsaniz, test örnekleri oluşturmak icin C# QR Kod Oluşturucu tutorial'imize bakin.

Hizlibaslangic: Dengeli Hizda Bir Barkod Okuyun

Taramanız için anında Speed seviyesini ayarlamak için IronBarcode'un BarcodeReaderOptions kullanın. Bu örnek, hızlı ve güvenilir sonuçlar için Balanced ayarını kullanarak barkodları hızlı bir şekilde nasıl okuyacağınızı gösteriyor.

  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/BarCode yükleyin

    PM > Install-Package BarCode
  2. Bu kod parçasını kopyalayıp çalıştırın.

    var results = IronBarCode.BarcodeReader.Read("path/to/image.png", new IronBarCode.BarcodeReaderOptions { Speed = IronBarCode.ReadingSpeed.Balanced });
  3. Canlı ortamınızda test etmek için dağıtın

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

    arrow pointer


Farkli Okuma Hizi Sececekleri Neler?

IronBarcode dört ReadingSpeed seçeneği sunar: Faster, Balanced, Detailed ve ExtremeDetail. Kutuphane yeteneklerini göstermek icin cogunlukla bozulmus barkod resimleri olan ve birkac berrak resim iceren bir örnek seti ile her secenegi inceleyecegiz. Desteklenen formatlarin tam listesi icin desteklenen barkod formatlari sayfasini ziyaret edin.

Her secenegin nasıl karsilastigini göstermek ve her okuma hizi icin ideal senaryolari belirlemek icin bir .NET benchmark library kullanarak işleme zamani ve bellek kullanimini olcecegiz. Benchmarking kodunu ve bozuk barkodlarin basariyla nasıl sayildiginin basit bir metodunu gösterecegiz. Okuyucu seçeneklerini ayarlama ile ilgili daha fazla bilgi icin barkod okuyucu ayarlari ornegimize bakin.

Daha Hizli Hizi Ne Zaman Kullanmalıyım?

Faster seçeneği, minimum kaynakla en hızlı barkod okuma sağlar, ancak doğruluğu azaltır. Bu işlem resim ön işlemesini atlar ve giriş resimleri zaten keskin ve net olduğunda en iyi çalışır.

Bu örnek Speed özelliğini ReadingSpeed.Faster olarak ayarlar, bir barkod dizini ithal eder ve bulunan barkodları değerleri, türleri ve her resim başına sayısı ile birlikte yazdırır. Farklı resim formatlarından barkod okumayı daha iyi anlamak için görüntülerden barkod okuma rehberimize göz atın.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-faster.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"Faster could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
Imports IronBarCode
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Linq

Dim optionsFaster As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Faster
}

' Directory containing PDF files
Dim folderPath As String = "YOUR_FILE_PATH"

' Get all PDF files in the directory
Dim pdfFiles = Directory.GetFiles(folderPath, "*.jpg")

Dim countFaster As Integer = 0
Dim stopwatch As Stopwatch = Stopwatch.StartNew()
For Each file In pdfFiles
    ' Read the barcode
    Dim results = BarcodeReader.Read(file, optionsFaster)

    If results.Any() Then
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}")
        For Each result In results
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}")
            countFaster += 1
        Next
    Else
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}")
    End If
Next

stopwatch.Stop()

' Print number of images the barcode reader could decode
Console.WriteLine($"Faster could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms")
$vbLabelText   $csharpLabel

Faster seçeneği, 25 saniyede 430 barkoddan 146 tanesini tespit etti ve %33,95 doğruluk elde etti. Hızlı olsa da, bu yöntem yalnızca temiz görüntü koşullarına uyar. Tek bir görüntüde birden çok barkodla çalışırken, birden çok barkod okuma kılavuzumuza bakarak ideal konfigürasyonu değerlendirin.

Dengeli Hız Neden Önerilen Seçenektir?

Balanced seçeneği, doğruluk ile okuma performansı arasında denge kurar. IronBarcode, barkod alanını netleştirmek için hafif bir görüntü işleme uygular ve bu alanı algılama ve okuma daha kolay hale gelir. Bu ayar çoğu modern görüntü için önerilir, çünkü genellikle hafif işleme doğru sonuçlar verir.

Aynı görüntüleri, Balanced çıktıları nasıl etkilediğini göstermek için kullanalım. Asenkron işlemler için, IronBarcode ile asenkron ve çoklu iş parçacığı kullanma rehberimizi keşfedin.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-balanced.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"Balanced could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
Imports IronBarCode
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Linq

Dim optionsFaster As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Balanced
}

' Directory containing PDF files
Dim folderPath As String = "YOUR_FILE_PATH"

' Get all PDF files in the directory
Dim pdfFiles = Directory.GetFiles(folderPath, "*.jpg")

Dim countFaster As Integer = 0
Dim stopwatch As Stopwatch = Stopwatch.StartNew()
For Each file In pdfFiles
    ' Read the barcode
    Dim results = BarcodeReader.Read(file, optionsFaster)

    If results.Any() Then
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}")
        For Each result In results
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}")
            countFaster += 1
        Next
    Else
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}")
    End If
Next

stopwatch.Stop()

' Print number of images the barcode reader could decode
Console.WriteLine($"Balanced could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms")
$vbLabelText   $csharpLabel

Balanced seçeneği, 43 saniyede 430 barkoddan 237 tanesini tespit etti. Bu, yalnızca hafif bir zaman artışı ile %55,11 doğruluk sağlar—Faster üzerine önemli bir gelişme. Bu seçenek, bellek ve hız arasında etkin bir denge sağlar, çoğu durum için ideal yapar ve önerilen başlangıç noktasıdır. Bu dengeli yaklaşım, doğru görüntü önişleme teknikleriyle özellikle iyi çalışır.

Detaylı Hız Seçeneğine Ne Zaman İhtiyacım Olur?

Görüntüler yoğun bulanık veya bozuk olduğunda ve Balanced net sonuçlar üretemediğinde, Detailed seçeneğini kullanın. Barkod alanını netleştirmek ve daha iyi algılama için dijital gürültüyü azaltmak amacıyla orta düzeyde ön işleme uygular. Ciddi biçimde bozulmuş görüntüler için çeşitli ön işleme tekniklerini kapsayan görüntü düzeltme kılavuzumuzu inceleyin.

Detailed ayarını uygulayalım ve çıktısı üzerindeki etkisini gözlemleyelim.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-detailed.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"Detailed could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
Imports IronBarCode
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Linq

Dim optionsFaster As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Detailed
}

' Directory containing PDF files
Dim folderPath As String = "YOUR_FILE_PATH"

' Get all PDF files in the directory
Dim pdfFiles = Directory.GetFiles(folderPath, "*.jpg")

Dim countFaster As Integer = 0
Dim stopwatch As Stopwatch = Stopwatch.StartNew()
For Each file In pdfFiles
    ' Read the barcode
    Dim results = BarcodeReader.Read(file, optionsFaster)

    If results.Any() Then
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}")
        For Each result In results
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}")
            countFaster += 1
        Next
    Else
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}")
    End If
Next

stopwatch.Stop()

' Print number of images the barcode reader could decode
Console.WriteLine($"Detailed could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms")
$vbLabelText   $csharpLabel

Detailed seçeneği, 5 dakika 30 saniyede 430 barkoddan 237 tanesini tespit etti. Ciddi bozulmuş barkodlarda %55,11 başarı oranı, doğruluğunu gösterir. Ancak, önemli ölçüde artan işlem süresi, bu seçeneğin yalnızca bozulmuş barkod görüntüleri için ayrılması gerektiği anlamına gelir. Kusurlu barkodlarla çalışırken, ek stratejiler için kusurlu barkod işleme örneğimizi inceleyin.

Hangi Durumlar ExtremeDetail Hızını Gerektirir?

ExtremeDetail ayarı, barkod görüntüleri için yoğun işlem uygulayarak okuma performansını önemli ölçüde azaltır. Bu CPU ağırlıklı seçenek, bir giriş dosyasında birden fazla belirsiz veya bulanık barkodu taramak için en iyi geçerlidir. Diğer seçenekler istenen sonuçları veremediğinde son çare olarak kullanın. Yüksek hacimli işleme senaryoları için, genellikle sayfa başına birden fazla barkod içeren PDF dosyalarından barkod okuma yöntemini keşfedin.

ExtremeDetail ayarını uygulayalım ve etkisini gözlemleyelim.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-extreme-detailed.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.ExtremeDetail
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"ExtremeDetail could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
Imports IronBarCode
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Linq

Dim optionsFaster As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.ExtremeDetail
}

' Directory containing PDF files
Dim folderPath As String = "YOUR_FILE_PATH"

' Get all PDF files in the directory
Dim pdfFiles = Directory.GetFiles(folderPath, "*.jpg")

Dim countFaster As Integer = 0
Dim stopwatch As Stopwatch = Stopwatch.StartNew()

For Each file In pdfFiles
    ' Read the barcode
    Dim results = BarcodeReader.Read(file, optionsFaster)

    If results.Any() Then
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}")
        For Each result In results
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}")
            countFaster += 1
        Next
    Else
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}")
    End If
Next

stopwatch.Stop()

' Print number of images the barcode reader could decode
Console.WriteLine($"ExtremeDetail could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms")
$vbLabelText   $csharpLabel

ExtremeDetail seçeneği yaklaşık 10 dakikada 430 barkod görüntüsünden 313 tanesini tanımladı. Ciddi bozulmuş barkodlarda etkileyici %72,79 doğruluğa ulaşırken, yüksek kaynak tüketimi, yalnızca son çare olarak kullanılmasını uygun kılar. Bu seçeneği kullanmadan önce görüntüleri ön işleme düşünün.

Farklı Hızlar Nasıl Karşılaştırılır?

Mod Bulunan Barkodlar Ortalama Süre Dosya Başına Süre GC Basıncı Doğruluk Kazancı
Daha Hızlı 147/430 (33,95%) 25 s 0,058 s Yüksek (Gen2: 177K) Temel Çizgi
Dengeli 237/430 (55,11%) 43 s 0,1 s Yüksek (Gen2: 151K) +%62,32 vs Daha Hızlı
Detaylı 237/430 (55,11%) 5,50 dk 0,767 s Çok Yüksek (Gen2: 297K) +%0 vs Dengeli
ExtremeDetail 313/430 (72,79%) 10,14 dk 1,414 s Aşırı (Gen2: 4,74M) +%32,08 vs Detaylı

Uygulamam için Doğru Hızı Nasıl Seçerim?

Yukarıdaki karşılaştırmalara dayanarak, Faster ayarından başlayın ve Balanced, Detailed ve ExtremeDetail ile ilerleyerek önemli çıktı farklılıklarını belirleyin. Çoğu senaryo için Balanced her şeyi yeterince iyi bir şekilde ele alır. Detailed ve ExtremeDetail sadece yoğun bozuk görüntüler için kullanın. İnce veya düşük kaliteli barkodlar için, algılama hassasiyetini artırmak amacıyla hız ayarınızı MinScanLines = 1 ile birleştirin.

Detailed ve ExtremeDetail orta ve ağır işlemler uygular, ancak bazen süreci ayırmak daha verimlidir—barkod okuma öncesinde görüntü filtrelerini manuel olarak uygulamak, tek bir işlem kullanmaktan daha etkilidir. Görüntüleri ön işleme hakkında daha fazla bilgi için bu kılavuza bakın.

Hangi Hız Ayarı Kullanım Senaryomla Eşleşir?

Görüntü kalitesine dayalı örnekleme hız seçiminde karar ağacı, Daha Hızlıdan Detaylı+ExtremeDetail seçeneklerine

Sıkça Sorulan Sorular

Hangi dört barkod okuma hız seçeneği mevcut?

IronBarcode, dört Okuma Hızı seçeneği sunar: Hızlı, Dengeli, Detaylı ve Aşırı Detay. Her seçenek, işleme hızı ve doğruluk arasında farklı bir denge sunar, en çok uygulamalar için önerilen başlangıç noktası Dengeli olandır.

Barkodları tararken okuma hızını nasıl ayarlayabilirim?

Read yöntemine geçirmeden önce yeni bir BarcodeReaderOptions nesnesi oluşturun ve Hız özelliğini Speed (Hızlı, Dengeli, Detaylı veya Aşırı Detay) olarak ayarlayın.

Uygulamam için hangi okuma hızı seçeneğini kullanmalıyım?

IronBarcode, çoğu uygulama için Dengeli hız ayarı ile başlamayı önerir. Yüksek kaliteli, net barkod görüntülerine sahipseniz, Hızlı modu kullanabilirsiniz. Bozuk veya düşük kaliteli görüntüler için daha iyi doğruluk için Detaylı veya Aşırı Detaylı modları kullanmayı düşünün.

Farklı okuma hız seçenekleri arasında ne tür bir denge söz konusu?

IronBarcode'un okuma hızlarında, işlem hızı ve doğruluk arasında bir denge vardır. Hızlı modu görüntüleri hızla işler ancak düşük kaliteli görüntülerde barkodları kaçırabilir. Aşırı Detay modu en yüksek doğruluğu sağlar ancak daha fazla işlem süresi ve bellek kaynakları gerektirir.

Farklı hız ayarları ile birden fazla barkod formatı okuyabilir miyim?

Evet, IronBarcode tüm hız ayarlarıyla çeşitli barkod formatlarını, QR kodları dahil, okumayı destekler. Hız ayarı işlem yöntemini etkiler ancak okuyabileceğiniz barkod türlerini sınırlamaz. Tam liste için desteklenen barkod formatları sayfasını ziyaret edin.

Görüntü kalitesi, hangi okuma hızını seçmem gerektiğini nasıl etkiler?

Görüntü kalitesi, IronBarcode'da hız seçiminizi doğrudan etkiler. Net, yüksek kaliteli barkod görüntüleri Hızlı mod ile verimli bir şekilde işlenebilir. Bozuk, bulanık veya düşük kontrastlı görüntüler, doğru barkod algılama ve okuma sağlamak için Detaylı veya Aşırı Detaylı modlara ihtiyaç duyar.

Hız seçenekleri ile barkod okumak için minimal iş akışı nedir?

IronBarcode ile minimal iş akışı 5 adım içerir: 1) C# kutuhanesini indir, 2) Okuma hızını ayarlamak için BarcodeReaderOptions kullan, 3) Görüntü yolunla Read yöntemini çağır, 4) Barkod değerlerini çıkar ve yazdır, 5) Farklı hızlar arasındaki performans dengelerini değerlendir.

Farklı okuma hızlarının performans etkisini nasıl ölçebilirim?

DotNet benchmark kütüphanelerini kullanarak farklı okuma hızları ile IronBarcode'un performansı izlenebilir. Bu, belirli kullanım durumunuz ve kaynak kısıtlamalarınız için en uygun hız ayarını belirlemenize yardımcı olur.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 2,169,908 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package BarCode
bir örnek çalıştırın dize barkod haline geldiğini görün.