IRONSOFTWAREHOME

How to Read Barcodes From System.Drawing in C#

Hairil Hasyimi Bin Omar
Hairil Hasyimi Bin Omar
Updated: 4 Haziran 2026

IronBarcode, tüm işletim sistemlerinde barkodları System.Drawing nesnelerinden otomatik olarak AnyBitmap dönüştürerek okuyabilir; bu sayede Microsoft'un yalnızca Windows için getirdiği System.Drawing desteği sınırlamasını çözer.

Giriş

System.Drawing nesneleri, .NET'te görüntü işleme görevlerinde yaygın olarak kullanılır. Ancak, Microsoft, System.Drawing desteğini durdurdu ve artık yalnızca Windows'u destekleyerek MacOS ve Linux için desteği kesmiştir. Bu değişiklik, IronBarcode'u Windows dışındaki işletim sistemlerinde kullanan geliştiriciler için sorunlar yarattı, çünkü barkodlarla çalışmak tipik olarak grafikler, görüntüler ve fontlar içerir.

Bu sorunu çözmek için IronDrawing'i tanıttık. Iron Software tarafından oluşturulan bu ücretsiz ve açık kaynaklı kütüphane, çapraz platform desteği sağlar ve sorunsuz bir deneyim sunar. IronBarcode'u NuGet'ten yüklediğinizde, IronDrawing projenize otomatik olarak dahil edilir.

Barkod okuma konusunda yeni olan geliştiriciler için temel kavramları ve temel kullanım desenlerini içeren kapsamlı Barkod Okuma Eğitimimize bakın. Farklı görüntü formatlarıyla çalışıyorsanız, görüntülerden barkod okuma rehberimiz ek bağlam ve örnekler sunar.

Hızlı Başlangıç: Tek bir satırla AnyBitmap kullanarak bir barkod okuyun

Bu kod parçası, IronBarcode'un bir System.Drawing.Bitmap oluşturarak ve IronDrawing'ya otomatik olarak AnyBitmap dönüştürerek barkodları nasıl okuduğunu gösterir. Sadece bir satır ile, her OS üzerindeki geliştiriciler hızlı sonuçlar elde eder.

  1. 1Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. 2Bu kod parçacığını kopyalayın ve çalıştırın.

    var results = IronBarCode.BarcodeReader.Read((AnyBitmap)(new System.Drawing.Bitmap("yourImage.png")));
    C#
  3. 3Canlı ortamınızda test için dağıtım yapın

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

System.Drawing Nesneleri AnyBitmap'ye Nasıl Dönüştürülür?

System.Drawing'den barkod okumak, nesneyi AnyBitmap'ye dönüştürmeyi gerektirir. IronDrawing kullanım kolaylığı için tasarlanmış ve System.Drawing görüntü nesnelerini IronSoftware.Drawing olarak adlandırılan AnyBitmap nesnelerine otomatik bir şekilde dönüştürmeyi destekler.

System.Drawing nesnelerinin ötesinde, diğer türlerden dönüştürmeyi de destekliyoruz:

  • System.Drawing.Bitmap
  • System.Drawing.Image
  • SkiaSharp.SKBitmap
  • SkiaSharp.SKImage
  • SixLabors.ImageSharp

Yukarıdaki nesnelerin dönüşümüne dair kod örneğine bakın. Aşağıda, System.Drawing nesnelerinden IronSoftware.Drawing.AnyBitmap'ye barkod görüntülerinin nasıl dönüştürüldüğü gösterilmektedir:

Hangi System.Drawing Türleri Dönüştürülebilir?

using IronSoftware.Drawing;
using System.Collections.Generic;

List<AnyBitmap> barcodes = new List<AnyBitmap>();

// Instantiate System.Drawing.Bitmap
System.Drawing.Bitmap bitmapFromBitmap = new System.Drawing.Bitmap("test1.jpg");

// Cast from System.Drawing.Bitmap to AnyBitmap
AnyBitmap barcode1 = bitmapFromBitmap;

barcodes.Add(barcode1);

// Instantiate System.Drawing.Bitmap
System.Drawing.Image bitmapFromFile = System.Drawing.Image.FromFile("test2.png");

// Cast from System.Drawing.Image to AnyBitmap
AnyBitmap barcode2 = bitmapFromFile;

barcodes.Add(barcode2);

Bu kod, System.Drawing nesneleri ile IronBarcode arasında IronDrawing üzerinden sorunsuz entegrasyonu gösterir. Bu uyumluluk, QR kodları, Kod 128, Kod 39 ve diğer birçok format dahil olmak üzere çeşitli barkod formatlarına yayılır. Ayrıntılar için desteklenen barkod formatları kılavuzumuza bakın.

Neden Kendiliğinden Dönüşüm Çalışıyor?

Yukarıdaki kodda, iki barkod görüntüsünü System.Drawing.Bitmap ve System.Drawing.Image olarak yükledik. Daha sonra, bu nesneleri AnyBitmap'ye otomatik olarak atayarak onları bir AnyBitmap nesnesi listesine ekledik.

IronDrawing'ün otomatik dönüştürme mekanizması, operatör aşırı yükleme kullanır ve System.Drawing türleri ile AnyBitmap arasında şeffaf bir dönüşüm sağlar. Bu tasarım deseni, geliştiricilerin mevcut kodlarını korurken çapraz platform uyumluluğu kazanmasına izin verir. Dönüşüm, çözünürlük, renk derinliği ve piksel verileri dahil olmak üzere tüm görüntü özelliklerini korur, kalite kaybı olmadan.

Kendiliğinden mi Yoksa Açık Dönüştürmeyi mi Kullanmalıyım?

Kendiliğinden dönüşüm kolaylık sağlarken, bazı senaryolarda açık dönüşüm tercih edilebilir:

// Implicit casting - clean and simple for straightforward conversions
System.Drawing.Bitmap systemBitmap = new System.Drawing.Bitmap("barcode.png");
AnyBitmap anyBitmap = systemBitmap; // Implicit cast

// Explicit casting - useful when type clarity is important
System.Drawing.Image systemImage = System.Drawing.Image.FromFile("qrcode.jpg");
AnyBitmap explicitBitmap = (AnyBitmap)systemImage; // Explicit cast

// When working with nullable types or conditional logic
System.Drawing.Bitmap? nullableBitmap = GetBitmapFromSource();
if (nullableBitmap != null)
{
    AnyBitmap result = (AnyBitmap)nullableBitmap; // Explicit cast for clarity
    // Process the barcode
}

Yaygın Dönüştürme Hataları Nelerdir?

System.Drawing'yi AnyBitmap'ye dönüştürürken, geliştiriciler karşılaşabilir:

  1. Null Referans İstisnaları: Önce nesnenizin System.Drawing olmadığını doğrulayın.
  2. Desteklenmeyen Format İstisnaları: Bazı egzotik görüntü formatları önceden dönüştürme gerektirebilir
  3. Bellek Sorunları: Büyük görüntüler uygun bertaraf desenleri gerektirir

Dönüştürme sorunları için, barkod tanıma sırasında yaygın sorunlara çözümler sağlayan sorun giderme kılavuzumuz var.

AnyBitmap Nesnelerinden Barkodları Nasıl Okurum?

IronBarcode, tüm yöntemlerde ek bir yapılandırma gerektirmeden IronSoftware.Drawing.AnyBitmap nesnelerini kabul eder. Bu, Windows dışı işletim sistemlerinde System.Drawing nesneleri kullanırken geliştirmeyi basitleştirir. Aşağıdaki kod bunu gösterir:

AnyBitmap Parametrelerini Hangi Yöntemler Kabul Eder?

using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;

// Create a list of image file paths to read barcodes from
List<string> barcodeFiles = new List<string>
{
    "test1.jpg",
    "test2.png"
};

foreach (var barcodeFile in barcodeFiles)
{
    // Read the barcode from file path
    var results = BarcodeReader.Read(barcodeFile);
    foreach (var result in results)
    {
        // Output the detected barcode value
        Console.WriteLine(result.Value);
    }
}

Temel Read yönteminin ötesinde, IronBarcode birden çok AnyBitmap parametresini kabul eden yöntemler sağlar. Gelişmiş senaryolar için, çoklu barkodlar okuma kılavuzumuzda bir görüntüde birden çok barkodun verimli şekilde işlenmesini gösteren örnekler bulunmaktadır.

// Advanced barcode reading with options
var readerOptions = new BarcodeReaderOptions
{
    // Specify barcode types to search for
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    // Set confidence threshold
    ConfidenceThreshold = 0.95
};

// Read with specific options
var advancedResults = BarcodeReader.Read(anyBitmap, readerOptions);
C#

Birden Fazla Barkod Sonucu Nasıl İşlenir?

Yukarıdaki kod, önceki örneği genişletir. AnyBitmap listesini doldurduktan sonra, her AnyBitmap nesnesine Read metodunu çağırarak üzerinde iterasyon yaptık ve sonuç olarak IronBarCode.BarcodeResults döndü. Sonuçları yineleyerek barkod değerlerini konsola yazdırdık.

Birden fazla barkodu işlerken, daha iyi performans için paralel işlemden yararlanın:

// Parallel processing for multiple barcode images
var barcodeFiles = Directory.GetFiles("barcodes/", "*.png");
var allResults = new ConcurrentBag<BarcodeResult>();

Parallel.ForEach(barcodeFiles, file =>
{
    var bitmap = new System.Drawing.Bitmap(file);
    var anyBitmap = (AnyBitmap)bitmap;
    var results = BarcodeReader.Read(anyBitmap);
    
    foreach (var result in results)
    {
        allResults.Add(result);
    }
    
    bitmap.Dispose(); // Clean up resources
});

// Process all results
foreach (var result in allResults)
{
    Console.WriteLine($"Found {result.BarcodeType}: {result.Value}");
}

Başka Hangi IronDrawing Özelliklerini Kullanabilirim?

IronSoftware.Drawing işlevselliği, görüntüleri dönüştürmenin ötesine gider. Barkodları ve QR kodlarını biçimlendirmek için kullanışlı olan renkler ve fontlar gibi görüntü işleme yönlerini ele alır. IronDrawing'yi kullanarak QR kodları özelleştirme ve logolar ekleme nasıl yaptığımızı keşfedin.

IronDrawing barkod işlemenin yanında güçlü görüntü işleme yetenekleri sağlar:

// Using IronDrawing for image preprocessing
using IronSoftware.Drawing;

// Load and preprocess an image before barcode reading
AnyBitmap preprocessedImage = AnyBitmap.FromFile("noisy-barcode.jpg");

// Apply image filters to improve barcode readability
preprocessedImage = preprocessedImage.ToGrayScale();
preprocessedImage = preprocessedImage.Contrast(1.5); // Increase contrast
preprocessedImage = preprocessedImage.Sharpen(); // Sharpen image

// Read the preprocessed barcode
var improvedResults = BarcodeReader.Read(preprocessedImage);

Belirli görüntü düzeltmeleri gerektiren senaryolar için, görüntü düzeltme rehberimiz barkod okunabilirliğini artırmak için filtrelerin nasıl kullanılacağını detaylandırır.

IronDrawing Üzerine Neden System.Drawing Tercih Edilmeli?

IronDrawing, System.Drawing üzerinde ikna edici avantajlar sunar:

  1. Platform Bağımsız Destek: Windows, Linux ve macOS'ta sorunsuz çalışırken, System.Drawing (sadece Windows için .NET Core/5+ içinde)
  2. Modern Mimari: Daha iyi performans ve bellek yönetimi için SkiaSharp ve ImageSharp üzerinde kurulmuştur
  3. Basitleştirilmiş API: Modern kolaylıklar eklerken tanıdık System.Drawing benzeri arayüzleri korur
  4. Aktif Geliştirme: Düzenli güncellemeler ve iyileştirmeler, bakıma alınmış System.Drawing'ün aksine
  5. Daha İyi Entegrasyon: Iron Software ürünleriyle optimal performans tasarımına sahip

Özellikle bulut ortamları için devreye alma hususları için, kullandığımız Azure'a dağıtma ve AWS'ye dağıtma rehberlerimize bakın, bu rehberler IronDrawing kullanılarak çapraz platform uyumluluğu hakkında özel notlar içerir.

Masaüstü uygulamaları, web hizmetleri veya bulut tabanlı çözümler oluştururken, IronDrawing, barkod işleme kodunuzun tüm platformlarda taşınabilir ve etkili olmasını sağlar, bu da modern .NET geliştirmesi için ideal bir seçim haline getirir.

Sıkça Sorulan Sorular

Windows dışındaki platformlarda System.Drawing nesnelerinden barkodları nasıl okuyabilirim?

IronBarcode, System.Drawing nesnelerinden çapraz platformda barkod okumayı IronDrawing aracılığıyla otomatik olarak işler. IronDrawing, bunları AnyBitmap formatına dönüştürür. Bu, Microsoft'un yalnızca Windows platformlarına özgü System.Drawing sınırlamasını çözerek MacOS ve Linux sistemlerinde sorunsuz barkod okumanıza olanak tanır.

IronDrawing nedir ve neden barkod okuma ile birlikte verilir?

IronDrawing, Iron Software tarafından oluşturulmuş, grafik işlemleri için çapraz platform desteği sağlayan ücretsiz, açık kaynaklı bir kütüphanedir. NuGet'ten IronBarcode yüklediğinizde otomatik olarak dahil edilir ve System.Drawing nesnelerinden tüm işletim sistemlerinde barkod okunmasını AnyBitmap formatına dönüştürerek sağlar.

System.Drawing.Bitmap'i barkod okumak için nasıl dönüştürebilirim?

System.Drawing.Bitmap'ten barkodları basit bir şekle AnyBitmap olarak döküp okuyabilirsiniz: `var results = BarcodeReader.Read((AnyBitmap)(new System.Drawing.Bitmap("yourImage.png")));`. IronBarcode, IronDrawing'in dolaylı döküm özelliğiyle dönüşümü otomatik olarak işler.

Linux ve MacOS'ta System.Drawing kullanarak barkod okuyabilir miyim?

Evet, IronBarcode, Linux ve MacOS'ta System.Drawing nesnelerinden barkod okunmasını IronDrawing aracılığıyla sağlar. Bu, System.Drawing nesnelerini çapraz platform AnyBitmap formatına otomatik olarak dönüştürür. Böylece Microsoft'un Windows'a özgü System.Drawing desteği sınırlamasını aşar.

Hangi tür System.Drawing nesneleri barkod okumada kullanılabilir?

IronBarcode, System.Drawing.Bitmap ve diğer resim türlerini de kapsayan çeşitli System.Drawing nesnelerinden barkod okuma desteği sağlar. Bu nesneler, çapraz platform barkod tarama işlevi sağlayan IronDrawing'in dolaylı döküm özelliği ile otomatik olarak AnyBitmap'e dönüştürülür.

System.Drawing'den barkodları okumak için basit bir tek satırlık çözüm var mı?

Evet, IronBarcode bir satırlık çözüm sunar: `var results = BarcodeReader.Read((AnyBitmap)(new System.Drawing.Bitmap("yourImage.png")));`. Bu tek satırda bir System.Drawing.Bitmap oluşturur, IronDrawing aracılığıyla AnyBitmap'e döker ve resimdeki tüm barkodları okur.

Is IronDrawing included when I install IronBarcode?

Yes, when you install IronBarcode from NuGet, IronDrawing is automatically included, ensuring seamless integration for cross-platform barcode scanning.

How do I handle multiple barcodes in a single image using IronBarcode?

Use the BarcodeReader.Read method with AnyBitmap, and leverage parallel processing to efficiently handle and read multiple barcodes in a single image.

What image processing features does IronDrawing provide?

IronDrawing can handle image processing tasks such as color adjustment and font handling, which are useful when styling barcodes and QR codes.

How does implicit casting help in cross-platform development?

Implicit casting in IronDrawing allows developers to convert System.Drawing objects to AnyBitmap without changing existing code, facilitating cross-platform compatibility and development for Linux, macOS, and Windows.

Başlamaya Hazır mısınız?

Nuget Downloads 2,422,100Sürüm:2026.9yeni yayınlandı

ÜCRETSİZİNİZİ EDİNİN

30 günlük Deneme Anahtarınızı anında edinin.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmez
bullet_testÜretimde Test
filigran olmadan
bullet_calendar30 gün tamamen
işlevsel ürün
bullet_supportDeneme sırasında teknik
24/5 destek
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez
PDF için C# NuGet Kütüphanesi
NuGet ile yükleyin

Sürüm: 2026.9

PM > Install-Package BarCode
nuget.org/packages/BarCode/
  1. Çözüm Gezgini'nde Referanslar'a sağ tıklayın, NuGet Paketlerini Yönet
  2. Gözat'ı seçin ve "IronBarCode" arayın
  3. Paketi seçin ve yükleyin
C# PDF DLL
DLL İndir

Sürüm: 2026.9

  1. ~/Libs gibi bir yere, Çözüm dizininizde IronBarCode'u indirip çıkarın
  2. Visual Studio Çözüm Gezgini'nde, Başvurulara sağ tıklayın. Gözat'ı seçin, "IronBarCode.dll"

$999 adresinden lisanslar

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez