Przejdź do treści stopki
PORóWNAJ Z INNYMI KOMPONENTAMI

Jaką bibliotekę kodów kreskowych C# powinieneś użyć do rozwoju .NET?

IronBarcode oferuje najlepszą równowagę między funkcjami, łatwością obsługi i obsługą wielu platform dla programistów C#, obsługując ponad 50 formatów kodów kreskowych z możliwością zarówno generowania, jak i odczytu, podczas gdy alternatywy, takie jak ZXing.Net (bezpłatne/open-source) lub Dynamsoft (wysokowydajne skanowanie), nadają się do konkretnych zastosowań.

BarCODE pozostaje niezbędny do przesyłania danych w różnych branżach, od handlu detalicznego po opiekę zdrowotną. Zapewniają one wydajną pamięć masową odczytywaną maszynowo, która upraszcza operacje i ogranicza liczbę błędów. Niezależnie od tego, czy pracujesz z kodami QR, UPC-A czy formatami Data Matrix, Twoje aplikacje potrzebują niezawodnej funkcji obsługi kodów kreskowych.

Nowoczesna biblioteka BARCODE w języku C# zapewnia tę funkcjonalność dla aplikacji .NET. Najlepsze biblioteki umożliwiają generowanie BARCODE-ów, odczytywanie ich z plików graficznych lub PDF oraz obsługę wielu BARCODE-ów jednocześnie. Zaawansowane narzędzia zapewniają automatyczną korekcję obrazu, skanowanie wsadowe oraz bezpośrednie osadzanie w dokumentach wielostronicowych.

W niniejszym przewodniku porównano pięć powszechnie używanych bibliotek kodów kreskowych dla platformy .NET: IronBarcode, ZXing.Net, Aspose.BarCode, BarcodeLib oraz Dynamsoft Barcode Reader. Zobaczysz obsługiwane formaty, łatwość użytkowania, wskaźniki dokładności i koszty, aby określić, która opcja najlepiej pasuje do Twoich projektów .NET.

Co sprawia, że IronBarcode jest najlepszym wyborem?

Strona główna IronBarcode for .NET zawierająca przykłady kodu C# do odczytu i generowania kodów kreskowych, wraz ze statystykami pobrań i szczegółami dotyczącymi obsługi frameworków

IronBarcode firmy Iron Software zapewnia programistom .NET pełną funkcjonalność związaną z kodami kreskowymi. Biblioteka obsługuje ponad 50 typów kodów kreskowych, w tym zarówno kody liniowe (UPC, EAN, Code128), jak i formaty 2D, takie jak kody QR, Data Matrix i PDF417. W przeciwieństwie do bibliotek jednofunkcyjnych, biblioteka IronBarcode wyróżnia się zarówno w generowaniu, jak i rozpoznawaniu kodów kreskowych.

Implementacja wyjątkowo dobrze radzi sobie z rzeczywistymi wyzwaniami związanymi ze skanowaniem. W scenariuszach produkcyjnych z uszkodzonymi lub źle wydrukowanymi kodami kreskowymi osiąga się wskaźnik skuteczności na poziomie ponad 98% dzięki filtrom przetwarzania wstępnego obrazów. Biblioteka automatycznie stosuje wyostrzanie i regulację kontrastu w celu poprawy czytelności oraz zarządza problemami z orientacją za pomocą funkcji AutoRotate. Twoje szybkie aplikacje magazynowe przetwarzające ponad 1000 BARCODE-ów na minutę mogą korzystać z opcji prędkości odczytu, aby zrównoważyć dokładność z wydajnością.

// Configure for high-speed scanning with image correction
using IronBarCode;

var barcodeReaderOptions = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster,
    ExpectMultipleBarcodes = true,
    AutoRotate = true,
    ImageFilters = new[] { 
        ImageFilterType.SharpenFilter,
        ImageFilterType.ContrastFilter
    }
};

// Read from damaged barcode image
var results = BarcodeReader.Read("warehouse-scan.jpg", barcodeReaderOptions);
foreach (var barcode in results)
{
    Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}");
}
// Configure for high-speed scanning with image correction
using IronBarCode;

var barcodeReaderOptions = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster,
    ExpectMultipleBarcodes = true,
    AutoRotate = true,
    ImageFilters = new[] { 
        ImageFilterType.SharpenFilter,
        ImageFilterType.ContrastFilter
    }
};

// Read from damaged barcode image
var results = BarcodeReader.Read("warehouse-scan.jpg", barcodeReaderOptions);
foreach (var barcode in results)
{
    Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}");
}
Imports IronBarCode

' Configure for high-speed scanning with image correction
Dim barcodeReaderOptions As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Faster,
    .ExpectMultipleBarcodes = True,
    .AutoRotate = True,
    .ImageFilters = New ImageFilterType() {
        ImageFilterType.SharpenFilter,
        ImageFilterType.ContrastFilter
    }
}

' Read from damaged barcode image
Dim results = BarcodeReader.Read("warehouse-scan.jpg", barcodeReaderOptions)
For Each barcode In results
    Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}")
Next
$vbLabelText   $csharpLabel

Funkcje biblioteki zapewniające odporność na awarie gwarantują niezawodny odczyt w trudnych warunkach. Podczas przetwarzania wielostronicowych plików TIFF lub GIF program IronBarcode automatycznie obsługuje wszystkie klatki bez konieczności ręcznego rozdzielania. Enterprise deployments benefit from complete security measures, including DigiCert certification and tamper protection.

Biblioteka współpracuje bezpośrednio z dokumentami PDF, umożliwiając zapisywanie BarCodes lub wykrywanie ich w istniejących plikach. Silnik odczytu IronBarcode automatycznie radzi sobie z niedoskonałymi skanami, stosując korekty, takie jak obrót, prostowanie i poprawianie jakości. Takie podejście zapewnia szybkie i dokładne skanowanie w rzeczywistych warunkach. Możesz generować obrazy BARCODE w wielu formatach lub wstawiać je do dokumentów HTML i wielostronicowych plików PDF.

W zakresie możliwości generowania kodów IronBarcode zapewnia szerokie możliwości dostosowania. Możesz stylizować BARCODE za pomocą niestandardowych kolorów, ustawiać marginesy i dodawać logo do BARCODE-ów QR. Biblioteka obsługuje kodowanie Unicode dla znaków międzynarodowych. Aplikacja umożliwia zapisywanie BARCODE-ów w różnych formatach lub eksportowanie ich jako strumienie dla interfejsów API sieci Web i usług w chmurze. Podczas tworzenia BarCodes na podstawie źródeł danych biblioteka płynnie obsługuje tekst, adresy URL, identyfikatory i dane binarne.

// Generate customized QR code with logo
var qrCode = QRCodeWriter.CreateQrCodeWithLogo("___PROTECTED_URL_176___", "logo.png", 300);
qrCode.ChangeBarCodeColor(System.Drawing.Color.Navy)
      .SetMargins(10)
      .SaveAsImage("branded-qr.png");

// Create styled barcode with annotations
var styledBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeWriterEncoding.Code128);
styledBarcode.ResizeTo(400, 150)
             .SetMargins(20)
             .ChangeBarCodeColor(Color.DarkBlue)
             .AddAnnotationTextAboveBarcode("Product SKU")
             .SaveAsImage("styled-product-barcode.png");
// Generate customized QR code with logo
var qrCode = QRCodeWriter.CreateQrCodeWithLogo("___PROTECTED_URL_176___", "logo.png", 300);
qrCode.ChangeBarCodeColor(System.Drawing.Color.Navy)
      .SetMargins(10)
      .SaveAsImage("branded-qr.png");

// Create styled barcode with annotations
var styledBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeWriterEncoding.Code128);
styledBarcode.ResizeTo(400, 150)
             .SetMargins(20)
             .ChangeBarCodeColor(Color.DarkBlue)
             .AddAnnotationTextAboveBarcode("Product SKU")
             .SaveAsImage("styled-product-barcode.png");
' Generate customized QR code with logo
Dim qrCode = QRCodeWriter.CreateQrCodeWithLogo("___PROTECTED_URL_176___", "logo.png", 300)
qrCode.ChangeBarCodeColor(System.Drawing.Color.Navy) _
      .SetMargins(10) _
      .SaveAsImage("branded-qr.png")

' Create styled barcode with annotations
Dim styledBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeWriterEncoding.Code128)
styledBarcode.ResizeTo(400, 150) _
             .SetMargins(20) _
             .ChangeBarCodeColor(Color.DarkBlue) _
             .AddAnnotationTextAboveBarcode("Product SKU") _
             .SaveAsImage("styled-product-barcode.png")
$vbLabelText   $csharpLabel

IronBarcode zapewnia kompatybilność międzyplatformową z .NET Framework, .NET Core, .NET Standard i .NET MAUI. Twoje projekty Visual Studio działają na platformach internetowych, stacjonarnych, chmurowych lub mobilnych. Biblioteka obsługuje wdrażanie w systemach Linux, macOS, kontenerach Docker, Azure i AWS Lambda. Instalacja za pomocą menedżera pakietów NuGet jest prosta, a oficjalna Dokumentacja API zawiera przejrzyste przykłady kodu do implementacji generowania kodów QR, zapisywania kodów QR i skanowania.

Podczas pracy z obiektami System.Drawing, IronBarcode zapewnia kompatybilność międzyplatformową poprzez IronDrawing. Formaty danych wyjściowych obejmują kompletne metadane dotyczące wykrytych kodów kreskowych, w tym współrzędne, wymiary i wskaźniki pewności. W scenariuszach wymagających wysokiej wydajności korzystne jest stosowanie operacji asynchronicznych i wielowątkowych w celu jednoczesnego przetwarzania tysięcy kodów kreskowych.

Dłączego obsługa wielu platform ma znaczenie dla Twojego startupu?

Jakie są koszty licencji dla firm na wczesnym etapie rozwoju?

Dłączego warto wybrać ZXing.Net do projektów open source?

Strona projektu ZXing.Net na GitHubie przedstawiająca wersję 0.16.10 wraz z logo projektu i opisem biblioteki .NET do odczytu i generowania BarCode-ów

ZXing.Net zapewnia port biblioteki open source Zebra Crossing (ZXing) dla platformy .NET. To bezpłatne rozwiązanie obsługuje popularne formaty kodów kreskowych, takie jak kody QR, UPC-A i Code128. W przypadku mniejszych projektów wymagających podstawowego tworzenia lub odczytu kodów kreskowych, ZXing.Net oferuje lekkie rozwiązanie. Przewodnik szybkiego startu dotyczący BarCODE pokazuje, w jaki sposób nowoczesne biblioteki upraszczają te zadania.

Obsługa formatów przez bibliotekę pozostaje ograniczona w porównaniu z komercyjnymi alternatywami. Obsługuje standardowe formaty 1D i popularne kody 2D, ale nie obsługuje nowszych formatów, takich jak GS1 DataBar ani specjalistycznych kodów przemysłowych. Testy wydajności pokazują, że ZXing.Net przetwarza 100–200 BARCODE-ów na minutę, co może być niewystarczające dla aplikacji o dużej wydajności, wymagających większej szybkości odczytu. Należy wziąć pod uwagę biblioteki z konfigurowalnymi opcjami prędkości, które zapewniają równowagę między dokładnością a przepustowością.

// Basic ZXing.Net barcode reading
using ZXing;

var reader = new BarcodeReader();
var result = reader.Decode(new Bitmap("barcode.png"));
if (result != null)
{
    Console.WriteLine($"Decoded: {result.Text}");
}

// ZXing.Net QR code generation
var writer = new BarcodeWriter
{
    Format = BarcodeFormat.QR_CODE,
    Options = new QrCodeEncodingOptions
    {
        Width = 300,
        Height = 300,
        Margin = 2
    }
};
var bitmap = writer.Write("___PROTECTED_URL_177___");
bitmap.Save("qr-code.png");
// Basic ZXing.Net barcode reading
using ZXing;

var reader = new BarcodeReader();
var result = reader.Decode(new Bitmap("barcode.png"));
if (result != null)
{
    Console.WriteLine($"Decoded: {result.Text}");
}

// ZXing.Net QR code generation
var writer = new BarcodeWriter
{
    Format = BarcodeFormat.QR_CODE,
    Options = new QrCodeEncodingOptions
    {
        Width = 300,
        Height = 300,
        Margin = 2
    }
};
var bitmap = writer.Write("___PROTECTED_URL_177___");
bitmap.Save("qr-code.png");
Imports ZXing
Imports ZXing.QrCode

Dim reader As New BarcodeReader()
Dim result = reader.Decode(New Bitmap("barcode.png"))
If result IsNot Nothing Then
    Console.WriteLine($"Decoded: {result.Text}")
End If

Dim writer As New BarcodeWriter With {
    .Format = BarcodeFormat.QR_CODE,
    .Options = New QrCodeEncodingOptions With {
        .Width = 300,
        .Height = 300,
        .Margin = 2
    }
}
Dim bitmap = writer.Write("___PROTECTED_URL_177___")
bitmap.Save("qr-code.png")
$vbLabelText   $csharpLabel

Brakuje mu jednak nowoczesnych funkcji. API do tworzenia kodów kreskowych pozostaje podstawowe, a biblioteka nie zapewnia automatycznej obsługi błędów kodowania ani korekcji obrazu. Możesz napotkać problemy z dokładnością tłumaczenia w przypadku niedoskonałych skanów, obróconych kodów lub złych warunków oświetleniowych. Testy z uszkodzonymi BARCODAMI wykazują 60–70% skuteczności bez ręcznego przetwarzania wstępnego. Aby uzyskać lepsze wyniki, warto rozważyć biblioteki z wbudowanymi filtrami obrazu i funkcjami automatycznego obracania. Brak konfiguracji korekty błędów ogranicza skuteczność w trudnych sytuacjach.

Kiedy oprogramowanie open source ma sens dla MVP?

  • Bezpłatne i otwarte oprogramowanie na licencji Apache 2.0.

  • Obsługuje popularne formaty, w tym kody QR i formaty 1D.

  • Łatwa instalacja z NuGet dla małych projektów .NET.

  • Lekkie, z minimalnymi zależnościami w porównaniu z zaawansowanymi instalacjami.

Jakiego rodzaju długu technicznego należy się spodziewać?

Kiedy należy używać Aspose.BarCode?

Strona główna Aspose.BarCode dla .NET przedstawiająca API do generowania i rozpoznawania kodów kreskowych wraz z przykładowym kodem w języku C# służącym do tworzenia kodów QR

Aspose.BarCode dla .NET jest przeznaczony do zastosowań Enterprise i oferuje zarówno funkcje generowania, jak i rozpoznawania. Obsługuje większość typów kodów kreskowych i integruje się z Suite Aspose w celu osadzania kodów kreskowych w dokumentach WORD, Excel lub PDF. W przypadku podobnej funkcjonalności integracja PDF firmy IronBarcode oferuje prostsze interfejsy API. Biblioteka IronBarcode umożliwia umieszczanie kodów kreskowych na plikach PDF z precyzyjnym pozycjonowaniem.

Biblioteka oferuje pełną obsługę formatów, w tym BarCodes pocztowe i specjalistyczne kody 2D. Jakość generowania wyróżnia się precyzyjną kontrolą nad rozmiarem modułów, strefami ciszy i poziomami korekcji błędów. Jednak API działa zgodnie z unikalnymi konwencjami Aspose, które mogą wydawać się nieznane. Dla porównania, stylistyka IronBarcode wykorzystuje bardziej intuicyjne nazwy metod. Przykład niestandardowego kodu QR ilustruje bardziej przejrzysty projekt API.

// Aspose.BarCode generation with custom settings
using Aspose.BarCode.Generation;

var generator = new BarcodeGenerator(EncodeTypes.DataMatrix, "ASPOSE-123");
generator.Parameters.Barcode.XDimension.Millimeters = 0.5f;
generator.Parameters.Barcode.DataMatrix.DataMatrixEcc = DataMatrixEccType.Ecc200;
generator.Save("datamatrix.png", BarCodeImageFormat.Png);

// Reading barcodes with specific settings
var reader = new BarCodeReader("barcode.png", DecodeType.AllSupportedTypes);
reader.QualitySettings = QualitySettings.HighPerformance;
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.WriteLine($"Type: {result.CodeTypeName}, Value: {result.CodeText}");
}
// Aspose.BarCode generation with custom settings
using Aspose.BarCode.Generation;

var generator = new BarcodeGenerator(EncodeTypes.DataMatrix, "ASPOSE-123");
generator.Parameters.Barcode.XDimension.Millimeters = 0.5f;
generator.Parameters.Barcode.DataMatrix.DataMatrixEcc = DataMatrixEccType.Ecc200;
generator.Save("datamatrix.png", BarCodeImageFormat.Png);

// Reading barcodes with specific settings
var reader = new BarCodeReader("barcode.png", DecodeType.AllSupportedTypes);
reader.QualitySettings = QualitySettings.HighPerformance;
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.WriteLine($"Type: {result.CodeTypeName}, Value: {result.CodeText}");
}
Imports Aspose.BarCode.Generation
Imports Aspose.BarCode.BarCodeRecognition

' Aspose.BarCode generation with custom settings
Dim generator As New BarcodeGenerator(EncodeTypes.DataMatrix, "ASPOSE-123")
generator.Parameters.Barcode.XDimension.Millimeters = 0.5F
generator.Parameters.Barcode.DataMatrix.DataMatrixEcc = DataMatrixEccType.Ecc200
generator.Save("datamatrix.png", BarCodeImageFormat.Png)

' Reading barcodes with specific settings
Dim reader As New BarCodeReader("barcode.png", DecodeType.AllSupportedTypes)
reader.QualitySettings = QualitySettings.HighPerformance
For Each result As BarCodeResult In reader.ReadBarCodes()
    Console.WriteLine($"Type: {result.CodeTypeName}, Value: {result.CodeText}")
Next
$vbLabelText   $csharpLabel

Duże organizacje doceniają API BarCode Aspose oraz obsługę standardów. Jednak wiąże się to z trudniejszym opanowaniem i wyższymi kosztami. Testy wydajności wykazują 500–800 BarCodes na minutę z dokładnością 85–90% w przypadku uszkodzonych BarCodes. Biblioteki z zaawansowanymi ustawieniami czytnika osiągają podobne wyniki przy łatwiejszej konfiguracji. Podczas przetwarzania strumieni obie biblioteki zapewniają wydajne przetwarzanie oparte na pamięci. W przypadku rozpoznawania kodów kreskowych MSI niezbędna jest odpowiednia konfiguracja.

Jak ceny dla Enterprise wpływają na startupy?

Dłączego krzywa uczenia się może spowolnić rozwój?

Czy BarcodeLib nadaje się do prostych zadań generowania?

Generator kodów kreskowych BarCodeLib.NET pokazujący integrację z Visual Studio za pomocą zestawu narzędzi Windows Forms oraz okno podglądu wygenerowanego kodu kreskowego

W przeciwieństwie do kompletnych rozwiązań, BarcodeLib generuje wyłącznie kody kreskowe i nie posiada funkcji skanowania. BarcodeLib doskonale sprawdza się w tworzeniu prostych BARCODE-ów w popularnych formatach, takich jak Code39, Code128 lub UPC. W przypadku zarówno funkcji generowania, jak i odczytu, należy rozważyć kompletne rozwiązania. Funkcje generowania BarCodes w nowoczesnych bibliotekach oferują większą elastyczność.

BarcodeLib obsługuje podstawowe zadania generowania za pomocą prostego interfejsu API. Aplikacja umożliwia generowanie BARCODE-ów w postaci obrazów o dostosowywanych rozmiarach, kolorach i adnotacjach tekstowych. Biblioteka generuje BARCODES zgodne z normami branżowymi dla handlu detalicznego i logistyki. Możliwości dostosowania są jednak ograniczone — nie można dodawać logo ani stosować zaawansowanych stylów, takich jak wypełnienia gradientowe czy niestandardowe marginesy. Nowoczesne biblioteki oferują pełną kontrolę nad stylem, w tym kolory, zmianę rozmiaru i adnotacje.

// Simple barcode generation with BarcodeLib
using BarcodeLib;

var barcode = new Barcode();
barcode.IncludeLabel = true;
barcode.AlternateLabel = "Product Code";
barcode.RotateFlipType = RotateFlipType.RotateNoneFlipNone;
var img = barcode.Encode(TYPE.CODE128, "12345678", Color.Black, Color.White, 300, 150);
img.Save("simple-barcode.png", ImageFormat.Png);

// Limited customization options
barcode.LabelPosition = LabelPositions.BOTTOMCENTER;
barcode.EncodedType = TYPE.UPCA;
var upcImage = barcode.Encode("123456789012");
// Simple barcode generation with BarcodeLib
using BarcodeLib;

var barcode = new Barcode();
barcode.IncludeLabel = true;
barcode.AlternateLabel = "Product Code";
barcode.RotateFlipType = RotateFlipType.RotateNoneFlipNone;
var img = barcode.Encode(TYPE.CODE128, "12345678", Color.Black, Color.White, 300, 150);
img.Save("simple-barcode.png", ImageFormat.Png);

// Limited customization options
barcode.LabelPosition = LabelPositions.BOTTOMCENTER;
barcode.EncodedType = TYPE.UPCA;
var upcImage = barcode.Encode("123456789012");
Imports BarcodeLib
Imports System.Drawing
Imports System.Drawing.Imaging

Dim barcode As New Barcode()
barcode.IncludeLabel = True
barcode.AlternateLabel = "Product Code"
barcode.RotateFlipType = RotateFlipType.RotateNoneFlipNone
Dim img As Image = barcode.Encode(TYPE.CODE128, "12345678", Color.Black, Color.White, 300, 150)
img.Save("simple-barcode.png", ImageFormat.Png)

' Limited customization options
barcode.LabelPosition = LabelPositions.BOTTOMCENTER
barcode.EncodedType = TYPE.UPCA
Dim upcImage As Image = barcode.Encode("123456789012")
$vbLabelText   $csharpLabel

BarcodeLib pozostaje solidnym rozwiązaniem zapewniającym szybkie i bezpłatne rozwiązania bez większego obciążenia związanego z SDK. Nie obsługuje jednak zaawansowanych zastosowań, takich jak pliki PDF, aplikacje mobilne czy skanowanie. W bibliotece brakuje nowszych formatów i kodowania Unicode. W przypadku obrazów BarCode 1BPP lub BarCode'ów przesyłanych strumieniowo potrzebne są niezawodne rozwiązania. Podczas korzystania z instalatorów MSI należy uważać na potencjalne problemy związane z brakującymi plikami DLL.

Kiedy startupy powinny wybierać minimalne rozwiązania?

Jakie funkcje trzeba będzie później zastąpić?

Dłączego warto wybrać Dynamsoft do skanowania o wysokiej wydajności?

Strona główna Dynamsoft BarCode Reader SDK przedstawiająca trzy wersje produktu dla platform internetowych, mobilnych oraz serwerowych/stacjonarnych wraz z funkcjami i opcjami wersji próbnych

Dynamsoft BarCode Reader SDK kładzie nacisk na szybkość i dokładność w zastosowaniach Enterprise i mobilnych. Biblioteka doskonale sprawdza się w skanowaniu w czasie rzeczywistym w logistyce, służbie zdrowia i handlu detalicznym, szczególnie na podstawie strumieni obrazu z kamer na żywo. W przypadku aplikacji internetowych warto rozważyć integrację z Blazor jako opłacalną alternatywę. Samouczek dotyczący skanera BarCode .NET MAUI pokazuje uproszczone skanowanie BarCode na urządzeniach mobilnych.

Testy wydajnościowe plasują firmę Dynamsoft na pozycji lidera w zakresie szybkiego skanowania, przetwarzając 1500–2000 barcode'ów na minutę z dokładnością ponad 95% w przypadku barcode'ów uszkodzonych. Pakiet SDK zawiera funkcje korekcji perspektywy i usuwania rozmycia przeznaczone specjalnie dla aparatów w telefonach komórkowych. Obsługuje wdrażanie na systemy iOS i Android za pośrednictwem Xamarin i .NET MAUI. W przypadku asynchronicznego odczytu BarCode obie biblioteki zapewniają niezawodne rozwiązania. W przypadku fałszywych alarmów algorytmy Dynamsoft minimalizują liczbę błędnych wykryć.

// Dynamsoft high-speed batch processing
using Dynamsoft.DBR;

var reader = new BarcodeReader();
reader.ProductKeys = "YOUR-LICENSE-KEY";

var settings = reader.GetRuntimeSettings();
settings.ExpectedBarcodesCount = 0; // Read all barcodes
settings.BarcodeFormatIds = (int)EnumBarcodeFormat.BF_ALL;
settings.DeblurLevel = 9; // Maximum deblur for mobile cameras
settings.ScaleUpModes[0] = ScaleUpMode.SUM_LINEAR_INTERPOLATION;
reader.UpdateRuntimeSettings(settings);

// Process video frame
var results = reader.DecodeBuffer(frameBuffer, frameWidth, frameHeight, frameStride, EnumImagePixelFormat.IPF_RGB_888, "");
foreach (var result in results)
{
    Console.WriteLine($"Barcode: {result.BarcodeText}, Confidence: {result.Confidence}");
}
// Dynamsoft high-speed batch processing
using Dynamsoft.DBR;

var reader = new BarcodeReader();
reader.ProductKeys = "YOUR-LICENSE-KEY";

var settings = reader.GetRuntimeSettings();
settings.ExpectedBarcodesCount = 0; // Read all barcodes
settings.BarcodeFormatIds = (int)EnumBarcodeFormat.BF_ALL;
settings.DeblurLevel = 9; // Maximum deblur for mobile cameras
settings.ScaleUpModes[0] = ScaleUpMode.SUM_LINEAR_INTERPOLATION;
reader.UpdateRuntimeSettings(settings);

// Process video frame
var results = reader.DecodeBuffer(frameBuffer, frameWidth, frameHeight, frameStride, EnumImagePixelFormat.IPF_RGB_888, "");
foreach (var result in results)
{
    Console.WriteLine($"Barcode: {result.BarcodeText}, Confidence: {result.Confidence}");
}
Imports Dynamsoft.DBR

' Dynamsoft high-speed batch processing
Dim reader As New BarcodeReader()
reader.ProductKeys = "YOUR-LICENSE-KEY"

Dim settings = reader.GetRuntimeSettings()
settings.ExpectedBarcodesCount = 0 ' Read all barcodes
settings.BarcodeFormatIds = CType(EnumBarcodeFormat.BF_ALL, Integer)
settings.DeblurLevel = 9 ' Maximum deblur for mobile cameras
settings.ScaleUpModes(0) = ScaleUpMode.SUM_LINEAR_INTERPOLATION
reader.UpdateRuntimeSettings(settings)

' Process video frame
Dim results = reader.DecodeBuffer(frameBuffer, frameWidth, frameHeight, frameStride, EnumImagePixelFormat.IPF_RGB_888, "")
For Each result In results
    Console.WriteLine($"Barcode: {result.BarcodeText}, Confidence: {result.Confidence}")
Next
$vbLabelText   $csharpLabel

Pakiet SDK zawiera obszerną dokumentację i profesjonalne wsparcie techniczne w cenie premium. Organizacje, dla których priorytetem jest wydajność i niezawodność, mogą uznać ten koszt za uzasadniony. Funkcje mobilne obejmują sterowanie latarką, Zoom oraz wybór obszaru zainteresowania. W przypadku odczytu BarCodes z plików PDF należy ocenić, czy specjalistyczne funkcje uzasadniają wyższą cenę. Biblioteka płynnie obsługuje wyjątki wykonawcze. Podczas wdrażania na AWS Lambda odpowiedni przydział pamięci zapewnia optymalną wydajność.

Kiedy wymagania dotyczące wydajności uzasadniają wyższą cenę?

Jak ceny dla Enterprise wpływają na zespoły działające w trybie bootstrappingowym?

Którą bibliotekę BarCode C# wybrać?

Wymagania projektu i przypadki użycia decydują o wyborze najlepszej biblioteki BarCode:

Dla systemów detalicznych/POS: IronBarcode zapewnia optymalną równowagę dzięki obsłudze formatów detalicznych (UPC, EAN, Code 128) oraz kodów QR do płatności mobilnych. Korekta błędów zapewnia niezawodne skanowanie zużytych BarCodes. Samouczek dotyczący generatora kodów kreskowych umożliwia szybkie wdrożenie. Internetowe systemy POS korzystają z eksportu do formatu HTML, co zapewnia płynną integrację.

W przypadku magazynów/logistyki: Dynamsoft wyróżnia się szybkim skanowaniem partii, natomiast obsługa plików PDF i odczyt wielu BarCode'ów w IronBarcode pozwala na wydajne przetwarzanie dokumentów wysyłkowych. Rozważ ustawienie obszarów przycięcia w celu zwiększenia szybkości. Odczyt oparty na strumieniu umożliwia wydajne przetwarzanie dokumentów bez plików tymczasowych. Wdrożenia ASP.NET wymagają odpowiedniej konfiguracji licencji w pliku web.config.

Dla sektora opieki zdrowotnej: Aspose.BarCode oferuje pełną obsługę formatów, w tym BarCodes stosowanych w opiece zdrowotnej, chociaż obsługa GS1-128 przez IronBarcode obejmuje etykietowanie urządzeń medycznych. Oba obsługują odczyt kodu 39 w celu identyfikacji pacjenta. Próg pewności gwarantuje dokładne przechwytywanie danych. W przypadku obrazów BarCode 1-BPP stosowanych w etykietach medycznych odpowiednia konfiguracja zapewnia wysoką jakość druku.

Dla przemysłu: Kody Data Matrix i PDF417 firmy IronBarcode z kodowaniem Unicode obsługują oznakowanie w globalnym łańcuchu dostaw. Obsługa nowego formatu obejmuje zastosowania przemysłowe. Podczas tworzenia BarCodes na podstawie danych biblioteka obsługuje różne rodzaje danych wejściowych, w tym dane binarne. Funkcja zapisywania BarCode obsługuje wszystkie główne formaty obrazów.

// Manufacturing example: Create DataMatrix with production data
using IronBarCode;
using System.Text;

// Encode production data with Unicode support
var productionData = new StringBuilder();
productionData.AppendLine("PN: ABC-12345");
productionData.AppendLine("SN: 2024-001");
productionData.AppendLine("製造日: 2024-01-15"); // Unicode Japanese
productionData.AppendLine("Lot: A1B2C3");

var dataMatrix = BarcodeWriter.CreateBarcode(
    productionData.ToString(), 
    BarcodeWriterEncoding.DataMatrix
);

dataMatrix.ResizeTo(200, 200)
          .SetMargins(5)
          .SaveAsImage("production-label.png");

// Generate PDF report with multiple barcodes
var pdf = BarcodeWriter.CreateBarcodePdf(
    new string[] { "PART-001", "PART-002", "PART-003" },
    BarcodeWriterEncoding.Code128,
    300, 150
);
pdf.SaveAs("parts-inventory.pdf");
// Manufacturing example: Create DataMatrix with production data
using IronBarCode;
using System.Text;

// Encode production data with Unicode support
var productionData = new StringBuilder();
productionData.AppendLine("PN: ABC-12345");
productionData.AppendLine("SN: 2024-001");
productionData.AppendLine("製造日: 2024-01-15"); // Unicode Japanese
productionData.AppendLine("Lot: A1B2C3");

var dataMatrix = BarcodeWriter.CreateBarcode(
    productionData.ToString(), 
    BarcodeWriterEncoding.DataMatrix
);

dataMatrix.ResizeTo(200, 200)
          .SetMargins(5)
          .SaveAsImage("production-label.png");

// Generate PDF report with multiple barcodes
var pdf = BarcodeWriter.CreateBarcodePdf(
    new string[] { "PART-001", "PART-002", "PART-003" },
    BarcodeWriterEncoding.Code128,
    300, 150
);
pdf.SaveAs("parts-inventory.pdf");
Imports IronBarCode
Imports System.Text

' Encode production data with Unicode support
Dim productionData As New StringBuilder()
productionData.AppendLine("PN: ABC-12345")
productionData.AppendLine("SN: 2024-001")
productionData.AppendLine("製造日: 2024-01-15") ' Unicode Japanese
productionData.AppendLine("Lot: A1B2C3")

Dim dataMatrix = BarcodeWriter.CreateBarcode(productionData.ToString(), BarcodeWriterEncoding.DataMatrix)

dataMatrix.ResizeTo(200, 200) _
          .SetMargins(5) _
          .SaveAsImage("production-label.png")

' Generate PDF report with multiple barcodes
Dim pdf = BarcodeWriter.CreateBarcodePdf(New String() {"PART-001", "PART-002", "PART-003"}, BarcodeWriterEncoding.Code128, 300, 150)
pdf.SaveAs("parts-inventory.pdf")
$vbLabelText   $csharpLabel
  • Proste, darmowe rozwiązania, takie jak ZXing.Net i BarcodeLib, sprawdzają się jako punkt wyjścia, ale brakuje im zaawansowanych funkcji i dokładności produkcyjnej.

  • Aspose.BarCode płynnie integruje się z istniejącymi procesami roboczymi Aspose w projektach na skalę Enterprise, chociaż Dokumentacja API wskazuje, że IronBarcode oferuje bardziej intuicyjne metody.

  • Dynamsoft BarCode Reader zapewnia niezrównaną dokładność skanowania mobilnego w czasie rzeczywistym, a jego cena z wyższej półki wymaga starannej oceny licencji.

  • Jeśli chodzi o wszechstronną, kompleksową funkcjonalność kodów kreskowych, IronBarcode wyróżnia się na tle innych rozwiązań. Takie podejście zapewnia wyraźne korzyści: łatwość użytkowania, efektywne generowanie i skanowanie, obszerną obsługę formatów oraz elastyczne licencjonowanie — co czyni je najlepszym wyborem dla programistów C# tworzących nowoczesne aplikacje .NET.

Dzięki IronBarcode Twoja aplikacja może natychmiast korzystać z funkcji kodów kreskowych przy minimalnym nakładzie kodu. Biblioteka radzi sobie z tą złożonością za Ciebie, niezależnie od tego, czy tworzysz aplikacje desktopowe, czy Enterprise usługi internetowe. Kompletna dokumentacja i samouczki umożliwiają szybkie rozpoczęcie pracy, a funkcje takie jak przetwarzanie asynchroniczne i obsługa strumieni zapewniają skalowalność. W zakresie tworzenia instalatorów MSI IronBarcode zapewnia jasne wytyczne dotyczące zależności DLL. Środki bezpieczeństwa biblioteki zapewniają bezpieczne wdrożenie w branżach podlegających regulacjom.

👉 Gotowy, aby rozpocząć? Pobierz bezpłatną wersję próbną IronBarcode, dostępną bezpłatnie do użytku programistycznego, i przekonaj się, jak łatwo możesz dodać funkcjonalność kodów kreskowych do swoich aplikacji .NET. Zapoznaj się z przewodnikiem szybkiego startu i obejrzyj prezentacje, aby zobaczyć IronBarcode w akcji. Aby zapewnić bezpieczne wdrożenia, zapoznaj się z informacjami dotyczącymi bezpieczeństwa CVE oraz dowiedz się, jak stosować klucze licencyjne w środowiskach produkcyjnych. Przegląd funkcji pokazuje pełen zakres możliwości dostępnych dla Państwa projektów.

Zwróć uwagęZXing.Net, Aspose.BarCode, BarcodeLib oraz Dynamsoft BARCODE Reader są zastrzeżonymi znakami towarowymi ich odpowiednich właścicieli. Ta strona nie jest powiązana z, popierana ani sponsorowana przez ZXing.Net, Aspose.BarCode, BarcodeLib ani Dynamsoft BarCode Reader. Wszystkie nazwy produktów, logo i marki są własnością ich odpowiednich właścicieli. Porównania mają charakter wyłącznie informacyjny i odzwierciedlają informacje dostępne publicznie w momencie pisania.

Często Zadawane Pytania

Co to jest biblioteka kodów kreskowych?

Biblioteka kodów kreskowych to komponent oprogramowania, który pozwala programistom generować i czytać kody kreskowe w różnych formatach, takich jak kody QR, UPC-A i Data Matrix, w ramach swoich aplikacji.

Dlaczego powinienem używać biblioteki kodów kreskowych w C#?

Korzystanie z biblioteki BarCode w języku C# pozwala programistom na integrację funkcji BarCode z ich aplikacjami, ułatwiając przechowywanie i przesyłanie danych, a także poprawiając śledzenie i ograniczając błędy w operacjach biznesowych.

Jakie są popularne biblioteki BarCode dla .NET?

Niektóre powszechnie używane biblioteki kodów kreskowych dla .NET to IronBarcode, ZXing.Net, Aspose.BarCode, BarcodeLib i Dynamsoft Barcode Reader.

Jakie są zalety korzystania z IronBarcode?

IronBarcode oferuje łatwą integrację, szeroki zakres obsługiwanych formatów kodów kreskowych oraz wysoką wydajność, co czyni go niezawodnym wyborem dla programistów pragnących wdrożyć funkcjonalność kodów kreskowych w swoich aplikacjach.

Jakie znaczenie mają kody QR w bibliotekach BarCode’ów?

QR codes are a popular type of BarCode supported by most BarCode libraries. They are versatile, widely used for quick information sharing, and can store large amounts of data in comparison to traditional BarCodes.

Czym różni się IronBarcode od ZXing.Net?

IronBarcode oferuje bogatszy zestaw funkcji, w tym lepszą obsługę różnych formatów kodów kreskowych i łatwiejszą integrację, podczas gdy ZXing.Net jest bezpłatną opcją typu open source, która może wymagać większej konfiguracji.

Czy biblioteki BarCode mogą być wykorzystywane w aplikacjach medycznych?

Tak, biblioteki BARCODE mogą być wykorzystywane w aplikacjach medycznych w celu usprawnienia procesów, takich jak identyfikacja pacjentów, śledzenie leków i zarządzanie zapasami, co poprawia wydajność i ogranicza liczbę błędów.

Jakie rodzaje kodów kreskowych może generować IronBarcode?

IronBarcode może generować szeroki zakres kodów kreskowych, w tym kody QR, UPC-A, Code 128 i Data Matrix oraz wiele innych.

Czy dostępna jest bezpłatna wersja IronBarcode?

IronBarcode oferuje bezpłatną wersję z ograniczonymi funkcjami, umożliwiającą programistom ocenę możliwości programu przed podjęciem decyzji o zakupie płatnej wersji z pełną funkcjonalnością.

Do czego służą BarCodes Data Matrix?

BarCODE Data Matrix służą do kodowania dużych ilości danych na niewielkiej przestrzeni, dzięki czemu idealnie nadają się do zastosowań wymagających kompaktowego i wydajnego przechowywania danych, np. na małych etykietach produktów.

Jordi Bardia
Inżynier oprogramowania
Jordi jest najbardziej biegły w Pythonie, C# i C++. Kiedy nie wykorzystuje swoich umiejętności w Iron Software, programuje gry. Dzieląc odpowiedzialność za testowanie produktów, rozwój produktów i badania, Jordi wnosi ogromną wartość do ciągłej poprawy produktów. Różnorodne doświadczenia ...
Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie