IronBarcode ile C# İçinde Okuma Hızını Nasıl Ayarlayabilirim?
IronBarcode, C#'de barkodları okurken işleme hızı ile doğruluk arasında bir denge kurmanıza olanak tanıyan dört okuma hızı seçeneği (Faster, Balanced, Detailed, ExtremeDetail) sunar, Balanced çoğu uygulama için önerilen başlangıç noktasıdır.
Giriş
Barkod setlerini okurken doğruluk önemlidir, ancak kaynak tahsisi ve işleme verimliliği eşit derecede önemli hususlardır. Giriş imajlarının kalitesi, bir barkod okuyucunun bunları nasıl işlemesi gerektiğini belirler: net görüntüler için ön işleme atlanmalı mı yoksa bozulmuş barkodlar için doğruluğu artıran daha kaynak yoğun seçenekler kullanılmalı mı.
IronBarcode, barkod okuma sürecinin her yönünü kontrol etmenize izin veren esnekliği sağlar, işleme hızını ve doğruluk seviyesini seçmenize olanak tanır. Kararları giriş görüntülerinize ve mevcut kaynaklarınıza göre verebilirsiniz. Daha gelişmiş barkod okuma senaryoları için, çeşitli formatlar ve teknikler içeren kapsamlı barkod okuma eğitimi bölümümüzü keşfedin.
Bu makale, farklı senaryolar için en uygun okuma hızını seçme konusunda rehberlik eder. Okuma hızının sonuçları nasıl etkilediğini göstermek için QR kod örneklerini kullanacağız. QR kodlarıyla özellikle çalışıyorsanız, test örnekleri oluşturmak için C# QR Kod Üreticisi eğitimize göz atın.
Hızlı Başlangıç: Dengeli Hızda Bir Barkodu Okuyun
Taramanız için Speed seviyesini anında ayarlamak için IronBarcode'un BarcodeReaderOptions kullanın. Bu örnek, hızlı ve güvenilir sonuçlar için Balanced ayarını kullanarak barkodların nasıl hızlı bir şekilde okunacağını gösterir.
-
IronBarcode aşağıdaki NuGet Paket Yöneticisi ile yükleyin
-
Bu kod parçacığını kopyalayın ve çalıştırın.
var results = IronBarCode.BarcodeReader.Read("path/to/image.png", new IronBarCode.BarcodeReaderOptions { Speed = IronBarCode.ReadingSpeed.Balanced }); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronBarcode kullanmaya başlayın
Asgari İş Akışı (5 adım)
- Okuma hızını ayarlamak için C# kütüphanesini indirin
- BarcodeReaderOptions sınıfını kullanarak okuma hızını ayarlayın
Readyöntemini kullanarak çeşitli görüntü formatlarından barkod değerlerini çıkarın- Barkod değerlerini yazdırın
- Farklı okuma hızları arasındaki performans dengelemesini değerlendirin
Farklı Okuma Hızı Seçenekleri Nelerdir?
IronBarcode dört ReadingSpeed seçeneği sunar: Faster, Balanced, Detailed ve ExtremeDetail. Kutuphane yeteneklerini göstermek için çoğunlukla bozulmuş barkod görüntüleri ve bazı net görüntüler içeren bir örnek set kullanarak her seçeneği inceleyeceğiz. Desteklenen formatların tam listesi için, desteklenen barkod formatları sayfamızı ziyaret edin.
Her seçenekle karşılaştırmak ve her okuma hızı için ideal senaryoları tanımlamak için işlem süresini ve bellek kullanımını gösterip bir .NET benchmark kütüphanesi kullanacağız. Benchmarking kodunu ve bozulmuş barkodların başarılı bir şekilde okunduğunu saymak için basit bir yöntemi göstereceğiz. Okuyucu seçeneklerini yapılandırma hakkında daha fazla bilgi için, barkod okuyucu ayarları örneğimize bakın.
Daha Hızlı Hız Seçeneğini Ne Zaman Kullanmalıyım?
Faster seçeneği, minimum kaynakla en hızlı barkod okumayı sağlar ancak doğruluğu azaltır. Bu süreç görüntü ön işlemesini atlar ve en iyi sonuçları giriş görüntüleri zaten keskin ve net olduğu zaman verir.
Bu örnek Speed özelliğini ReadingSpeed.Faster olarak ayarlar, bir barkod dizini içe aktarır ve bulunan barkodları değerleri, türleri ve resim başına sayı ile birlikte yazdırır. Çeşitli görüntü formatlardan barkod okuma işlemini daha iyi anlamak için, görüntülerden barkod okuma rehberimize bakı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")
Faster seçeneği 25 saniyede 430 barkoddan 146 sonuç tespit etti ve %33.95 doğruluk sağladı. Hızlı olmasına rağmen, bu yöntem yalnızca kaliteli görüntü koşullarından yararlanır. Tek bir görüntüde birden fazla barkod ile çalışırken, en uygun yapılandırma için birden fazla barkodu okuma rehberimize bakın.
Neden Dengeli Hız Önerilen Hız Seçeneğidir?
Balanced seçeneği doğruluk ve okuma performansını dengeler. IronBarcode, barkod alanını netleştirmek ve tespit etmeyi kolaylaştırmak için hafif görüntü işleme uygular. Bu ayar, hafif işlem genellikle doğru sonuçlar ürettiği için çoğu modern görüntü için önerilir.
Çıktı sonuçlarını nasıl Balanced etkilediğini göstermek için aynı görüntüleri kullanalım. Asenkron işlemler için, IronBarcode ile asenkron ve çok iş parçacıklı yapıda çalışma rehberimize göz atın.
: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")
Balanced seçeneği 43 saniyede 430 barkoddan 237 sonuç tespit etti. Bu, yalnızca hafif bir zaman artışıyla birlikte, Faster üzerinde önemli bir iyileştirme sağlayarak %55.11 doğruluk sunar. Bu seçenek, hafıza ve hız arasında verimli bir dengeyi sağlar ve çoğu durum için ideal olup önerilen başlangıç noktasıdır. Bu dengeli yaklaşım, uygun görüntü ön işleme teknikleri ile özellikle iyi çalışır.
Detaylı Hız Seçeneğine Ne Zaman İhtiyacım Var?
Görüntüler yoğun bulanıklaştırılmış veya bozulmuşsa ve Balanced net sonuçlar üretemiyorsa, Detailed seçeneğini kullanın. Daha iyi tespit için barkod alanını netleştirmek ve dijital sesi azaltmak için orta düzeyde ön işleme uygular. Ağır şekilde bozulmuş görüntüler için, çeşitli ön işleme tekniklerini içeren görüntü düzeltme rehberimize danışın.
Detailed ayarını uygulayalım ve çıktıya 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")
Detailed seçeneği, 5 dakika 30 saniyede 430 barkoddan 237 sonuç tespit etti. Ağır şekilde bozulmuş barkodlar üzerindeki %55,11 başarı oranında doğruluğunu gösterir. Ancak, önemli ölçüde artan işlem süresi, bu seçeneği yalnızca bozulmuş barkod görüntüleri için ayırmanız gerektiği anlamına gelir. Kusurlu barkodlarla çalışırken, ek stratejiler için kusurlu barkod yönetimi örneğimize bakın.
Hangi Durumlar Aşırı Detay Hızını Gerektirir?
ExtremeDetail ayarı, barkod görüntülerine yoğun işlem uygular, bu da okuma performansını önemli ölçüde düşürür. Bu CPU yoğun seçeneği, içinde birçok bulanık ya da belirsiz barkod içeren tek bir giriş dosyasını taramak için en iyi şekilde çalışır. Diğer seçeneklerin istenen sonuçları üretemediği durumlarda son çare olarak kullanın. Yüksek hacimli işleme senaryoları için, sık sık sayfa başına birden fazla barkod içeren PDF dosyalarından barkod okuma'yı 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")
ExtremeDetail seçeneği, yaklaşık 10 dakikada 430 barkod görüntüsünden 313'ünü tespit etti. Ağır şekilde bozulmuş barkodlar üzerindeki etkileyici %72,79 doğruluk oranına rağmen, yüksek kaynak tüketimi onu yalnızca son çare olarak uygun kılar. Bu seçeneği kullanmadan önce görüntüleri önceden işleyin.
Farklı Hızlar Nasıl Karşılaştırılır?
| Mod | Barkodlar Bulundu | Ortalama Zaman | Dosya Başına Süre | GC Baskısı | Doğruluk Kazancı |
|---|---|---|---|---|---|
| Daha Hızlı | 147/430 (%33,95) | 25 s | 0,058 s | Yüksek (Gen2: 177K) | Baseline |
| Dengeli | 237/430 (%55,11) | 43 s | 0,1 s | Yüksek (Gen2: 151K) | +62,32% Daha Hızlı karşılaştırıldı |
| Detaylı | 237/430 (%55,11) | 5,50 dakika | 0,767 s | Çok Yüksek (Gen2: 297K) | +0% Dengeli karşılaştırıldı |
| Aşırı Detay | 313/430 (%72,79) | 10,14 dakika | 1,414 s | Aşırı (Gen2: 4,74M) | +32,08% Detaylı karşılaştırıldı |
Uygulamam için Doğru Hızı Nasıl Seçerim?
Yukarıdaki karşılaştırmalara dayalı olarak, Faster ayarı ile başlayın ve önemli çıktı farklılıklarını belirlemek için Balanced, Detailed ve ExtremeDetail ile ilerleyin. Çoğu senaryo için Balanced her şeyi uygun şekilde halleder. Detailed ve ExtremeDetail yalnızca yoğun şekilde bozulmuş görüntüler için kullanın. İnce veya düşük kaliteli barkodlar için, algılama hassasiyetini artırmak için hız ayarınızı MinScanLines = 1 ile birleştirin.
Detailed ve ExtremeDetail orta ve yoğun işlem uygulasalar da, bazen işlemeyi ayırmak daha verimlidir—barkod okuma öncesi görüntü filtrelerini manuel olarak uygulamak, tek bir süreci kullanmaktan daha verimli olabilir. Görüntüleri ön işleme hakkında daha fazla bilgi almak için, bu kılavuza bakın.
Hangi Hız Ayarı Benim Kullanım Durumuma Uygun?
Sıkça Sorulan Sorular
Hangi dört barkod okuma hızı seçeneği mevcuttur?
IronBarcode, dört OkumaHızı seçeneği sunar: Daha Hızlı, Dengeli, Detaylı ve Aşırı Detaylı. Her seçenek, işleme hızı ile doğruluk arasında farklı bir denge sağlar ve Dengeli, çoğu uygulama için önerilen başlangıç noktasıdır.
Barkod tararken okuma hızını nasıl ayarlarım?
IronBarcode'da BarkodOkuyucuSeçenekleri sınıfını kullanarak okuma hızını ayarlayabilirsiniz. Basitçe, yeni bir BarkodOkuyucuSeçenekleri nesnesi oluşturun ve Hız özelliğini istediğiniz OkumaHızı değerine (Daha Hızlı, Dengeli, Detaylı veya Aşırı Detaylı) ayarlayın, ardından bunu Okuma yöntemine iletin.
Uygulamam için hangi okuma hızı seçeneğini kullanmalıyım?
IronBarcode, çoğu uygulama için Dengeli hız ayarıyla başlamanızı önerir. Yüksek kaliteli, net barkod görüntülerine sahipseniz Daha Hızlı modu kullanabilirsiniz. Bozulmuş veya düşük kaliteli görüntüler için daha iyi doğruluk sağlamak adına Detaylı veya Aşırı Detaylı modlar kullanmayı düşünün.
Farklı okuma hızı seçenekleri arasındaki denge nedir?
IronBarcode'un okuma hızlarındaki denge, işleme hızı ile doğruluk arasındadır. Daha Hızlı mod, görüntüleri hızla işler ancak düşük kaliteli görüntülerde barkodları kaçırabilir. Aşırı Detaylı mod 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ını okuyabilir miyim?
Evet, IronBarcode, QR kodları dahil çeşitli barkod formatlarını tüm hız ayarlarıyla okuyabilir. Hız ayarı işlem yaklaşımını etkiler ancak okuyabileceğiniz barkod türlerini sınırlamaz.
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 Daha Hızlı mod ile verimli bir şekilde işlenebilir. Bozulmuş, bulanık veya düşük kontrastlı görüntüler, doğru barkod algılama ve okuyuculuğu sağlamak için Detaylı veya Aşırı Detaylı modlar gerektirir.
Hız seçenekleri ile barkod okuma için minimal iş akışı nedir?
IronBarcode ile minimal iş akışı 5 adımı içerir: 1) C# kütüphanesini İndirin, 2) Okuma hızını ayarlamak için BarkodOkuyucuSeçeneklerini kullanın, 3) Görüntü yolunuzla Okuma metodunu çağırın, 4) Barkod değerlerini çıkarın ve yazdırın, 5) Farklı hızlar arasındaki performans takaslarını değerlendirin.
Farklı okuma hızlarının performans etkisini nasıl ölçerim?
IronBarcode’un farklı okuma hızlarındaki performansı, .NET benchmark kütüphanelerini kullanarak işlem süresini ve bellek kullanımını izleyerek ölçülebilir. Bu, belirli kullanım durumunuz ve kaynak kısıtlamalarınıza uygun optimal hız ayarını belirlemenize yardımcı olur.
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.

