Altbilgi içeriğine atla
IRONBARCODE KULLANARAK

.NET'te Çizgikodu Okuyucu SDK'sı Nasıl Oluşturulur?

IronBarcode, .NET geliştiricilerinin uygulamalarına barkod okuma yeteneklerini minimum kodla eklemelerine olanak tanır. 1D ve 2D barkodlar, çeşitli görüntü kaynakları dahil olmak üzere birden fazla formatı destekler, üretim ortamları için makine öğrenimi bazlı algılama ile yüksek doğruluk sunar.

Konum yönetiminden perakende ve lojistiğe kadar birçok uygulama için barkod tarama çok önemlidir. .NET uygulamalarınıza barkod okuma entegrasyonu yaparak, veri yakalamayı basitleştirebilir, iş akışlarını otomatikleştirebilir ve verimliliği artırabilirsiniz. barkod okuyucu çözümlerini değerlendirdiğinizde, desteklenen formatlar, işleme hızı ve entegrasyon karmaşıklığı gibi faktörleri göz önünde bulundurun. IronBarcode kitaplığı, olağanüstü çapraz platform uyumluluğu ve hata toleransı özellikleri sunar.

IronBarcode, barkodlarla çalışmayı basitleştiren etkili bir .NET kitaplığıdır. Bu araç ile görüntülerden barkod okuyabilir, akışlardan ve PDF dosyalarından barkod okuyabilir ve C# QR Kod Üretici kullanarak QR kodlar oluşturabilirsiniz. Bu makale, .NET uygulamanıza barkod tarama entegrasyonu yapmayı, barkod tarama işlevselliğini açığa çıkarmak için bir API veya Web Uygulaması entegrasyonu oluşturmayı hedefleyerek size gösterir. Kütüphane, 1D ve 2D barkodlar dahil olmak üzere çeşitli barkod formatlarını destekler, gelişmiş oluşturma yetenekleri ve stil seçenekleri sunar.

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

IronBarcode bu senaryolarda mükemmeldir:

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

Uygulamanızda bir hizmet olarak kullanılabilecek bir barkod okuyucu oluşturmak için, IronBarcode'u bir REST API veya Web Uygulamasına entegre edin. İhtiyaçlarınıza göre tek görüntü işleme için ara sıra taramalar, belge iş akışları için toplu işleme veya sürekli tarama uygulamaları için akış işlemi gibi mimari seçimi söz konusu olabilir. ASP.NET Core kullanarak uygun iplik güvenliği uygulamaları ile bir örnek işte. Kütüphanenin okuma özellikleri optimal doğruluk için ileri görüntü oluşturma filtreleri içerir.

  1. C#'de barkodları okumak için .NET kütüphanesini NuGet paketlerini kullanarak kurun
  2. Uygun hata yönetimi gereği ile yeniden kullanılabilir bir barkod tarama sınıfı oluşturun
  3. Farklı kaynaklardan barkod okuma yöntemleri geliştirin
  4. Uygulamanıza geliştirilmiş ayarlar kullanarak barkod görüntü okuma entegrasyonu yapın
  5. Performansı okuma hızı seçenekleri ile test edin ve geliştirin

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

Henüz yapmadıysanız, projeniz için IronBarcode indirin. Planlanan kullanımız için uygun lisans anahtarınız olduğundan emin olun. IronBarcode'un işlevselliğini genel bir API aracılığıyla açığa çıkarmanın veya bağımsız bir hizmet olarak yeniden satmanın ek lisanslama gerektirdiğini (SDK, OEM veya SaaS) unutmayın. Devam etmeden once lisanslama seçeneklerini anladiginizdan emin olun. Gelisim ortamlari icin ücretsiz denemeyi kullanabilir ve prodüksiyona hazır oldugunuzda lisans anahtarinizi uygulayabilirsiniz. Son güncellemeler ve kilometre taslari icin değişiklik gunlugunu inceleyin.

Optimum performans icin, dağıtim ortamınızı dusunun. IronBarcode, Windows, Linux, macOS, Docker ve Azure ve AWS Lambda gibi bulut platformlarini da kapsayan çok platformlu uyumlulugu destekler. Mobil geliştiriciler Android ve iOS icin Blazor entegrasyonu ile destek alabilir. .NET MAUI uygulamalari icin barkod tarayici okuyucu eğitimini takip edin.

Barkod Tarayici Sinifini Nasıl Oluşturabilirim?

