Görüntüden Barkod Okuma C#

Görüntülerden barkod veya QR kod okumak için programatik bir yol mu arıyorsunuz? Eğer bir yazılımcıysanız ve kendi barkod okuyucu uygulamanızı oluşturmanız gerekiyorsa doğru yerdesiniz. Barkodlar, envanterin doğru bir şekilde takip edilmesi ve ürünlerin üretimden satış noktasına teslimatında kritik öneme sahiptir. .NET uygulamalarında farklı türdeki barkodları ve QR kodlarını kolayca tespit, tanıma ve okuma yapabiliriz. Bu makalede, birkaç basit adımı takip ederek C# kullanarak bir görüntüden barkod nasıl okunacağını göstereceğiz. Bu makaleyi barkod okuyucu veya tarayıcı uygulamaları geliştirmek için adım adım bir rehber olarak kullanabilirsiniz.

Öncelikle, giriş görüntüsünde mevcut olan barkodları okumak için C# Barkod Okuyucu API’sine bir göz atacağız. Ardından, görüntüden barkod verilerini tespit etme, tanıma ve çıkarma adımlarını inceleyeceğiz. Ayrıntılı adımları ve kod parçalarını bulacaksınız. Son olarak, daha fazla iyileştirme için yararlı bağlantılar sağlayacağız. Öyleyse başlayalım!

Bu makalede aşağıdaki konular ele alınacaktır:

  1. C# API ile Görüntüden Barkod Okuma
  2. Bir Görüntüden Barkod Okuma Adımları
  3. Bitmap’ten Barkod Okuma
  4. Akış Kullanarak Görüntüden Barkod Okuma
  5. Belirli Türdeki Barkodu Okuma
  6. Bir Görüntüden Birden Fazla Türdeki Barkodları Okuma
  7. Önceden Tanımlanmış Semboloji Setlerini Tespit Etme ve Okuma
  8. Bir Görüntüden Birden Fazla Barkod Tespit Etme ve Okuma
  9. Barkodun X ve Y Koordinatlarını Alma
  10. Görüntünün Belirli Bir Bölgesinden Barkod Okuma
  11. Görüntünün Birden Fazla Bölgesinden Barkod Okuma

C# API ile Görüntüden Barkod Okuma

Bir görüntüden barkod okumak için Aspose.BarCode for .NET API’sini kullanacağız. API, geniş bir barkod sembolojisi yelpazesini oluşturma, tarama ve okuma olanağı sağlar. Barkod görüntülerinin JPEG, TIFF, PNG, BMP ve GIF formatlarında işlenmesini mümkün kılar.

API, belirli görüntülerden 60’dan fazla farklı barkod türünü tanıma yeteneği sağlayan BarCodeReader sınıfını sunar. Barkodları tespit etmenin ilk adımı, barkodların bulunduğu bir görüntünün kaynağını belirtmektir. Bu bir dosya, bitmap nesnesi veya bir akış olabilir. Ardından, DecodeType parametresinde hedef sembolojileri belirtmek gerekir. DecodeType.AllSupportedTypes belirterek desteklenen tüm semboloji türlerine göz atabiliriz. Bu sınıfın ReadBarCodes() metodu, tanınan barkodların bir dizisini döndürür. API’nin BarCodeResult sınıfı, barkod türü, kod metni, bölge ve diğer parametreler gibi tanınan barkod verilerini saklar.

API ayrıca barkod okuyucunun okumak için görüntünün belirli bölgelerini belirtmesine de izin verir. Bu, .NET Rectangle nesnesi kullanılarak gerçekleştirilebilir ve varsayılan olarak barkod içermeyen görüntü alanlarında barkod bulma ihtiyacını ortadan kaldırır.

Lütfen API’nin DLL’sini indirin veya NuGet kullanarak yükleyin.

PM> Install-Package Aspose.BarCode 

C# kullanarak Görüntüden Barkod Okuma

Aşağıda verilen adımları takip ederek bir görüntüden barkod okumayı kolayca gerçekleştirebiliriz:

  1. Öncelikle, BarCodeReader sınıfını kullanarak bir görüntü yükleyin.
  2. readBarCodes() metodunu çağırın ve tanıma sonuçlarını BarCodeResult sınıf nesnesinde alın.
  3. Son olarak, sonuçlar arasında döngü yaparak barkodun türünü ve metnini gösterin.

Aşağıdaki kod örneği, C# kullanarak bir görüntüden barkod nasıl okunur gösterir.

// This code example demonstrates how to read barcode from an image file.
// Initialize barcode reader
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Sample.png");
// Read barcode and show results
foreach(BarCodeResult result in reader.ReadBarCodes())
{
Console.Out.WriteLine("CodeText: " + result.CodeText);
Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Görüntüden Barkod Okuma.

C# kullanarak bir görüntüden barkod okuma.

Bitmap’ten Barkod Okuma C#

Aşağıda verilen adımları takip ederek bir görüntüden barkod okumayı kolayca gerçekleştirebiliriz:

  1. Öncelikle, Bitmap sınıfını kullanarak bir görüntü yükleyin.
  2. Ardından, BarCodeReader sınıfının bir örneğini Bitmap nesnesi ile oluşturun.
  3. ReadBarCodes() metodunu çağırın ve tanıma sonuçlarını BarCodeResult sınıf nesnesinde alın.
  4. Son olarak, sonuçlar arasında döngü yaparak barkodun türünü ve metnini gösterin.

Aşağıdaki kod örneği, C# kullanarak Bitmap’ten barkod nasıl okunur gösterir.

// This code example demonstrates how to read barcode from bitmap.
// Load image in Bitmap
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\Code128.jpg");
// Initialize Barcode reader
BarCodeReader reader = new BarCodeReader(bmp);
// Read all barcodes in the provided area
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.Out.WriteLine("CodeText: " + result.CodeText);
Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Bitmap Görüntüsünden Barkod Okuma C#.

Bitmap’ten barkod okuma C#.

Akış Kullanarak Görüntüden Barkod Okuma C#

Aşağıda verilen adımları takip ederek bir dosya akışı kullanarak barkod görüntüsünü yükleyebilir ve barkodu okuyabilirsiniz:

  1. Öncelikle, FileStream sınıfını kullanarak bir görüntü yükleyin.
  2. Ardından, akış nesnesi ile BarCodeReader sınıfının bir örneğini oluşturun.
  3. ReadBarCodes() metodunu çağırın ve tanıma sonuçlarını BarCodeResult sınıf nesnesinde alın.
  4. Son olarak, sonuçlar arasında döngü yaparak barkodun türünü ve metnini gösterin.

Aşağıdaki kod örneği, C# kullanarak akış kullanarak bir görüntüden barkod nasıl okunur gösterir.

// This code example demonstrates how to read barcode from an image using file stream.
// Load image
Stream stream = new FileStream("C:\\Files\\BarCode\\MultipleBarcodes.jpeg", FileMode.Open, FileAccess.Read);
// Initialize Barcode reader
BarCodeReader reader = new BarCodeReader(stream);
// Read all barcodes in the provided area
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.Out.WriteLine("CodeText: " + result.CodeText);
Console.Out.WriteLine("Symbology type: " + result.CodeType);
}

Belirli Türdeki Barkodu Görüntüden Okuma C#

Tanıma süresini minimize etmek ve eski barkodları tanıma girişimlerinden kaçınmak için tanıma için dikkate alınacak hedef barkod sembolojilerini seçmek önerilir.

Aşağıda verilen adımları takip ederek hedef barkod türünü belirleyebilir ve bir görüntüden barkodu okuyabilirsiniz:

  1. Öncelikle, BarCodeReader sınıfını kullanarak bir görüntü yükleyin.
  2. Ardından, Code39Standard gibi bir barkod çözme türü ayarlayın.
  3. Sonrasında, ReadBarCodes() metodunu kullanarak tanıma sonuçlarını BarCodeResult sınıf nesnesinde alın.
  4. Son olarak, sonuçlar arasında döngü yaparak barkodun türünü ve metnini gösterin.

Aşağıdaki kod örneği, C# kullanarak bir görüntüden belirli türdeki barkod nasıl okunur gösterir.

// This code example demonstrates how to read barcode of a specific decode type from an image.
// Initialize barcode reader
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.Code39Standard);
// Read barcode of type Code39Extended
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.Out.WriteLine("CodeText: " + result.CodeText);
Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Belirli Türdeki Barkodu Görüntüden Tanıma

Belirli Türdeki Barkodu Görüntüden Tanıma C#.

Birden Fazla Türdeki Barkodu Görüntüden Okuma C#

Aşağıda verilen adımları takip ederek birden fazla barkod türünü belirleyebiliriz:

  1. Öncelikle, BarCodeReader sınıfını kullanarak bir görüntü yükleyin.
  2. Ardından, SetBarCodeReadType() metodunu kullanarak barkod çözme türlerini ayarlayın.
  3. Sonrasında, ReadBarCodes() metodunu kullanarak tanıma sonuçlarını BarCodeResult sınıf nesnesinde alın.
  4. Son olarak, sonuçlar arasında döngü yaparak barkodun türünü ve metnini gösterin.

Aşağıdaki kod örneği, C# kullanarak bir görüntüden birden fazla türdeki barkod nasıl okunur gösterir.

// This code example demonstrates how to read barcode of multiple decode types from an image.
// Initialize barcode reader
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png");
reader.SetBarCodeReadType(DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);
// Read barcodes
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.Out.WriteLine("CodeText: " + result.CodeText);
Console.Out.WriteLine("Symbology type: " + result.CodeType);
Console.Out.WriteLine("-------------------------");
}
Bir Görüntüden Birden Fazla Türdeki Barkodları Oku C#

Bir Görüntüden Birden Fazla Türdeki Barkodları Oku C#

Ayrıca, BarCodeReader sınıfının yapıcısında birden fazla çözme türünü aşağıda gösterildiği gibi belirtebiliriz:

BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

Önceden Tanımlanmış Barkod Türleri Setinden Görüntüden Okuma C#

Tanıma için DecodeTypes sınıfında tanımlanmış bir önceden tanımlanmış semboloji setini okuyabiliriz. Aşağıdaki önceden tanımlanmış setlerden birini ayarlayabiliriz:

  • AllSupportedTypes - tüm desteklenen barkod türleri
  • Types1D - tüm desteklenen 1D sembolojileri
  • Types2D - tüm desteklenen 2D sembolojileri
  • PostalTypes - esas olarak posta hizmetleri tarafından kullanılan tüm desteklenen postal sembolojileri
  • MostCommonTypes - tanımlanmış en yaygın kullanılan barkod standartları seti

Aşağıda verilen adımları takip ederek bir önceden tanımlanmış set belirtebiliriz:

  1. Öncelikle, BarCodeReader sınıfını kullanarak bir görüntü yükleyin.
  2. Ardından, BarCodeReader yapıcısında veya SetBarCodeReadType metodunda bir barkod çözme türü ayarlayın, örneğin DecodeType.Types2D.
  3. Sonrasında, ReadBarCodes() metodunu kullanarak tanıma sonuçlarını BarCodeResult sınıf nesnesinde alın.
  4. Son olarak, sonuçlar arasında döngü yaparak barkodun türünü ve metnini gösterin.

Aşağıdaki kod örneği, C# kullanarak önceden tanımlanmış sembolojiler setini kullanarak bir barkod nasıl okunur gösterir.

// This code example demonstrates how to read a barcode using predefined set of symbologies.
// Initialize barcode reader
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.Types1D);
// Read barcode and show results
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.Out.WriteLine("CodeText: " + result.CodeText);
Console.Out.WriteLine("Symbology type: " + result.CodeType);
Console.Out.WriteLine("-------------------------");
}
Önceden Tanımlanmış Barkod Türleri Setinden Görüntüden Okuma C#

Önceden Tanımlanmış Barkod Türleri Setinden Görüntüden Okuma C#

Görüntüden Birden Fazla Barkod Okuma C#

Aşağıda verilen adımları takip ederek bir görüntüden mevcut tüm barkodları okuyabiliriz:

  1. Öncelikle, BarCodeReader sınıfını kullanarak bir görüntü yükleyin.
  2. Ardından, ALL_SUPPORTED_TYPES olarak bir barkod çözme türü ayarlayın.
  3. Sonrasında, ReadBarCodes() metodunu kullanarak tanıma sonuçlarını BarCodeResult sınıf nesnesinde alın.
  4. Son olarak, sonuçlar arasında döngü yaparak barkodun türünü ve metnini gösterin.

Aşağıdaki kod örneği, C# kullanarak bir görüntüden birden fazla barkod nasıl okunur gösterir.

// This code example demonstrates how to read barcode multiple barcodes from an image.
// Initialize barcode reader
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.AllSupportedTypes);
// Read all types of barcode available on the input image
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.Out.WriteLine("CodeText: " + result.CodeText);
Console.Out.WriteLine("Symbology type: " + result.CodeType);
Console.Out.WriteLine("-------------------------");
}
Bir Görüntüden Birden Fazla Barkod Okuma.

Bir görüntüden birden fazla barkod okuma.

Barkodun X ve Y Koordinatlarını Alma C#

Aşağıda verilen adımları takip ederek bir görüntüden tespit edilen barkodun X ve Y koordinatlarını okuyabiliriz:

  1. Öncelikle, BarCodeReader sınıfını kullanarak bir görüntü yükleyin.
  2. Ardından, ReadBarCodes() metodunu kullanarak tanıma sonuçlarını BarCodeResult sınıf nesnesinde alın.
  3. Sonrasında, sonuçlar arasında döngü yaparak Region‘ın null olmadığını kontrol edin.
  4. Ardından, barkod bölgesini sınırlayan Points kullanarak Points dizisini alın.
  5. Son olarak, barkodun X ve Y noktalarını gösterin.

Aşağıdaki kod örneği, C# kullanarak bir görüntüden barkodun X ve Y koordinat noktalarını nasıl alacağınızı gösterir.

// This code example demonstrates how to read X & Y region point of barcodes from an image.
// Initialize barcode reader
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.AllSupportedTypes);
// Read barcode
foreach (BarCodeResult result in reader.ReadBarCodes())
{
if (result.Region != null)
{
// Display x and y coordinates of all the barcodes detected
Point[] point = result.Region.Points;
Console.Out.WriteLine("Top left coordinates: X = " + point[0].X + ", Y = " + point[0].Y);
Console.Out.WriteLine("Bottom left coordinates: X = " + point[1].X + ", Y = " + point[1].Y);
Console.Out.WriteLine("Bottom right coordinates: X = " + point[2].X + ", Y = " + point[2].Y);
Console.Out.WriteLine("Top right coordinates: X = " + point[3].X + ", Y = " + point[3].Y);
}
}
Barkodun X ve Y Koordinatlarını Alma

Bir görüntüden barkodun X ve Y koordinatlarını alma.

Görüntünün Belirli Bir Bölgesinden Barkod Okuma C#

Aşağıda verilen adımları takip ederek bir görüntünün belirli bir bölgesinden barkod okuyabiliriz:

  1. Öncelikle, Bitmap yöntemini kullanarak bir görüntü dosyasının tampon verisini okuyun.
  2. Ardından, BarCodeReader sınıfının bir örneğini oluşturun. Bu, bir görüntü, bir dikdörtgen alan ve bir Çözme Türü alır.
  3. Sonrasında, ReadBarCodes() metodunu kullanarak tanıma sonuçlarını BarCodeResult sınıf nesnesinde alın.
  4. Son olarak, sonuçlar arasında döngü yaparak barkodun türünü ve metnini gösterin.

Aşağıdaki kod örneği, C# kullanarak bir görüntünün belirli bir bölgesinden barkod nasıl okunur gösterir.

// This code example demonstrates how to read barcode from specific region of an image.
// Load image
Bitmap img = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.jpeg");
// Create an instance of BarCodeReader class
// and specify an area to look for the barcode
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 400, 200));
// Read all barcodes in the provided area
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.Out.WriteLine("CodeText: " + result.CodeText);
Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Görüntünün Belirli Bir Bölgesinden Barkod Okuma.

Bir görüntünün belirli bir bölgesinden barkod okuma C#.

Görüntünün Birden Fazla Bölgesinden Barkod Okuma C#

Aşağıda verilen adımları takip ederek bir görüntünün birden fazla bölgesinden barkod okuyabiliriz:

  1. Öncelikle, Bitmap sınıfını kullanarak bir görüntü yükleyin.
  2. Ardından, Rectangle sınıfını kullanarak dikdörtgenleri tanımlayın.
  3. Sonrasında, BarCodeReader sınıfının bir örneğini oluşturun.
  4. Bu arada, bir görüntü nesnesi ve dikdörtgenler ile SetBarCodeImage() metodunu çağırın.
  5. Opsiyonel olarak, SetBarCodeReadType() metodunu kullanarak barkod okuma türlerini ayarlayın.
  6. Sonrasında, ReadBarCodes() metodunu kullanarak tanıma sonuçlarını BarCodeResult sınıf nesnesinde alın.
  7. Son olarak, sonuçlar arasında döngü yaparak barkodun türünü ve metnini gösterin.

Aşağıdaki kod örneği, C# kullanarak bir görüntünün birden fazla bölgesinden barkod nasıl okunur gösterir.

// This code example demonstrates how to read barcode from specific region of an image.
// Load image in Bitmap
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.png");
// Rectangle of a 2D barcode in the source image
Rectangle rect2D = new Rectangle(0, 0, 400, 200);
// Rectangle of Code128 barcode in the source image
Rectangle rectCode128 = new Rectangle(450, 100, 600, 180);
// Initialize Barcode reader
BarCodeReader reader = new BarCodeReader();
reader.SetBarCodeImage(bmp, new Rectangle[] { rect2D, rectCode128 });
reader.SetBarCodeReadType(DecodeType.AllSupportedTypes);
// Read all barcodes in the provided area
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.Out.WriteLine("CodeText: " + result.CodeText);
Console.Out.WriteLine("Symbology type: " + result.CodeType);
Console.Out.WriteLine("-------------------------");
}
Görüntünün Birden Fazla Bölgesinden Barkod Okuma.

Bir görüntünün birden fazla bölgesinden barkod okuma C#.

Ücretsiz Lisans Alın

Kütüphaneyi değerlendirme sınırlamaları olmadan denemek için ücretsiz geçici bir lisans alabilirsiniz.

Sonuç

Bu makalede şunları öğrendik:

  • Barkod görüntü dosyasını yüklemek;
  • Görüntüleri bitmap olarak veya dosya akışı kullanarak okumak;
  • Bir görüntüden farklı türdeki barkodları tanımak;
  • Barkod koordinatlarını okumak;
  • Tek bir görüntüden birden fazla barkodu tespit etmek ve okumak;
  • Bir görüntünün belirli bir alanından barkodları tespit etmek ve okumak.

C# kullanarak bir görüntüden barkod okumanın yanı sıra, Aspose.BarCode for .NET API’sini kullanarak belgelere erişebilirsiniz. Herhangi bir belirsizlik durumunda, lütfen ücretsiz destek forumumuzda bizimle iletişime geçmekten çekinmeyin.

Ayrıca Bakınız