Nasıl Görüntüden Barkod Okurum C# Kullanarak
IronBarcode, görüntülerden barkodları C# dilinde BarcodeReader.Read() kullanarak tek bir kod satırı ile okur. Bu işlem, performansı ve doğruluğu artırmak için özelleştirilebilir seçeneklerle birlikte PNG, JPEG, GIF, BMP, TIFF ve SVG dahil olmak üzere çoklu görüntü formatlarını destekler.
IronBarcode'un en önemli özelliklerinden biri, kutudan çıktığı haliyle birden çok görüntü formatında barkod okuma yeteneğidir. Şu anda IronBarcode tarafından desteklenmekte olan görüntü formatları şunlardır:
- Ölçeklenebilir Vektör Grafikleri (SVG)
- Birleşik Fotoğraf Uzmanları Grubu (JPEG)
- Taşınabilir Ağ Grafikleri (PNG)
- Grafik Değişim Formatı (GIF)
- İşaretlenmiş Görüntü Dosyası Formatı (TIFF)
- Bitmap Resim Dosyası (BMP)
Bu, açık kaynak kütüphanemiz IronDrawing yardımı ile mümkündür. 1 boyutlu ve 2 boyutlu tipler dahil olmak üzere, desteklenen barkod formatlarının tam listesi için kapsamlı belgelerimize bakın.
Hızlı Başlangıç: Bir Resimden Saniyeler İçinde Barkodları Okuyun
Sadece IronBarCode.BarcodeReader.Read() basit bir çağrıyla, PNG, JPEG, GIF, BMP ve TIFF gibi görüntü dosyası formatlarından doğrudan barkod verilerini çıkarabilirsiniz. Hemen başlayın—karmaşık kurulum yok, sadece anında sonuçlar.
-
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"); -
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)
- Görüntüden barkod okumak için C# kütüphanesini indirin
Readyöntemini kullanarak çeşitli görüntü formatlarından barkod değerlerini okuyun- BarcodeReaderOptions sınıfını kullanarak okuma ayarlarını yapılandırın
- Görüntüde barkod bölgelerini CropArea özelliğiyle belirtin
- Yalnızca belirli barkod türlerini okumak için ExpectBarcodeTypes özelliğini ayarlayın
Görüntülerden Doğrudan Barkodları Nasıl Okurum?
IronBarcode'u barkod okuma için nasıl kullanacağınız şöyledir. Gelişmiş PDF işleme ve toplu işlemler dahil olmak üzere C# / .NET ile barkod okuma üzerine kapsamlı bir eğitim için detaylı rehberimizi ziyaret edin:
:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-images-1.cs
using IronBarCode;
using System;
var myBarcode = BarcodeReader.Read(@"image_file_path.jpg"); //image file path
foreach (var item in myBarcode)
{
Console.WriteLine(item.ToString());
}
Imports IronBarCode
Imports System
Private myBarcode = BarcodeReader.Read("image_file_path.jpg") 'image file path
For Each item In myBarcode
Console.WriteLine(item.ToString())
Next item
Örneklerdeki barkod değerlerinin ne olduğunu bilmek mi istiyorsunuz? Kod parçasıyla deneyin!
IronBarcode kullanabilmek için, yapılması gereken ilk şey Microsoft Visual Studio NuGet paket yöneticisini kullanarak proje içerisine IronBarcode kütüphanesini yüklemektir, aşağıdaki şekilde gösterildiği gibi. Bu, barkod görüntülerini doğrudan okumak için IronBarcode'un BarcodeReader.Read() metoduna erişmenizi sağlayacaktır.
IronBarcode, projeye zaten dahil edilmiş olan bir görüntü dosyasını okumak için yalnızca BarcodeReader.Read() kullanımına izin vererek kullanıcılara basitlik sunar. Metot için parametre olarak dosya adı dizgisini YA DA dosya yolu dizgisini belirleyerek bunu yapar. En iyi uygulama, bir dosya yolunu belirtirken yöntem içinde birden fazla kaçış karakteri "\" eklememek için "@" işareti ile değişmez string demeti kullanmaktır.
Barkod değerini System.String[] nesnesi olarak almak için BarcodeReader.Read() metot çağrısının sonunda Values() metodunu ekleyin.
Sonucu konsola çıkarmak için foreach döngüsünü kullanarak string[] dizisinde depolanan değerlerin üzerinden geçebilirsiniz ve döngü bloğunun içinde, yineleyici değişkenini parametre olarak alacak Console.WriteLine() metodunu çağırabilirsiniz.
IronBarcode, görüntü formatlarında çeşitli 1-Dimensionel barkod formatlarını (Codabar, Code128, Code39, Code93, EAN13, EAN18, ITF, MSI, UPCA, UPCE) ve 2-Dimensionel barkod formatlarını (Aztec, DataMatrix, QRCode) okuyabilir.
Daha İyi Performans için Barkod Okuyucu Seçeneklerini Nasıl Yapılandırırım?
Barkod okuma çok mu yavaş? Görüntüdeki barkod çok mu küçük, bu yüzden IronBarcode okuyamıyor mu? Yalnızca bir görüntünün belirli alanlarını mı okumak istiyorsunuz? Bir karışım içinde bulunan görüntüde yalnızca belirli barkod türlerini mi okumak istiyorsunuz? Genel okuma performansını mı geliştirmek istiyorsunuz?
BarcodeReaderOptions, barkod okuyucunun davranışını tüm bu sorunlara çözüm olacak şekilde ayarlamanıza veya değiştirmenize olanak tanır. Barkod okuyucu seçeneklerini ayarlama hakkında detaylı örnekler için kapsamlı rehberimize göz atın. Takip eden bölümlerde BarcodeReaderOptions içinde bulunan ayarlanabilir her özellik tek tek ele alınır.
Görüntünün Hangi Alanını Okuyacağımı Nasıl Belirtirim?
CropArea, kullanıcıların IronBarcode'un okuması gereken bir görüntüdeki alanı belirtmelerine olanak tanıyan IronSoftware.Drawing.CropRectangle türünde bir özelliktir ve BarcodeReaderOptions'da bulunur. Bu, okuma doğruluğunu arttırırken, barkod okuyucu tüm görüntüyü taramak yerine, belirtilen alanı tarar ve okuma performansını iyileştirir. Optimum performans için kırpma bölgelerini belirleme hakkında daha fazla bilgi edinin.
CropArea özelliğini ayarlamak için, yeni bir Rectangle türü nesne başlatın ve argüman olarak dikdörtgenin koordinatlarını, genişliğini ve uzunluğunu belirtin. Kabul edilen ölçü birimi piksel (px) dir.
:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-images-3.cs
// Example of setting CropArea
var cropArea = new IronSoftware.Drawing.Rectangle(x: 100, y: 100, width: 300, height: 300);
var options = new BarcodeReaderOptions()
{
CropArea = cropArea
};
Imports IronSoftware.Drawing
' Example of setting CropArea
Dim cropArea As New Rectangle(x:=100, y:=100, width:=300, height:=300)
Dim options As New BarcodeReaderOptions() With {
.CropArea = cropArea
}
Daha Hızlı Okuma İçin Hangi Barkod Türlerini Belirtmeliyim?
Varsayılan olarak, IronBarcode desteklenen tüm barkodları bir görüntüde tarar. Ancak, kullanıcı hangi tür barkodların mevcut olduğunu biliyorsa veya bir görüntüde okunması gerekiyorsa, bu özelliği yalnızca belirli barkod türlerini okumak için ayarlamak, okuma performansını ve doğruluğunu büyük ölçüde artırır, çünkü barkod okuyucu bir barkodu yorumlamak ve okumak için barkod koleksiyonları arasında gezinmek zorunda kalmaz.
Bu özelliği kullanmak için, sadece ExpectBarcodeTypes'i BarcodeEncoding enumunun bir alanına ayarlayın. Aşağıda, IronBarcode tarafından desteklenen her barkod türüne dair örnekler bulunmaktadır.
:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-images-4.cs
// Example: Expect only QR codes and Code128
var options = new BarcodeReaderOptions()
{
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128
};
' Example: Expect only QR codes and Code128
Dim options As New BarcodeReaderOptions() With {
.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128
}
Birkaç Barkod Okumayı Ne Zaman Devre Dışı Bırakmalıyım?
IronBarcode varsayılan olarak bir görüntüde mevcut olan tüm barkodları tarasır ve bu, tüm görüntü dosyasının taranması ve okunan barkod değerlerinin dize dizisine eklenmesi demektir. Ancak, kullanıcılar bir görüntü dosyasında birden fazla barkod okumayı istemezlerse, bu özelliği false ayarlayarak, bir barkod değeri bulunduğunda barkod okuyucunun taramayı durdurmasını sağlar. Bu, IronBarcode'un performansını ve okuma hızını tekrar artıracaktır. Birden fazla barkod okuma hakkında daha fazla bilgi için, özel rehberimize bakın.
Görüntü Filtresi Barkod Tanımayı Nasıl İyileştirir?
BarcodeReaderOptions içine eklenebilecek özelliklerden biri, bir görüntü filtresi koleksiyonudur. Görüntü filtreleri, IronBarcode'a beslenen ham görüntünün ön işlenmesi için önemlidir. BarcodeReaderOptions içinde görüntü filtreleri uygulamak için, kullanıcıların öncelikle kullanılacak ImageFilter koleksiyonunu başlatmaları ve belirtmeleri gerekir. Filtre uygulamaları da dahil olmak üzere resim düzeltme teknikleri hakkında kapsamlı rehberlik için eğitimimize göz atın.
Daha İyi Performans İçin İş Parçacıklarını Nasıl Optimize Edebilirim?
IronBarcode, kullanıcıların paralel iş parçacıklarının çalıştırılma miktarını etkinleştirmesine ve ayarlamasına olanak tanır, bu da sürecin hızını ve verimliliğini artıracaktır. Paralel iş parçacıkları, farklı işlemci çekirdeklerinde aynı anda birden çok iş parçacığının çalıştırılması anlamına gelir. IronBarcode'daki MaxParallelThread özelliği için varsayılan miktar 4'tür. Kullanıcılar, makinelerinin sahip olduğu kaynakların kapasitesine ve miktarına göre bunu ayarlayabilirler.
Çoklu İş Parçacıklı İşlemeyi Etkinleştirmeli miyim?
Bu özellik, IronBarcode'un birden fazla resmi paralel olarak okumasını sağlar. #Multithreaded için varsayılan true olduğundan, çoklu iş parçacıkları performansı arttırmak için toplu barkod okuma görevlerinde otomatik olarak yönetilecektir.
Neden Yanlış Pozitif Okumaları Kaldırmalıyım?
Bu özellik, yanlış pozitif barkod okumalarını kaldırır. Yanlış pozitif barkod okuma, barkod değerlerinin yanlış okunması ancak geçerli olarak tanımlanması anlamına gelir. Bu, sıralama sürecindeki hatalardan veya barkod etiketleme veya hazırlama sürecindeki hatalardan kaynaklanabilir. Bu nedenle, RemoveFalsePositive'i true olarak ayarlamak, yanlış pozitifi barkod okumalarını kaldıracak ve barkod okuma doğruluğunu artıracaktır. Bununla birlikte, kullanıcılar doğruluktan ödün vererek performansı tercih ederlerse, bu özelliği false olarak ayarlamak yardımcı olabilir. Bu özelliğin varsayılan değeri true'dur.
MinScanLines Tespit Doğruluğunu Nasıl Etkiler?
MinScanLines, bir barkod sonucunun geçerli sayılabilmesi için üzerinde anlaşılması gereken minimum tarama hattı sayısını ayarlar. Varsayılan değer 2'dir. Bu değerin artırılması, yanlış pozitifleri azaltır ancak ince veya düşük kaliteli barkodların algılanmasını engelleyebilir. Bunu 1'e düşürmek, gürültü oluşma riskine karşı zorlayıcı barkodlar için hassasiyeti artırır.
Farklı Kullanım Durumları İçin Hangi Tarama Modları Mevcuttur?
IronBarcode'in bir görüntüde barkodları nasıl tarayıp tespit ettiğini tanımlayın.
Auto: Otomatik görüntü ön işleme ve en optimal okuyucu seçeneklerinin yapılandırılması ile barkodları okur. En iyi sonuçlar ve performans için önerilir.OnlyDetectionModel: Barkodlar için görüntüyü tarar ve pozisyonlarınıIronSoftware.Drawing.PointFdizisi olarak döndürür. Bu mod algılanan barkodları okumaz; sadece her bir barkodun pozisyonunu döndürür.MachineLearningScan: Makine öğrenmesi tespiti ile görüntüyü tarar ve barkodları okur.OnlyBasicScan: Makine öğrenmesi tespiti, otomatik görüntü ön işleme veya okuyucu seçeneği yapılandırması olmadan barkodları okur. Bu seçenek, yalnızcaIronBarCode.Slimile kullanılabilir.
Okuma Hızı Ayarları Doğruluğu Nasıl Etkiler?
Speed özelliği, adından da anlaşılacağı gibi, IronBarcode okuyucunun performansını daha da optimize etmeye olanak tanır. RemoveFalsePositive özelliğine benzer şekilde, bu özelliği ayarlamak doğruluk pahasına performansı artırır. Performans kıyaslamaları da dahil olmak üzere okuma hız seçenekleri hakkında derinlemesine bir bakış için detaylı rehberimize göz atın. Aşağıda gösterildiği gibi 4 seviyeli ReadingSpeed enumunu kabul eder:
Faster: En hızlı barkod okuma imkanı sağlar ancak doğruluğu azaltır. İşlem, genellikle boş barkod sonuçlarıyla sonuçlanan görüntü ön işleme adımını atlar. Bu ayarı yalnızca giriş görüntüsü keskin ve netse kullanın.Balanced:Speedözelliği için önerilir. Bu, okunabilirlik performansı ile doğruluk arasında bir denge kurarak, barkod alanını netleştirmek ve barkod okuyucusunun tespit etmesi için öne çıkarmak amacıyla resme hafif bir işleme uygulayarak dengeler. Çoğu zaman, bu ayar IronBarcode'un bir barkod görüntüsünü okuması ve doğru çıktılar üretmesi için yeterlidir.Detailed: Okumadan barkod değerleri üretmedeReadingSpeed.Balancedayarını kullanmanın başarılı olmadığı durumlar için, kullanıcılarReadingSpeed.Detailedkullanmayı tercih edebilir. IronBarcode, barkod okuyucusunun barkodu tespit edebilmesi için barkod alanını daha net ve belirgin hale getirmek amacıyla görüntü üzerinde orta seviyede bir işlem yapacaktır. Bu ayar, küçük veya daha az keskin bir barkod görüntüsünü algılamak için çok kullanışlıdır.ExtremeDetail: Yoğun CPU proesinden dolayı en az önerilen ayardır. Barkodları okuyucu tarafından okunabilmesi için barkod görüntüsü üzerinde yoğun işlem gerçekleştirilecektir. Kullanıcıların bu ayarı seçmeden önce görüntü önişleme/yeni filtre uygulaması yapmaları tavsiye edilir.
Code39 Genişletilmiş Modunu Ne Zaman Kullanmalıyım?
Bu ayar, Code39 tipi barkodların genişletilmiş mod ile okunmasına ve yorumlanmasına olanak tanır; böylece tam ASCII Karakter Seti uygulanacaktır. UseCode39ExtendedMode'i true olarak ayarlamak, Code39 barkodlarının daha doğru okunmasını sağlayacaktır.
Özel Seçeneklerle Gelişmiş Barkod Okuma Nasıl Uygulanır?
Kullanıcılar tarafından performans veya doğruluğu artırmak için ayarlanabilecek tüm seçenekleri öğrendiğimize göre, işte bunların koda nasıl uygulanacağı. Aşağıdaki kod örneği BarcodeReaderOptions kapsamlı kullanımını gösterir:
:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-images-5.cs
using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Linq;
// Create custom reader options
var options = new BarcodeReaderOptions()
{
// Specify expected barcode types for better performance
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128 | BarcodeEncoding.Code39,
// Define specific area to scan (x, y, width, height in pixels)
CropArea = new Rectangle(100, 100, 500, 400),
// Set reading speed to balance accuracy and performance
Speed = ReadingSpeed.Balanced,
// Enable multithreading for better performance
Multithreaded = true,
MaxParallelThreads = 4,
// Remove false positives for accuracy
RemoveFalsePositive = true,
// Minimum scan lines that must agree for a valid result (default 2)
MinScanLines = 1,
// Enable Code39 extended mode if needed
UseCode39ExtendedMode = true,
// Set scan mode
ScanMode = BarcodeScanMode.Auto,
// Add image filters for better recognition
ImageFilters = new ImageFilterCollection() {
new SharpenFilter(),
new InvertFilter(),
new ContrastFilter()
}
};
// Read barcodes with custom options
var results = BarcodeReader.Read(@"C:\path\to\your\barcode-image.png", options);
// Process results
if (results.Any())
{
foreach (var barcode in results)
{
Console.WriteLine($"Barcode Type: {barcode.BarcodeType}");
Console.WriteLine($"Value: {barcode.Value}");
Console.WriteLine($"Position: {string.Join(", ", barcode.Points.Select(p => $"({p.X}, {p.Y})"))}");
Console.WriteLine("---");
}
}
else
{
Console.WriteLine("No barcodes found in the image.");
}
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System
Imports System.Linq
' Create custom reader options
Dim options As New BarcodeReaderOptions() With {
' Specify expected barcode types for better performance
.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128 Or BarcodeEncoding.Code39,
' Define specific area to scan (x, y, width, height in pixels)
.CropArea = New Rectangle(100, 100, 500, 400),
' Set reading speed to balance accuracy and performance
.Speed = ReadingSpeed.Balanced,
' Enable multithreading for better performance
.Multithreaded = True,
.MaxParallelThreads = 4,
' Remove false positives for accuracy
.RemoveFalsePositive = True,
' Minimum scan lines that must agree for a valid result (default 2)
.MinScanLines = 1,
' Enable Code39 extended mode if needed
.UseCode39ExtendedMode = True,
' Set scan mode
.ScanMode = BarcodeScanMode.Auto,
' Add image filters for better recognition
.ImageFilters = New ImageFilterCollection() From {
New SharpenFilter(),
New InvertFilter(),
New ContrastFilter()
}
}
' Read barcodes with custom options
Dim results = BarcodeReader.Read("C:\path\to\your\barcode-image.png", options)
' Process results
If results.Any() Then
For Each barcode In results
Console.WriteLine($"Barcode Type: {barcode.BarcodeType}")
Console.WriteLine($"Value: {barcode.Value}")
Console.WriteLine($"Position: {String.Join(", ", barcode.Points.Select(Function(p) $"({p.X}, {p.Y})"))}")
Console.WriteLine("---")
Next
Else
Console.WriteLine("No barcodes found in the image.")
End If
Kod örneğinden, BarcodeReaderOptions kullanmak için önce bunu başlatmamız, ardından BarcodeReaderOptions özelliklerini yukarıda belirtilen özelliklere göre belirleyip ayarlamamız gerektiğini görüyoruz. Başlatılan BarcodeReaderOptions, ardından resim dosyası ile birlikte BarcodeReader.Read() metodunda bir argüman olarak kullanılabilir. Bu, resimden barkod okurken BarcodeReaderOptions içindeki tüm ayarların uygulanmasını sağlar.
Çalışmada barkod tanınmıyorsa, sorun giderme kılavuzumuz yaygın problemler için çözümler ve barkod tarama doğruluğunu artırmaya yönelik ipuçları sunar.
Sıkça Sorulan Sorular
C#'ta barkod okuma için hangi görüntü formatları desteklenir?
IronBarcode, SVG (Ölçeklenebilir Vektör Grafikleri), JPEG, PNG, GIF, TIFF (Etiketli Görüntü Dosya Formatı) ve BMP (Bitmap Görüntü Dosyası) dahil olmak üzere birden fazla görüntü formatından barkod okumayı destekler. Bu kapsamlı format desteği, farklı görüntü türlerinden barkod çıkarmayı sağlamak için IronDrawing tarafından desteklenir.
Bir barkodu sadece bir kod satırı kullanarak bir görüntü dosyasından nasıl okuyabilirim?
IronBarcode ile, tek bir kod satırı kullanarak görüntülerden barkod okuyabilirsiniz: `var sonuçlar = IronBarCode.BarcodeReader.Read('yol/görüntü.png');`. Bu basit metod çağrısı, PNG, JPEG, GIF, BMP ve TIFF dosyalarından barkod verilerini otomatik olarak algılar ve çıkarır, karmaşık bir kurulum gerektirmez.
Görüntüleri okurken hangi barkod türlerinin aranacağını belirtebilir miyim?
Evet, IronBarcode, BarcodeReaderOptions'taki ExpectBarcodeTypes özelliğini kullanarak barkod türlerini belirlemenize olanak tanır. Bu hedefli yaklaşım, yalnızca görüntülerinizde bulmayı beklediğiniz barkod formatlarına odaklanarak okuma performansını artırır.
Belirli bir görüntü bölgesinden barkodları okumak mümkün mü?
Kesinlikle! IronBarcode, bir görüntü içinde barkodların bulunduğu belirli bölgeleri belirtmenize olanak tanıyan CropArea özelliği sunar. Bu özellik, özellikle büyük görüntüler veya barkodların yaklaşık konumunu bildiğiniz durumlarda kullanışlıdır, işleme hızını önemli ölçüde artırır.
Daha iyi doğruluk için gelişmiş okuma ayarlarını nasıl yapılandırırım?
IronBarcode, gelişmiş okuma ayarlarını yapılandırmak için BarcodeReaderOptions sınıfını sunar. Bu özellikler, zorlu görüntüler veya belirli barkod türleriyle çalışırken doğruluğu artırabilecek barkod tespit hassasiyeti, görüntü ön işleme ve diğer parametreleri özelleştirme seçeneklerini içerir.
Görüntülerden barkod okuma, C# geliştiricileri için neden basittir?
IronBarcode, birden fazla görüntü formatıyla kutudan çıkar çıkmaz çalışan BarcodeReader.Read() yöntemini sağlayarak barkod okuma işlemini basitleştirir. Geliştiricilerin yalnızca dosya adını veya dosya yolunu bir parametre olarak belirtmeleri yeterlidir, bu da barkod okuma işlevini herhangi bir C# uygulamasına entegre etmeyi son derece kolay hale getirir.
IronBarcode barkod görünümünü özelleştirme desteği sağlıyor mu?
Evet, IronBarcode, barkod görünümünü özelleştirmek için renk, boyut ve metin notları gibi geniş seçenekler sunar, bu da barkodları belirli tasarım gereksinimlerinize göre uyarlamanıza imkan tanır.
IronBarcode, iş süreçlerindeki verimliliği artırmaya nasıl yardımcı olabilir?
IronBarcode, hızlı ve doğru barkod üretimi ve okuma yeteneği sağlayarak, manuel veri girişi hatalarını azaltır ve envanter ile varlık takibini iyileştirerek iş süreçlerinin verimliliğini artırı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.