IronBarcode'u kurduktan ve projenize ekledikten sonra, IronBarcode'un islevselligini entegre eden ve bunu bir API son noktası olarak aciga cikari bir tekrar kullanilabilir barkod tarayici sinifi oluşturabilirsiniz. Gerçeklestirme, zorlu senaryolar icin performans iyilestirmeleri ve görüntü düzeltme ve yonelme düzeltmesi içerir. Barkod konumlari öngörülebilir oldugunda, daha hizli işleme icin kirpma bolgeleri uygulamayi dusunun:

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
            });
        }
    }
}
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
            });
        }
    }
}
Imports IronBarCode
Imports System.IO
Imports System.Collections.Concurrent
Imports System.Threading.Tasks

Namespace BarcodeIntegration
    Public Class BarcodeScanner
        Private Shared ReadOnly _optionsCache As New ConcurrentDictionary(Of String, BarcodeReaderOptions)()

        Shared Sub New()
            ' Set the license key
            IronBarCode.License.LicenseKey = "Your-License-Key"
        End Sub

        ' Method to read a barcode from an image file with performance optimization
        Public Function ReadBarcodeFromImage(imagePath As String, Optional speed As BarcodeReadingSpeed = BarcodeReadingSpeed.Balanced) As String
            Try
                Dim options = GetCachedOptions(speed)
                ' Try to read the barcode from the given image path
                Dim barcode = BarcodeReader.Read(imagePath, options)
                Return If(barcode?.ToString(), "No Barcode Found") ' Return the barcode string or indicate no barcode was found
            Catch ex As Exception
                ' Return an error message if an exception occurs
                Return $"Error reading barcode: {ex.Message}"
            End Try
        End Function

        ' Method to read a barcode from a stream (e.g., file upload or memory stream)
        Public Async Function ReadBarcodeFromStreamAsync(inputStream As Stream) As Task(Of String)
            Try
                Dim options = GetCachedOptions(BarcodeReadingSpeed.Detailed)
                ' Enable image correction for better accuracy
                options.ImageFilters = {New SharpenFilter(), New ContrastFilter()}

                ' Try to read the barcode from the given stream
                Dim barcode = Await Task.Run(Function() BarcodeReader.Read(inputStream, options))
                Return If(barcode?.ToString(), "No barcode found")
            Catch ex As Exception
                Return $"Error reading barcode: {ex.Message}"
            End Try
        End Function

        ' Method to read a barcode from a PDF file with batch processing support
        Public Async Function ReadBarcodesFromPdfAsync(filePath As String) As Task(Of List(Of String))
            Try
                Dim options = New BarcodeReaderOptions With {
                    .ExpectMultipleBarcodes = True,
                    .Speed = BarcodeReadingSpeed.Detailed
                }

                ' Try to read barcodes from the given PDF file path
                Dim barcodes = Await Task.Run(Function() BarcodeReader.ReadPdf(filePath, options))
                Return barcodes.Select(Function(b) b.ToString()).ToList()
            Catch ex As Exception
                Return New List(Of String) From {$"Error reading barcode: {ex.Message}"}
            End Try
        End Function

        ' Cache reader options for performance
        Private Function GetCachedOptions(speed As BarcodeReadingSpeed) As BarcodeReaderOptions
            Return _optionsCache.GetOrAdd(speed.ToString(), Function(_) New BarcodeReaderOptions With {
                .Speed = speed,
                .AutoRotate = True,
                .RemoveFalsePositive = True
            })
        End Function
    End Class
End Namespace
$vbLabelText   $csharpLabel

Bu iyileştirilmiş BarcodeScanner sınıfı, seçeneklerin önbelleğe alınması yoluyla performans optimizasyonları, daha iyi ölçeklenebilirlik için asenkron işleme ve daha yüksek doğruluk için görüntü filtreleri içerir. Gerçeklestirme SOLID ilkelerini takip eder ve üretim hazır hata yöntemleri saglar. Ek islevler icin System.Drawing entegrasyonu veya akış olarak dışa aktarmayı düşünebilirsiniz. Ayrıca ozel barkod stilleri ve QR kodu stilizasyonu ile barkod resimleri oluşturabilirsiniz.

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

Her bir yöntem, belirli kullanım durumlari ve işleme gereksinimleri icin guclendirilmistir:

  • ReadBarcodeFromImage(string imagePath): Bir görüntü 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.

Yuksek hacimli senaryolar icin, barkod konumlari onceden tahmin edilebildiginde işleme hizini 5 kata kadar arttirmak icin kirpma bolgelerini dusunun. Ayrica calisan barkod resimleri yaratabilir veya barkodlari kaydedebilirsiniz. Kutuphane, System.Drawing objelerinden okuma destekler ve barkodları HTML veya PDF dokümanlari olarak disari aktarabilir.

