.NET'te Bir Barkod Okuyucu SDK'sı Nasıl Oluşturulur?
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:
- Envanter yönetim sistemleri – Ürün takibini çoklu barcode okuma ve çok sayfalı TIFF/GIF desteği ile otomatikleştirin
- Lojistik uygulamaları – Gönderim barkodlarını yüksek hızlı okuma ve özelleştirilebilir çıktı formatları kullanarak işleyin
- Perakende POS sistemleri – İşlemleri Code 39 ve 1D barkod oluşturma ile doğrulayın Belge işleme – PDF faturalarından verileri özel okuyucu ayarları ile çıkarın
- Sağlık uygulamaları – hata düzeltmesi ile 2D formatları kullanarak hasta kimliklerini okuyun
- Üretim kalite kontrolü – Ayarlanabilir barkod kenar boşlukları ile toplu işlem çalıştırın
.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.
- C# içinde barkod okumak için .NET kütüphanesini yükleyin NuGet paketleri kullanarak
- Uygun hata yönetimi ile yeniden kullanılabilir bir barkod tarama sınıfı oluşturun
- 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
- 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
});
}
}
}
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 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; }
}
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'da Nasıl Görünür?

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

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;
}
}
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
Başka Hangi İyileştirmeleri Düşünmeliyim?
- Hata İşleme: Tam hata işleme uygulayın, MSI barkod tanıma dahil
- Toplu İşleme: Asenkron toplu işlem için 1-BPP barkod görüntüleri ile yöntemler oluşturun Performans İzleme: okuma hızı yapılandırması ile metrikler ekleyin Önbellekleme: Sık taranan barkodlar için sonuç önbelleklemesi uygulayın Görüntü Ön İşleme: yönlendirme düzeltmesi ve kontrast filtreleri kullanın
- Format-Spesifik Optimizasyonlar: GS1-128 ve yeni formatlar için ayarları yapılandırın
WebSocketDestek: Sürekli izleme için gerçek zamanlı barkod tarama ekleyin- Özel Stil: barkod stilleri ve QR kodu özelleştirmesi uygulayın
Ü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.
Sıkça Sorulan Sorular
.NET uygulamasına bir barkod okuyucu nasıl entegre edebilirim?
.NET uygulamanıza IronBarcode kütüphanesini kullanarak bir barkod okuyucu entegre edebilirsiniz. Önce IronBarcode'u kurun, ardından barkod tarama için bir sınıf oluşturun ve görüntülerden, akışlardan ve PDF'lerden barkod okuma metodlarını uygulayın. Son olarak, kurulumunuzu test edin ve optimize edin.
Çubuk kod okuma işlevini bir REST API olarak nasıl sunarım?
Barcode okuma işlevselliğini bir REST API olarak sunmak için ASP.NET Core kullanarak bir web uygulaması oluşturun. IronBarcode kütüphanesini entegre edin, bir BarcodeScanner sınıfı geliştirin ve ReadBarcodeFromImage ve ReadBarcodeFromStream gibi yöntemleri kullanarak barkodları okuyan API uç noktalarını tanımlayın.
Bir .NET barcode kütüphanesi kullanılarak hangi barcode türleri okunabilir?
.NET gibi bir barkod kütüphanesi olan IronBarcode, QR kodları, Code 128, UPC ve EAN dahil olmak üzere çeşitli barkod türlerini okuyabilir. Kütüphaneyi, algılama parametrelerini ayarlayarak aynı anda birden fazla barkod türünü algılayacak şekilde yapılandırabilirsiniz.
.NET'te barkod okurken hataları nasıl handle edebilirim?
IronBarcode kullanarak barkod okuma işlemlerinde sağlam bir hata yönetimi uygulayarak hataları ele alabilirsiniz. İstisnaları yakalayıp anlamlı geri bildirim veya yeniden deneme mekanizmaları sağlayarak barkod okuma sürecinin güvenilirliğini artırın.
Bir genel API'de .NET barkod kütüphanesi kullanmak için lisans gereksinimleri nelerdir?
IronBarcode'u bir kamu API'sinde kullanırken, doğru lisanslama sağlanmalıdır. Bu, kitaplığın işlevselliğini bağımsız bir hizmet veya kamu API'si olarak sunmanın ek izinler gerektirmesi nedeniyle SDK, OEM veya SaaS lisanslarının alınmasını içerir.
.NET kütüphanesi kullanarak birden fazla barkod taramasını toplu olarak işleyebilir miyim?
Evet, IronBarcode kullanarak birden fazla barkod taramasını toplu olarak işleyebilirsiniz. Bu kütüphane, tek bir işlemde birden fazla barkodu okumanıza olanak tanır, bu da büyük görüntü veya belge setlerini verimli bir şekilde işlemek için özellikle faydalı olabilir.
.NET için bir barkod kütüphanesi için deneme sürümü mevcut mu?
Evet, IronBarcode, .NET uygulamalarında barkod oluşturma, okuma ve düzenleme yeteneklerini keşfetmenizi sağlayan bir ücretsiz deneme sürümü sunar. Bu deneme, satın alma kararı vermeden önce kütüphaneyi değerlendirmenize yardımcı olabilir.




