.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:
- Stok yönetim sistemleri – birden çok barkod okuma ve çok sayfalı TIFF/GIF desteği ile ürün takibini otomatikleştirin
- Lojistik uygulamaları – yüksek hızlı okuma ve özelleştirilebilir çıktı formatları kullanarak sevkiyat barkodlarını işleyin
- Perakende POS sistemleri – Kod 39 ve 1D barkod yaratma ile işlemleri onaylayın
- Belge işleme – PDF faturalarından özel okuma ayarları ile veri alın
- Sağlık uygulamaları – hata düzeltme kullanarak 2D formatları ile hasta kimliklerini okuyun
- Üretim kalite kontrolü – Yapılandırılabilir yığın işleme ile barkod kenar boşlukları çalıştırın
.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.
- C#'de barkodları okumak için .NET kütüphanesini NuGet paketlerini kullanarak kurun
- Uygun hata yönetimi gereği ile yeniden kullanılabilir bir barkod tarama sınıfı oluşturun
- Farklı kaynaklardan barkod okuma yöntemleri geliştirin
- Uygulamanıza geliştirilmiş ayarlar kullanarak barkod görüntü okuma entegrasyonu yapın
- 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
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
API Swagger UI'de Nasıl Gozukuyor?

API Cevabi Nasıl Gozukuyor?

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
Baska Hangi İyileştirmeleri Düşünmeliyim?
- Hata Yönetimi: tam hata yöntemleri de dahil olmak üzere MSI barkod tanıma uygulayın
- Toplu İşleme: senkronize olmayan coklu is parcalama ile 1-BPP barkod resimleri icin yöntemler oluşturun
- Performans Izleme: okuma hizi konfigürasyonu ile metrikler ekleyin
- Önbellekleme: Siddetle taranan barkodlar icin sonuclari onbellege al
- Görüntü On-İşleme: Yonelme düzeltmesi ve kontrast filtreleri kullanin
- Formata Ozel Iyilestirmeler: GS1-128 ve yeni formatlar icin ayarlar yapılandırin
WebSocketDestek: Sürekli izleme için gerçek zamanlı barkod tarama ekleyin- Ozel Stilleme: barkod stilleri ve QR kodu ozellestirme uygulayin
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.