Barkod Okuma İşlemini Bir REST API ile Nasıl Sunarim?

Dis uygulamalarin barkod tarama islevinizi kullanmasina izin verin, bunu ASP.NET Core kullanarak bir REST API olarak yayinlayin. Gerçeklestirme, uygun hata yöntemleri, doğrulama ve birden fazla giris formatı destekler. C# Barkod Resim Oluşturucusu ile barkodlar oluşturabilir veya barkod hizli başlangic örneklerini kesfedebilirsiniz. PDF'ler islenirken, belge izleme icin mevcut PDF'lere barkod damgalama dusunun:

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; }
}
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; }
}
Imports Microsoft.AspNetCore.Mvc
Imports System.IO
Imports Microsoft.AspNetCore.Http
Imports BarcodeIntegration

<ApiController>
<Route("api/barcode")>
Public Class BarcodeController
    Inherits ControllerBase

    Private ReadOnly _barcodeScanner As BarcodeScanner
    Private ReadOnly _logger As ILogger(Of BarcodeController)

    Public Sub New(logger As ILogger(Of BarcodeController))
        _barcodeScanner = New BarcodeScanner()
        _logger = logger
    End Sub

    ' POST endpoint to read barcode from an uploaded image
    <HttpPost("read-from-image")>
    Public Async Function ReadFromImage(file As IFormFile) As Task(Of IActionResult)
        If file Is Nothing OrElse file.Length = 0 Then
            Return BadRequest(New With {.Error = "No file uploaded"})
        End If

        ' Validate file type
        Dim allowedTypes = New String() {"image/jpeg", "image/png", "image/gif", "image/bmp", "image/tiff"}
        If Not allowedTypes.Contains(file.ContentType.ToLower()) Then
            Return BadRequest(New With {.Error = "Unsupported file type"})
        End If

        Try
            Using stream = file.OpenReadStream()
                Dim result = Await _barcodeScanner.ReadBarcodeFromStreamAsync(stream)

                _logger.LogInformation($"Barcode read successfully from {file.FileName}")
                Return Ok(New With {.Barcode = result, .FileName = file.FileName})
            End Using
        Catch ex As Exception
            _logger.LogError(ex, "Error processing barcode")
            Return StatusCode(500, New With {.Error = "Internal server error"})
        End Try
    End Function

    ' POST endpoint for batch processing
    <HttpPost("read-batch")>
    Public Async Function ReadBatch(files As List(Of IFormFile)) As Task(Of IActionResult)
        Dim results = New List(Of Object)()

        For Each file In files
            Using stream = file.OpenReadStream()
                Dim result = Await _barcodeScanner.ReadBarcodeFromStreamAsync(stream)
                results.Add(New With {.FileName = file.FileName, .Barcode = result})
            End Using
        Next

        Return Ok(New With {.Results = results, .Count = results.Count})
    End Function

    ' POST endpoint to generate barcode from data
    <HttpPost("generate")>
    Public Function GenerateBarcode(<FromBody> request As BarcodeGenerationRequest) As IActionResult
        Try
            ' Create barcode with specified data and format
            Dim barcode = BarcodeWriter.CreateBarcode(request.Data, If(request.Format, BarcodeWriterEncoding.Code128))

            ' Apply custom styling if requested
            If request.Width.HasValue AndAlso request.Height.HasValue Then
                barcode.ResizeTo(request.Width.Value, request.Height.Value)
            End If

            If Not String.IsNullOrEmpty(request.ForegroundColor) Then
                barcode.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(request.ForegroundColor))
            End If

            ' Return as base64 encoded image
            Using ms = barcode.ToStream()
                Dim bytes = ms.ToArray()
                Return Ok(New With {
                    .Image = Convert.ToBase64String(bytes),
                    .Format = If(request.Format?.ToString(), "Code128"),
                    .Data = request.Data
                })
            End Using
        Catch ex As Exception
            _logger.LogError(ex, "Error generating barcode")
            Return BadRequest(New With {.Error = "Failed to generate barcode"})
        End Try
    End Function
End Class

Public Class BarcodeGenerationRequest
    Public Property Data As String
    Public Property Format As BarcodeWriterEncoding?
    Public Property Width As Integer?
    Public Property Height As Integer?
    Public Property ForegroundColor As String
End Class
$vbLabelText   $csharpLabel

API Swagger UI'de Nasıl Gozukuyor?

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

API Cevabi Nasıl Gozukuyor?

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

Bu API, barkod resimleri yukleyebileceginiz POST son noktalarını aciga cikarir ve API barkod verilerini geri gonderir. Gerçeklestirme, uygun doğrulama, hata yöntemleri ve uretim icin kayitlar icerir. Mobil uygulamalar icin, daha küçük görüntü boyutlari ve daha hizli yanit sureleri ile guclendirilmis son noktalar eklemeyi dusunun. Ayrica verilerden barkodlar oluşturabilir veya HTML veya PDF olarak dışa aktarabilirsiniz. 1-BPP barkod resimlerini oluşturun.## Hangi Gelişmiş Özellikleri Ekleyebilirim?

SDK'nizi daha da geliştirmek icin IronBarcode'un tam API Referansini kullanarak bu üretime hazır özellikleri uygulamayı düşünün. Fonksiyonel bilgilendirmeyi kesfedin ve pratik uygulamalar icin demolari inceleyin:

Birden Fazla Barkod Cesidini Nasıl Desteklerim?

IronBarcode, birden fazla barkodu bir arada okumayi destekler. SDK'nız, belirli format filtreleme ile birden fazla barkodu kabul edecek sekilde konfigure edilebilir. Kutuphane, Cin ve Arap harflerini de içerikleyen Unicode barkodlari yazma destekler. Ozel uygulamalar icin Code 39 okumayi ve ozel stilde QR kodu oluşturmayı inceleyin:

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;
    }
}
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;
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Threading.Tasks

Public Async Function ReadMultipleBarcodesAsync(imagePath As String, Optional expectedTypes As BarcodeEncoding() = Nothing) As Task(Of List(Of BarcodeResult))
    Try
        Dim options As New BarcodeReaderOptions() With {
            .ExpectMultipleBarcodes = True,
            .ExpectBarcodeTypes = If(expectedTypes, BarcodeEncoding.All),
            .Speed = BarcodeReadingSpeed.Detailed,
            .MaxParallelThreads = Environment.ProcessorCount,
            .Multithreaded = True
        }

        ' Apply confidence threshold for machine learning accuracy
        options.Confidence = Confidence.High

        Dim results = Await Task.Run(Function() BarcodeReader.Read(imagePath, options))

        Return results.Select(Function(barcode) New BarcodeResult With {
            .Value = barcode.ToString(),
            .Format = barcode.BarcodeType.ToString(),
            .Confidence = barcode.Confidence,
            .Position = barcode.Rect
        }).ToList()
    Catch ex As Exception
        _logger.LogError(ex, "Error reading multiple barcodes")
        Throw
    End Try
End Function
$vbLabelText   $csharpLabel

Baska Hangi İyileştirmeleri Düşünmeliyim?

Uretim dağıtimlarinda, yanlis olumlu sonuclari azaltmak ve veri dogrulugunu saglamak icin guven seviyelerini uygulamayi dusunun. Makine ogrenimine dayanan tanıma, özel kullanım durumlarınıza göre ince ayar yapılabilir. Dağıtim paketleri oluştururken, MSI kurulum rehberini takip edin ve herhangi bir eksik DLL sorununu cozun. AWS dağıtimlari icin potansiyel calisma suresi sorunlarina dikkat edin. Farkli cikti veri formatlari ile barkodlar oluşturmayi dusunun ve barkod okuma rehberlerini inceleyin.

Hangi Lisanslama Hususlarini Goz Onunde Bulundurmalıyım?

Daha once de belirtildigi gibi, IronBarcode SDK'sı ic uygulamalariniza entegre edilmek üzere tasarlanmıstir ve bunu bir API ile sunmak icin ek lisanlama gereklidir. IronBarcode'u bir hizmetin parcasi olarak, ornegin, bir genel API gibi yayinlamadan once gerekli lisanslamayı (SDK, OEM veya SaaS) saglamalısınız. Kurumsal dağıtimlar icin, ek koltuklar veya daha iyi destek icin mevcut lisanslama uzantılarını dusunun. Dağıtiminizin ölçeklendirilmesi icin yukseltme seçeneklerini gozden gecirin.

IronBarcode'u bagimsiz bir SDK olarak yeniden satmayin veya kullaniminizi karsilayan lisanslamayi saglamadan genel bir API olarak aciga cikarmayin. Web uygulamalari icin, uygun aktivasyon icin web.config dosyasinda lisans anahtarini konfigure etmeniz gerekebilir. Guvenlik CVE güncellemeleri hakkinda bilgi sahibi olun ve calisma zamanı kopyalama istisnalari icin en iyi uygulamalari takip edin. Teknik sorunlar icin bir mühendislik talebi göndermeyi dikkate alin. Unicode barkodlari yazma kaynaklarina göz atın ve barkod okuma eğitimini kesfedin.

Bugun IronBarcode'u 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 keşfedin. Gelişmiş özellikleri, olağanüstü performansı ve kullanıcı dostu arayuzu ile IronBarcode, tüm barkod ihtiyaçlarınız icin nihai cozumdur. Tam dokümantasyonumuzu inceleyin, kod örneklerini gozden gecirin ve tam yetenekleri anlamak icin canlı demoları Görün. Barkod Okuma rehberlerini kontrol edin ve MicroQR ve rMQR destegini inceleyin. Farkli dağıtim senaryolari icin NuGet paketi seçeneklerini ogrenin. IronBarcode Dokümantasyonunu kesfedin ve tam barkod cozumumuz ile ilgili daha fazla bilgi edinin. Bugun ücretsiz denemenize başlayin ve projelerinizi geliştirin.

Sıkça Sorulan Sorular

.NET uygulamasına bir barkod okuyucu nasıl entegre edilir?

IronBarcode kütüphanesini kullanarak .NET uygulamasına bir barkod okuyucu entegre edebilirsiniz. Öncelikle IronBarcode'yi kurun, ardından barkod tarama için bir sınıf oluşturun ve görüntülerden, akışlardan ve PDF'lerden barkod okumak için yöntemler uygulayın. Son olarak, kurulumunuzu test edin ve optimize edin.

Barkod okuma işlevini bir REST API olarak nasıl sunarım?

Barkod okuma işlevini bir REST API olarak sunmak için bir web uygulaması oluşturmak üzere ASP.NET Core'u kullanın. IronBarcode kütüphanesini dahil edin, bir BarcodeScanner sınıfı geliştirin ve ReadBarcodeFromImage ve ReadBarcodeFromStream gibi yöntemlerle barkodları okuyan API uç noktalarını tanımlayın.

.NET barkod kütüphanesi kullanarak hangi barkod türleri okunabilir?

IronBarcode gibi bir .NET barkod kütüphanesi, QR kodlar, Code 128, UPC ve EAN dahil bircok barkod turunu okuyabilir. Kütüphaneyi, algılama parametrelerini ayarlayarak birden fazla barkod türünü aynı anda tespit edecek şekilde yapılandırabilirsiniz.

.NET'te barkod okurken hatalar nasıl yönetilir?

IronBarcode kullanarak barkod tarama yöntemleriniz içinde sağlam hata yönetimi uygulayarak barkod okuma sırasında hataları yönetebilirsiniz. İstisnaları yakaladığınızdan ve barkod okuma sürecinin güvenilirliğini artırmak için anlamli geri bildirimler veya yeniden deneme mekanizmalari sagladinizdan emin olun.

Genel bir API'de bir .NET barkod kütüphanesi kullanmak için lisans gereksinimleri nedir?

IronBarcode'yi genel bir API'de kullanırken, uygun lisanslama sağlanmalıdır. Bu, SDK, OEM veya SaaS lisansları edinmeyi içerir çünkü kütüphanenin işlevselliğini bağımsız bir hizmet veya genel API olarak ortaya çıkarmak ilave izinler gerektirir.

.NET kütüphanesi kullanarak toplu olarak birden fazla barkodu tarayabilir miyim?

Evet, .NET kütüphanesi olan IronBarcode'yi kullanarak birden fazla barkodu toplu olarak tarayabilirsiniz. Kütüphane, çok sayıda görüntü veya belgeyi verimli bir şekilde işlemek için tek bir işlemde birden çok barkodu okumanıza olanak tanır.

.NET barkod kütüphanesi için deneme sürümü mevcut mu?

Evet, IronBarcode, .NET uygulamaları içindeki barkod oluşturma, okuma ve düzenleme yeteneklerini keşfetmenizi sağlayan ücretsiz bir deneme sürümü sunar. Bu deneme, satın alma kararı vermeden önce kütüphaneyi değerlendirmenize yardımcı olabilir.

Jordi Bardia
Yazılım Mühendisi
Jordi Python, C# ve C++ konularında en yetkin, Iron Software'deki yeteneklerini kullanmadığı zamanlarda; oyun programlıyor. Ürün testi, ürün geliştirme ve araştırma sorumluluklarını paylaşan Jordi, sürekli ürün gelişimine büyük değer katıyor. Çeşitli deneyimleri onu ...
Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara