IRONSOFTWAREHOME
IRONBARCODE KULLANARAK

.NET'te Bir Barkod Okuyucu SDK'sı Nasıl Oluşturulur?

Curtis Chau
Curtis Chau
Updated: 28 Haziran 2026

IronBarcode, .NET geliştiricilerinin uygulamalarına minimum kod ile barkod okuma yetenekleri eklemesine olanak tanır. Birden fazla formatı destekler; bunlar arasında 1D ve 2D barkodlar, çeşitli görüntü kaynakları bulunur ve üretim ortamları için makine öğrenimi tabanlı algılama ile yüksek doğruluk sunar.

Barkod tarama, envanter yönetiminden perakende ve lojistiğe kadar birçok uygulama için kritik öneme sahiptir. .NET uygulamalarınıza barkod okuma entegrasyonu sayesinde veri alımını basitleştirebilir, iş akışlarını otomatikleştirebilir ve verimliliği artırabilirsiniz. Barkod okuyucu çözümleri değerlendirilirken, desteklenen formatlar, işleme hızı ve entegrasyon karmaşıklığı gibi faktörler dikkate alınmalıdır. IronBarcode kütüphanesi, mükemmel hata toleransı özellikleriyle birlikte tam çapraz platform uyumluluğu sunar.

IronBarcode, barkodlarla çalışma sürecini basitleştiren etkili bir .NET kütüphanesidir. Bu araç ile görüntülerden barkod okuyabilir, streamler ve PDF dosyalarından barkod okuyabilir, ayrıca C# QR Code Generator kullanarak QR kodları oluşturabilirsiniz. Bu makale, .NET uygulamanıza barkod taramayı nasıl entegre edeceğinizi gösterir ve barkod tarama işlevselliğini sunmak için bir API veya Web Uygulaması entegrasyonu oluşturmaya odaklanır. Kütüphane, gelişmiş oluşturma yetenekleri ve stil seçenekleri ile 1D ve 2D barkodlar dahil olmak üzere çeşitli barkod formatları destekler.

IronBarcode Entegrasyonu İçin En İyi Kullanım Durumları Nelerdir?

IronBarcode, bu senaryolarda üstünlük sağlar:

.NET'te Bir Barkod Okuyucu SDK'sı Nasıl Oluşturabilirim?

Uygulamanızda bir hizmet olarak sunulabilecek bir barkod okuyucu oluşturmak için IronBarcode'u bir REST API veya Web Uygulaması ile entegre edin. Mimari seçimi, işlem ihtiyaçlarınıza bağlıdır: ara sıra taramalar için tek görsel işlem, belge iş akışları için toplu işlem veya sürekli tarama uygulamaları için akış işlemi. ASP.NET Core kullanarak doğru bir iş parçacığı güvenliği düşünceleri ile bir örnek burada. Kütüphanenin okuma özellikleri, en iyi doğruluk için gelişmiş görüntü oluşturma filtrelerini içerir.

  1. C# içinde barkod okumak için .NET kütüphanesini yükleyin NuGet paketleri kullanarak
  2. Uygun hata yönetimi ile yeniden kullanılabilir bir barkod tarama sınıfı oluşturun
  3. Farklı kaynaklardan barkod okumak için yöntemler geliştirin Uygulamanıza barkod görüntü okumasını entegre etmek için ayarları iyileştirin improve settings
  4. Performansı test edin ve geliştirin okuma hızı seçenekleri ile

Başlamadan Önce Neye İhtiyacım Var?

Eğer henüz yapmadıysanız, projeniz için IronBarcode'u indirin. Planladığınız kullanım için uygun lisans anahtarına sahip olduğunuzdan emin olun. IronBarcode'un işlevselliğini genel bir API aracılığıyla ifşa etmek veya bağımsız bir hizmet olarak yeniden satmak, ek lisanslama (SDK, OEM veya SaaS) gerektirir. Lisanslama seçeneklerini anladığınızdan emin olun. Geliştirme ortamları için, ücretsiz deneme sürümünü kullanmaya başlayabilir ve production için hazır olduğunuzda lisans anahtarınızı uygulayabilirsiniz. En son güncellemeler ve kilometre taşları için değişiklik günlüğünü inceleyin.

En iyi performans için, dağıtım ortamınızı göz önünde bulundurun. IronBarcode, platformlar arası uyumluluk sağlamakta olup, Windows, Linux, macOS, Docker ve Azure ile AWS Lambda gibi bulut platformlarını destekler. Mobil geliştiriciler, Blazor entegrasyonu aracılığıyla Android ve iOS için destek kullanabilir. .NET MAUI uygulamaları için barkod tarayıcı okuma eğitimini izleyin.

Bir Barkod Tarayıcı Sınıfını Nasıl Oluştururum?

IronBarcode'yi kurup projenize yükledikten sonra, IronBarcode'un işlevselliğini entegre eden ve bunu bir API uç noktası olarak açığa çıkaran yeniden kullanılabilir bir barkod tarayıcı sınıfı oluşturabilirsiniz. Uygulama, zorlu senaryolar için performans iyileştirmelerini ve görüntü düzeltme ile yönlendirme düzeltme içerir. Çubuk kodu konumları tahmin edilebilir olduğunda daha hızlı işlem için kırpma bölgelerini uygulamayı düşünün:

using IronBarCode;
using System.IO;
using System.Collections.Concurrent;
using System.Threading.Tasks;

namespace BarcodeIntegration
{
    public class BarcodeScanner
    {
        private static readonly ConcurrentDictionary<string, BarcodeReaderOptions> _optionsCache = new();
        
        static BarcodeScanner()
        {
            // Set the license key
            IronBarCode.License.LicenseKey = "Your-License-Key";
        }

        // Method to read a barcode from an image file with performance optimization
        public string ReadBarcodeFromImage(string imagePath, BarcodeReadingSpeed speed = BarcodeReadingSpeed.Balanced)
        {
            try
            {
                var options = GetCachedOptions(speed);
                // Try to read the barcode from the given image path
                var barcode = BarcodeReader.Read(imagePath, options);
                return barcode?.ToString() ?? "No Barcode Found"; // Return the barcode string or indicate no barcode was found
            }
            catch (Exception ex)
            {
                // Return an error message if an exception occurs
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a stream (e.g., file upload or memory stream)
        public async Task<string> ReadBarcodeFromStreamAsync(Stream inputStream)
        {
            try
            {
                var options = GetCachedOptions(BarcodeReadingSpeed.Detailed);
                // Enable image correction for better accuracy
                options.ImageFilters = new[] { 
                    new SharpenFilter(), 
                    new ContrastFilter() 
                };
                
                // Try to read the barcode from the given stream
                var barcode = await Task.Run(() => BarcodeReader.Read(inputStream, options));
                return barcode?.ToString() ?? "No barcode found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a PDF file with batch processing support
        public async Task<List<string>> ReadBarcodesFromPdfAsync(string filePath)
        {
            try
            {
                var options = new BarcodeReaderOptions
                {
                    ExpectMultipleBarcodes = true,
                    Speed = BarcodeReadingSpeed.Detailed
                };
                
                // Try to read barcodes from the given PDF file path
                var barcodes = await Task.Run(() => BarcodeReader.ReadPdf(filePath, options));
                return barcodes.Select(b => b.ToString()).ToList();
            }
            catch (Exception ex)
            {
                return new List<string> { $"Error reading barcode: {ex.Message}" };
            }
        }
        
        // Cache reader options for performance
        private BarcodeReaderOptions GetCachedOptions(BarcodeReadingSpeed speed)
        {
            return _optionsCache.GetOrAdd(speed.ToString(), _ => new BarcodeReaderOptions
            {
                Speed = speed,
                AutoRotate = true,
                RemoveFalsePositive = true
            });
        }
    }
}

Bu geliştirilmiş BarcodeScanner sınıfı, seçenekler önbellekleme yoluyla performans optimizasyonları, daha iyi ölçeklenebilirlik için asenkron işleme ve doğruluğu artırmak için görüntü filtreleri içerir. Gerçekleştirme, SOLID prensiplerini takip eder ve üretime hazır hata yönetimi sağlar. Ek işlevsellik için System.Drawing entegrasyonu veya akış olarak dışa aktarma seçeneklerini düşünün. Özel barkod stilleri ve QR kodu stilleri ile barkod görüntüleri oluşturabilirsiniz.

Farklı Barkod Kaynaklarını Okumak İçin Hangi Yöntemleri Kullanmalıyım?

Her yöntem, belirli kullanım durumları ve işleme gereksinimleri için geliştirilmiştir:

  • ReadBarcodeFromImage(string imagePath): Bir resim dosyasından barkod okur.
  • ReadBarcodeFromStream(Stream inputStream): Bir giriş akışından (örneğin, dosya yükleme veya bellek akışı) barkod okur.
  • ReadBarcodeFromPdf(string filePath): Bir PDF dosyasından barkod okur.

Yüksek hacimli senaryolar için, barkod konumları öngörülebilir olduğunda işleme hızını 5 kata kadar artırmak için kırpma bölgeleri kullanmayı düşünün. Çeşitli formatlarda barkod görüntüleri oluşturabilir veya barkodları kaydedebilirsiniz. Kütüphane, System.Drawing nesnelerinden okuma desteği sağlar ve barkodları HTML ya da PDF belgeleri olarak dışa aktarabilir.

REST API üzerinden Barkod Okuma Nasıl Sunulur?

Dış uygulamaların barkod tarama fonksiyonelliğinizi kullanabilmesi için, bunu ASP.NET Core kullanarak bir REST API olarak sunun. Uygulama, uygun hata yönetimi, doğrulama ve birden fazla girdi formatı için destek içerir. C# Barcode Image Generator ile de barkod üretebilir veya barkod hızlı başlangıç örneklerini keşfedebilirsiniz. PDF'leri işlerken, belge takibi için mevcut PDF'lere barkod damgalamayı düşünün:

using Microsoft.AspNetCore.Mvc;
using System.IO;
using Microsoft.AspNetCore.Http;
using BarcodeIntegration;

[ApiController]
[Route("api/barcode")]
public class BarcodeController : ControllerBase
{
    private readonly BarcodeScanner _barcodeScanner;
    private readonly ILogger<BarcodeController> _logger;

    public BarcodeController(ILogger<BarcodeController> logger)
    {
        _barcodeScanner = new BarcodeScanner();
        _logger = logger;
    }

    // POST endpoint to read barcode from an uploaded image
    [HttpPost("read-from-image")]
    public async Task<IActionResult> ReadFromImage(IFormFile file)
    {
        if (file == null || file.Length == 0)
            return BadRequest(new { Error = "No file uploaded" });
            
        // Validate file type
        var allowedTypes = new[] { "image/jpeg", "image/png", "image/gif", "image/bmp", "image/tiff" };
        if (!allowedTypes.Contains(file.ContentType.ToLower()))
            return BadRequest(new { Error = "Unsupported file type" });
            
        try
        {
            using var stream = file.OpenReadStream();
            var result = await _barcodeScanner.ReadBarcodeFromStreamAsync(stream);
            
            _logger.LogInformation($"Barcode read successfully from {file.FileName}");
            return Ok(new { Barcode = result, FileName = file.FileName });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error processing barcode");
            return StatusCode(500, new { Error = "Internal server error" });
        }
    }
    
    // POST endpoint for batch processing
    [HttpPost("read-batch")]
    public async Task<IActionResult> ReadBatch(List<IFormFile> files)
    {
        var results = new List<object>();
        
        foreach (var file in files)
        {
            using var stream = file.OpenReadStream();
            var result = await _barcodeScanner.ReadBarcodeFromStreamAsync(stream);
            results.Add(new { FileName = file.FileName, Barcode = result });
        }
        
        return Ok(new { Results = results, Count = results.Count });
    }

    // POST endpoint to generate barcode from data
    [HttpPost("generate")]
    public IActionResult GenerateBarcode([FromBody] BarcodeGenerationRequest request)
    {
        try
        {
            // Create barcode with specified data and format
            var barcode = BarcodeWriter.CreateBarcode(request.Data, request.Format ?? BarcodeWriterEncoding.Code128);
            
            // Apply custom styling if requested
            if (request.Width.HasValue && request.Height.HasValue)
                barcode.ResizeTo(request.Width.Value, request.Height.Value);
                
            if (!string.IsNullOrEmpty(request.ForegroundColor))
                barcode.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(request.ForegroundColor));
                
            // Return as base64 encoded image
            using var ms = barcode.ToStream();
            var bytes = ms.ToArray();
            return Ok(new { 
                Image = Convert.ToBase64String(bytes),
                Format = request.Format?.ToString() ?? "Code128",
                Data = request.Data 
            });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error generating barcode");
            return BadRequest(new { Error = "Failed to generate barcode" });
        }
    }
}

public class BarcodeGenerationRequest
{
    public string Data { get; set; }
    public BarcodeWriterEncoding? Format { get; set; }
    public int? Width { get; set; }
    public int? Height { get; set; }
    public string ForegroundColor { get; set; }
}

API, Swagger UI'da Nasıl Görünür?

Swagger UI, barkodları görüntülerden ve PDF'lerden okumak için iki POST uç noktası ile BarcoderScannerSDK API'sini gösteriyor, dosya yükleme arayüzü ve istek yapılandırma seçenekleri sunuyor

API Yanıtı Nasıl Görünür?

Bir barkod okuma uç noktasına yapılan başarılı bir POST isteğini gösteren API dokümantasyonu, 200 OK yanıt durumu ile 'Hello World!' döndürüyor

Bu API, barkod resimlerini yükleyebileceğiniz POST uç noktalarını açar ve API barkod verilerini döndürür. Uygulama, üretim kullanımı için uygun doğrulama, hata yönetimi ve günlük tutmayı içerir. Mobil uygulamalar için, daha küçük resim boyutları ve daha hızlı yanıt süreleri için geliştirilmiş uç noktalar eklemeyi düşünün. Verilerden barkodlar oluşturabilir veya bunları HTML veya PDF olarak dışa aktarabilirsiniz. Yüksek kontrast gereksinimleri için, 1-BPP barkod görüntüleri oluşturun.## Hangi İleri Özellikleri Ekleyebilirim?

SDK'nizi daha da geliştirmek için, IronBarcode'un tam API Referansı kullanarak bu üretime hazır özellikleri uygulamayı düşünün. Özelliklere genel bakışı inceleyin ve pratik uygulamalar için demoları kontrol edin:

Birden Fazla Barkod Türünü Nasıl Desteklerim?

IronBarcode, aynı anda birden fazla barkodu okuyabilir. SDK'nizi, belirli format süzgeçleme ile aynı anda birden fazla barkodu kabul edecek şekilde yapılandırabilirsiniz. Kütüphane, Çince ve Arapça karakterler dahil Unicode barkodlarını yazmayı destekler. Özel uygulamalar için, Code 39 okuma ve özel stillendirme ile QR kodları oluşturma konularını keşfedin:

public async Task<List<BarcodeResult>> ReadMultipleBarcodesAsync(string imagePath, BarcodeEncoding[] expectedTypes = null)
{
    try
    {
        var options = new BarcodeReaderOptions()
        {
            ExpectMultipleBarcodes = true,
            ExpectBarcodeTypes = expectedTypes ?? BarcodeEncoding.All,
            Speed = BarcodeReadingSpeed.Detailed,
            MaxParallelThreads = Environment.ProcessorCount,
            Multithreaded = true
        };
        
        // Apply confidence threshold for machine learning accuracy
        options.Confidence = Confidence.High;
        
        var results = await Task.Run(() => BarcodeReader.Read(imagePath, options));
        
        return results.Select(barcode => new BarcodeResult
        {
            Value = barcode.ToString(),
            Format = barcode.BarcodeType.ToString(),
            Confidence = barcode.Confidence,
            Position = barcode.Rect
        }).ToList();
    }
    catch (Exception ex)
    {
        _logger.LogError(ex, "Error reading multiple barcodes");
        throw;
    }
}

Başka Hangi İyileştirmeleri Düşünmeliyim?

Üretim dağıtımları için, yanlış pozitifleri azaltmak ve veri doğruluğunu sağlamak amacıyla güven eşiklerini uygulamayı düşünün. Makine öğrenimi tabanlı algılama, belirli kullanım senaryonuza göre ince ayar yapılabilir. Dağıtım paketleri oluştururken, MSI yükleyici kılavuzunu izleyin ve herhangi bir eksik DLL sorununu çözün. AWD dağıtımları için, olası çalışma zamanı sorunlarını farkında olun. Çeşitli çıkış veri formatlarıyla barkodlar oluşturmayı düşünün ve barkod okuma eğitimlerini keşfedin.

Hangi Lisanslama Konularına Dikkat Etmeliyim?

Daha önce belirtildiği gibi, IronBarcode SDK'sı dahili uygulamalarınıza entegrasyon için tasarlanmıştır ve bir API aracılığıyla kullanılmasını sağlamanız ek lisans gerektirir. IronBarcode'u genel bir API gibi bir hizmetin parçası olarak kullanmadan önce gerekli olan lisanslamayı (SDK, OEM veya SaaS) sağlamanız gereklidir. Kurumsal dağıtımlar için, ek koltuklar veya destek iyileştirmesi için mevcut lisanslama eklentilerini değerlendirin. Dağıtımınızı ölçeklendirmek için yükseltme seçeneklerini inceleyin.

IronBarcode'u bağımsız bir SDK olarak yeniden satmayın veya kamuya açık bir API aracılığıyla lisansınızın bu kullanımı kapsadığından emin olmadan sunmayın. Web uygulamaları için, doğru bir şekilde etkinleştirme sağlamak üzere web.config dosyasındaki lisans anahtarını yapılandırmanız gerekebilir.

Güvenlik CVE güncellemeleri hakkında bilgi sahibi olun ve çalışma zamanı kopya hataları için en iyi uygulamaları takip edin.

Teknik sorunlar için, bir mühendislik talebi göndermeyi düşünebilirsiniz. Unicode barkodları yazma kaynaklarına göz atın ve barkod okuma öğreticisini keşfedin.

IronBarcode'u Bugün Neden Denemeliyim?

IronBarcode'un yeni yeteneklerini deneyimleyin. Ücretsiz denememizi deneyin ve .NET uygulamalarınız için sorunsuz barkod oluşturma, okuma ve düzenleme deneyimini keşfedin. Gelişmiş özellikleri, olağanüstü performansı ve kullanıcı dostu arayüzü ile IronBarcode, tüm barkod ihtiyaçlarınız için nihai çözümdür. Tam belgelerimizi keşfedin, kod örneklerini inceleyin ve tüm yetenekleri anlamak için canlı demoları görün. Barkod okuma ile ilgili eğitimlere göz atın ve MicroQR ve rMQR desteğini keşfedin. Farklı dağıtım senaryoları için NuGet paket seçenekleri hakkında bilgi edinin. Daha fazla bilgi için IronBarcode Dokümantasyonunu da inceleyebilirsiniz. Bugün ücretsiz denemenize başlayın ve projelerinizi geliştirin.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

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