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

Skanowanie kodów kreskowych Google ML Kit vs IronBarcode: Porównanie bibliotek kodów kreskowych C#

Skanowanie BarCode'ów w Google ML Kit na Androidzie robi naprawdę duże wrażenie. Obsługuje Google Lens, radzi sobie z uszkodzonymi i częściowo zasłoniętymi kodami, działa na urządzeniu bez połączenia z siecią i obsługuje szeroki zakres formatów 1D i 2D. Gdy programiści .NET natrafiają na to w porównaniu bibliotek BarCode, informacje te są zgodne z prawdą. Artykuły porównawcze często pomijają fakt, że ML Kit nie posiada zestawu SDK dla platformy .NET, pakietu NuGet ani interfejsu API w języku C#. Ten artykuł jest przeznaczony dla programistów, którzy znaleźli ML Kit na liście i muszą zrozumieć, co w praktyce oznacza "używanie ML Kit w projekcie .NET" — oraz jak wygląda jego odpowiednik w kodzie zarządzanym.

Czym jest skanowanie kodów kreskowych w Google ML Kit

Google ML Kit BarCode Scanning to natywna biblioteka mobilna. Nie jest to ograniczenie, które należy obejść; to projekt produktu. ML Kit jest dostępny w dwóch wersjach:

  • Android: Dystrybucja za pośrednictwem Google Maven jako com.google.mlkit:barcode-scanning (Kotlin/Java). Wymaga usług Google Play na urządzeniu docelowym. Przetwarza obiekty InputImage utworzone na podstawie klatek z kamery, adresów URI plików lub map bitowych.
  • iOS: Dystrybuowany za pośrednictwem CocoaPods jako GoogleMLKit/BarcodeScanning, z zależnością od Firebase. Wykorzystuje Swift lub Objective-C.

Nie ma dotnet add package google-mlkit-barcode. Nie ma using Google.MLKit.BarcodeScanning;. Google nie udostępnia powiązania .NET dla ML Kit.

W różnych momentach istniały powiązania Xamarin utrzymywane przez społeczność, ale mają one stały problem: ML Kit często aktualizuje swoje zestawy SDK dla systemów Android i iOS, a projekty powiązań utrzymywane przez osoby prywatne lub małe zespoły mają tendencję do pozostawania w tyle lub całkowitego przestawania działać, gdy zmienia się podstawowy interfejs API. W 2026 r. nie istnieje aktywnie utrzymywany, gotowy do użycia w środowisku produkcyjnym pakiet .NET NuGet, który zawiera skaner BarCode ML Kit.

W czym ML Kit sprawdza się najlepiej

Zrozumienie, dłączego ML Kit pojawia się w porównaniach kodów kreskowych, stanowi przydatny kontekst. Na natywnym systemie Android:

  • Wnioskowanie na urządzeniu: brak komunikacji z serwerem. Model ML Kit działa lokalnie przy użyciu Google Play Services, co oznacza niskie opóźnienia i brak zależności od sieci w czasie skanowania.
  • Tolerancja uszkodzeń: Model ML radzi sobie z uszkodzonymi, częściowo zasłoniętymi lub niskiej rozdzielczości BARCODE-ami lepiej niż wiele dekoderów opartych na progach. Jest to prawdziwy czynnik wyróżniający aplikacje przeznaczone dla konsumentów, skanujące kody w świecie rzeczywistym.
  • Integracja z Google Lens: skaner ML Kit to ten sam zestaw, który obsługuje wykrywanie BarCode w Google Lens. To wyraźny znak wysokiej jakości.
  • Zakres formatów na urządzeniach mobilnych: natywnie obsługiwane są kody QR, EAN-13, EAN-8, Code 128, Code 39, Code 93, Codabar, ITF, PDF417, Data Matrix, Aztec oraz UPC-A/UPC-E.
  • Zero konfiguracji: Trzywierszowy fragment kodu w języku Kotlin pozwala stworzyć działający skaner bez konieczności dostosowywania progów lub wybierania strategii dekodowania.

To są prawdziwe atuty. Problem dla programistów .NET nie polega na tym, że ML Kit jest zły — chodzi o to, że nie jest on dla nich dostępny bez znacznego nakładu pracy.

Rzeczywistość programowania w środowisku .NET

Gdy programista .NET musi skanować BARCODES, ścieżka ML Kit wygląda w praktyce następująco:

Brak async/await API C#. ML Kit wykorzystuje API Androida Task z wywołaniami zwrotnymi addOnSuccessListener i addOnFailureListener. Nie odpowiadają one elementom Task<t> i await w .NET. Każda warstwa powiązania musi dostosowywać się między asynchronicznością Androida opartą na wywołaniach zwrotnych a TPL w .NET — jest to niebanalne tłumaczenie, z którym powiązania społecznościowe radzą sobie w sposób niejednolity.

Brak integracji wstrzykiwania zależności .NET. BarcodeScanning.getClient(options) to statyczne wywołanie fabryki, które zwraca obiekt Android BarcodeScanner. Nie ma interfejsu .NET Core do rejestracji, nie ma IServiceCollection.AddBarcodeScanner(), nie ma możliwości wstrzyknięcia go do oprogramowania pośredniczącego ASP.NET Core lub Azure Functions.

Brak obsługi ASP.NET Core lub Azure Function. ML Kit wymaga środowiska uruchomieniowego Android lub iOS. Nie może działać w procesie API sieci Web w systemie Linux, w funkcji Azure, na serwerze Windows Server ani w kontenerze Docker. Jeśli Twoim przypadkiem użycia jest przetwarzanie BarCode po stronie serwera — punkt końcowy REST, który przyjmuje obraz i zwraca dane BarCode, potok przetwarzania dokumentów, zadanie wsadowe — ML Kit jest architektonicznie niekompatybilny, niezależnie od dostępności jakichkolwiek powiązań.

Tylko dane z kamery lub klatki — bez pliku, bez PDF. InputImage w ML Kit można utworzyć z Bitmap, ByteBuffer lub adresu URI pliku w systemie plików Android. Nie ma tu mowy o przetwarzaniu dokumentów PDF, iteracji stron ani obsłudze wielostronicowych plików TIFF. Przetwarzanie dokumentów po stronie serwera całkowicie wykracza poza zakres produktu.

Zależność od usług Google Play. Model ML działający na urządzeniu jest uruchamiany za pośrednictwem usług Google Play. Urządzenia bez usług Google Play — niestandardowe wersje Androida, niektóre urządzenia Enterprise, tablety Amazon Fire — nie mogą korzystać z domyślnej konfiguracji ML Kit. Opcja modelu "bundled" (com.google.mlkit:barcode-scanning-bundled) pozwala obejść ten problem, ale znacznie zwiększa rozmiar pliku APK.

Portowanie kodu Android ML Kit na platformę .NET

Jeśli posiadasz istniejącą aplikację na Androida z funkcją skanowania BarCode ML Kit i przenosisz ją na platformę .NET MAUI lub .NET 9, oto tłumaczenie. Kod w języku Kotlin wykorzystuje wzorzec wywołania zwrotnego ML Kit; Kod w języku C# wykorzystuje synchroniczne API biblioteki IronBarcode.

// Android Kotlin: ML Kit
val options = BarcodeScannerOptions.Builder()
    .setBarcodeFormats(Barcode.FORMAT_QR_CODE, Barcode.FORMAT_CODE_128)
    .build()
val scanner = BarcodeScanning.getClient(options)
val inputImage = InputImage.fromFilePath(context, uri)
scanner.process(inputImage)
    .addOnSuccessListener { barcodes ->
        for (barcode in barcodes) {
            val rawValue = barcode.rawValue
            val format = barcode.format
        }
    }
    .addOnFailureListener { e -> Log.e("MLKit", e.message ?: "") }
// .NET C#: IronBarcode
// NuGet: dotnet add package IronBarcode
using IronBarCode;

var results = BarcodeReader.Read("captured-image.jpg");
foreach (var barcode in results)
{
    Console.WriteLine($"{barcode.Format}: {barcode.Value}");
}
// .NET C#: IronBarcode
// NuGet: dotnet add package IronBarcode
using IronBarCode;

var results = BarcodeReader.Read("captured-image.jpg");
foreach (var barcode in results)
{
    Console.WriteLine($"{barcode.Format}: {barcode.Value}");
}
Imports IronBarCode

Dim results = BarcodeReader.Read("captured-image.jpg")
For Each barcode In results
    Console.WriteLine($"{barcode.Format}: {barcode.Value}")
Next
$vbLabelText   $csharpLabel

Różnica strukturalna wykracza poza samą składnię. Wersja ML Kit konfiguruje obiekt skanera, tworzy InputImage, wywołuje scanner.process() oraz rejestruje wywołania zwrotne sukcesu i niepowodzenia. Jeśli potrzebujesz wyniku przed kontynuowaniem, musisz skoordynować wykonanie wywołania zwrotnego z resztą logiki — zazwyczaj poprzez CountDownLatch w Javie lub korutyn w Kotlinie.

Funkcja BarcodeReader.Read() biblioteki IronBarcode zwraca zbiór wyników synchronicznie. Natychmiast to powtórz. Nie ma rejestracji wywołań zwrotnych, synchronizacji wątków ani oddzielnego obiektu skanera do zarządzania.

Dla zespołów przenoszących kod z Androida wzorcowe tłumaczenie dla scenariuszy z wieloma BarCode'ami wygląda następująco:

// .NET C#: IronBarcode — reading multiple barcodes with options
using IronBarCode;

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    ExpectedBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128
};

var results = BarcodeReader.Read("image.jpg", options);
foreach (var barcode in results)
{
    Console.WriteLine($"Format: {barcode.Format}, Value: {barcode.Value}");
}
// .NET C#: IronBarcode — reading multiple barcodes with options
using IronBarCode;

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    ExpectedBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128
};

var results = BarcodeReader.Read("image.jpg", options);
foreach (var barcode in results)
{
    Console.WriteLine($"Format: {barcode.Format}, Value: {barcode.Value}");
}
Imports IronBarCode

Dim options As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Balanced,
    .ExpectMultipleBarcodes = True,
    .ExpectedBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128
}

Dim results = BarcodeReader.Read("image.jpg", options)
For Each barcode In results
    Console.WriteLine($"Format: {barcode.Format}, Value: {barcode.Value}")
Next
$vbLabelText   $csharpLabel

Flaga ExpectedBarcodeTypes jest odpowiednikiem flagi setBarcodeFormats() w ML Kit. Ustawienie tego parametru zawęża zakres wyszukiwania i poprawia wydajność, ale w przeciwieństwie do ML Kit, pozostawienie go bez ustawienia nie zakłóca odczytu — IronBarcode spróbuje wszystkich obsługiwanych formatów.

Porównanie zakresu formatów

Oba narzędzia obsługują popularne formaty 2D i 1D. Zbieżność jest znaczna.

Format ML Kit (Android) IronBarcode
Kod QR Tak Tak
EAN-13 Tak Tak
EAN-8 Tak Tak
UPC-A Tak Tak
UPC-E Tak Tak
Kod 128 Tak Tak
Kod 39 Tak Tak
Kod 93 Tak Tak
Codabar Tak Tak
ITF Tak Tak
PDF417 Tak Tak
Data Matrix Tak Tak
Aztec Tak Tak
Kod 11 Nie Tak
MSI Plessey Nie Tak
Pharmacode Nie Tak
Wstawione 2 z 5 Za pośrednictwem ITF Tak
RSS-14 / GS1 Databar Nie Tak
Micro QR Nie Tak
MaxiCode Nie Tak

IronBarcode obsługuje ponad 50 typów kodowania zarówno podczas odczytu, jak i generowania. Lista formatów ML Kit jest ustalona przez Google i dostarczana wraz z modelem — nie można dodawać własnych symboli.

Co oferuje IronBarcode

Oprócz odczytu, IronBarcode obsługuje cały proces pracy z kodami kreskowymi:

Generowanie. ML Kit nie posiada żadnego API do generowania — odczytuje BARCODES, ale ich nie tworzy. IronBarcode generuje dowolny obsługiwany format do plików PNG, JPEG, SVG, HTML lub danych binarnych.

// Generate a Kod 128 barcode to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128)
    .SaveAsPng("shipping-label.png");
// Generate a Kod 128 barcode to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128)
    .SaveAsPng("shipping-label.png");
' Generate a Kod 128 barcode to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128) _
    .SaveAsPng("shipping-label.png")
$vbLabelText   $csharpLabel

Dostosowywanie kodów QR. QRCodeWriter obsługuje osadzanie logo, zmiany kolorów i poziomy korekcji błędów — funkcje, które nie mają odpowiednika w ML Kit, ponieważ ML Kit niczego nie generuje.

// QR code with embedded logo and custom color
QRCodeWriter.CreateQrCode("https://example.com/product/4821", 500)
    .AddBrandLogo("company-logo.png")
    .ChangeBarCodeColor(System.Drawing.Color.DarkBlue)
    .SaveAsPng("product-qr.png");
// QR code with embedded logo and custom color
QRCodeWriter.CreateQrCode("https://example.com/product/4821", 500)
    .AddBrandLogo("company-logo.png")
    .ChangeBarCodeColor(System.Drawing.Color.DarkBlue)
    .SaveAsPng("product-qr.png");
' QR code with embedded logo and custom color
QRCodeWriter.CreateQrCode("https://example.com/product/4821", 500) _
    .AddBrandLogo("company-logo.png") _
    .ChangeBarCodeColor(System.Drawing.Color.DarkBlue) _
    .SaveAsPng("product-qr.png")
$vbLabelText   $csharpLabel

Przetwarzanie plików PDF. BarcodeReader.Read("document.pdf") natywnie odczytuje BARCODE z każdej strony pliku PDF. Bez etapu wyodrębniania obrazów, bez pętli strona po stronie z oddzielną biblioteką PDF — obsługuje pliki PDF bezpośrednio.

// Read all barcodes from every page of a PDF
var results = BarcodeReader.Read("invoice-batch.pdf");
foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Value}");
}
// Read all barcodes from every page of a PDF
var results = BarcodeReader.Read("invoice-batch.pdf");
foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Value}");
}
Imports System

' Read all barcodes from every page of a PDF
Dim results = BarcodeReader.Read("invoice-batch.pdf")
For Each barcode In results
    Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Value}")
Next
$vbLabelText   $csharpLabel

Po stronie serwera i w chmurze. IronBarcode działa na systemach Windows, Linux, macOS, Docker, Azure Functions i AWS Lambda. Nie ma wymagań dotyczących usług Google Play, aparatu ani środowiska uruchomieniowego dla urządzeń mobilnych.

Wynik binarny. .ToPngBinaryData() zwraca bezpośrednio byte[] — przydatne w przypadku interfejsów API, które zwracają obrazy BARCODE jako odpowiedzi HTTP bez zapisywania na dysku.

// Generate barcode and return as byte array (e.g., in a web API)
byte[] barcodeBytes = BarcodeWriter.CreateBarcode("ORDER-8821", BarcodeEncoding.QRCode)
    .ToPngBinaryData();
// Generate barcode and return as byte array (e.g., in a web API)
byte[] barcodeBytes = BarcodeWriter.CreateBarcode("ORDER-8821", BarcodeEncoding.QRCode)
    .ToPngBinaryData();
' Generate barcode and return as byte array (e.g., in a web API)
Dim barcodeBytes As Byte() = BarcodeWriter.CreateBarcode("ORDER-8821", BarcodeEncoding.QRCode) _
    .ToPngBinaryData()
$vbLabelText   $csharpLabel

Porównanie funkcji

Funkcja Google ML Kit BarCode IronBarcode
.NET / C# API Brak (brak pakietu NuGet) Tak — using IronBarCode;
Pakiet NuGet None IronBarcode
Odczytywanie BarCode Tak (tylko Android/iOS) Tak (wszystkie platformy)
Generowanie BarCode'ów Nie Tak (ponad 50 formatów)
Generowanie kodów QR Nie Tak
Osadzanie logo QR Nie Tak
Obsługa plików PDF Nie Tak (język ojczysty)
Plik wejściowy (PNG/JPEG) Tak (poprzez adres URI obrazu wejściowego) Tak
Wejście z kamery / klatki Tak (główny przypadek użycia) Za pośrednictwem pliku graficznego
Przetwarzanie po stronie serwera Nie Tak
Obsługa ASP.NET Core Nie Tak
Azure Functions Nie Tak
Docker / Linux Nie Tak
Obsługa aplikacji Windows Nie (tylko Android/iOS) Tak
Usługi Google Play dep. Tak (model standardowy) Nie
Zależność od Firebase (iOS) Tak Nie
Async/await C# API Nie Synchroniczne (pasuje do modelu .NET)
Wiele BarCode na jednym obrazie Tak Tak
Powiązanie społeczności .NET Nieoficjalne, niestabilne N/A (rodzimy .NET)
Ceny Bezpłatna (w ramach Google Play) Od 749 USD (licencja wieczysta)

Mapowanie koncepcji API

Ponieważ nie ma oficjalnego interfejsu API .NET ML Kit, to mapowanie ma charakter koncepcyjny — pokazuje cel każdej operacji ML Kit oraz jej odpowiednik w IronBarcode.

ML Kit (koncepcja Kotlin/Java) IronBarcode (.NET C#)
BarcodeScannerOptions.Builder() new BarcodeReaderOptions { }
.setBarcodeFormats(FORMAT_QR_CODE) ExpectedBarcodeTypes = BarcodeEncoding.QRCode
BarcodeScanning.getClient(options) Statyczne — nie jest potrzebny obiekt skanera
InputImage.fromFilePath(context, uri) Ciąg znaków ścieżki pliku przekazany do BarcodeReader.Read()
InputImage.fromBitmap(bitmap, rotation) BarcodeReader.Read(stream) lub przeciążenie tablicy bajtów
scanner.process(inputImage) BarcodeReader.Read(path, options)
.addOnSuccessListener { barcodes -> } Wartość zwracana przez Read() — iteracja bezpośrednia
.addOnFailureListener { e -> } Standardowy try/catch
barcode.rawValue barcode.Value
barcode.format barcode.Format
barcode.boundingBox barcode.BarcodeImage (dane regionalne)
Barcode.FORMAT_QR_CODE BarcodeEncoding.QRCode
Barcode.FORMAT_CODE_128 BarcodeEncoding.Code128
Brak API generowania BarcodeWriter.CreateBarcode()
Brak API generowania QRCodeWriter.CreateQrCode()
Speed / wybór modelu ReadingSpeed.Balanced / .Faster / .Detailed

Kiedy warto rozważyć IronBarcode

Portowanie aplikacji na Androida do .NET MAUI lub .NET 9. Jeśli Twoja aplikacja na Androida wykorzystuje ML Kit do skanowania kodów kreskowych, a Ty tworzysz jej odpowiednik w .NET, naturalnym wyborem jest IronBarcode. Koncepcja tłumaczenia jest prosta — odczytaj plik, uzyskaj wynik, iteruj wartości.

Przetwarzanie kodów kreskowych po stronie serwera. Każdy scenariusz obejmujący punkt końcowy HTTP skanujący kody kreskowe, zadanie w tle przetwarzające przesłane obrazy lub przepływ pracy z dokumentami, który wyodrębnia kody z plików PDF. ML Kit nie może brać udziału w żadnym z tych projektów.

Aplikacje desktopowe dla systemu Windows. WinForms, WPF lub .NET MAUI w systemie Windows. ML Kit w ogóle nie działa w systemie Windows.

Środowiska bez usług Google Play. Jeśli wdrożenie systemu Android obejmuje urządzenia, które nie mają usług Google Play — sprzęt Enterprise, niestandardowe kompilacje AOSP, urządzenia Amazon Fire — standardowy model ML Kit jest niedostępny. IronBarcode nie ma takich zależności.

Generowanie i odczyt. Jeśli potrzebujesz zarówno generować, jak i odczytywać kody kreskowe — na przykład drukować etykiety wysyłkowe i weryfikować skanowanie — IronBarcode obsługuje obie te funkcje w bibliotece IronBarcode. ML Kit nie obsługuje ani generowania, ani odczytu po stronie serwera.

Wdrożenie w Azure lub AWS. Azure Functions, Azure App Service na systemie Linux, AWS Lambda — żadna z tych platform nie obsługuje ML Kit. IronBarcode jest przeznaczony dla wszystkich z nich.

Licencjonowanie i ceny

Skanowanie BarCode w Google ML Kit jest bezpłatne dla aplikacji na Androida i iOS. Nie ma opłat za skanowanie i nie jest wymagańa licencja komercyjna. Ten model cenowy ma sens w zamierzonym kontekście — natywnej bibliotece mobilnej dołączonej do Google Play Services.

IronBarcode to komercyjna biblioteka .NET z licencjami wieczystymi:

  • Lite: 749 USD — 1 programista, 1 lokalizacja projektu
  • Plus: 1499 USD — do 3 programistów
  • Professional: 2999 USD — do 10 programistów
  • Unlimited: 5999 USD — nieograniczona liczba programistów

Dostępna jest bezpłatna wersja próbna bez ograniczeń czasowych; Wersja próbna zawiera znaki wodne w postaci BARCODE-ów. Dla zespołów, które już płacą za infrastrukturę serwerową do przetwarzania dokumentów, koszt licencji stanowi zazwyczaj niewielką część nakładu inżynieryjnego wymagańego do utrzymania nieoficjalnego powiązania ML Kit.

Wnioski

Google ML Kit Barcode Scanning to dobrze zaprojektowana biblioteka, która robi dokładnie to, do czego została stworzona: szybko i dokładnie skanuje kody kreskowe na urządzeniach z systemem Android i iOS. Porównanie z IronBarcode nie dotyczy tego, która biblioteka jest lepsza, ale raczej tego, która z nich jest dostępna w kontekście, w którym jej potrzebujesz.

Jeśli piszesz w języku Kotlin dla systemu Android i skanujesz za pomocą aparatu, ML Kit jest doskonałym wyborem. Jeśli piszesz w języku C# dla platformy .NET — niezależnie od tego, czy chodzi o interfejs API sieci Web, usługę przetwarzania dokumentów, aplikację dla systemu Windows, funkcję w chmurze czy wielopłatformową aplikację MAUI — Google ML Kit nie ma dla Ciebie żadnej oferty. Nie ma pakietu NuGet, nie ma API C# i nie ma obsługiwanej przez Google ścieżki do użycia go w kodzie zarządzanym. IronBarcode to natywna biblioteka .NET, która obsługuje zarówno odczyt, jak i generowanie na każdej platformie obsługiwanej przez .NET.

Często Zadawane Pytania

Czym jest Google ML Kit Barcode Scanning?

Google ML Kit Barcode Scanning to biblioteka .NET do generowania i odczytywania kodów kreskowych w aplikacjach C#. Jest jedną z kilku alternatyw, które programiści oceniają, wybierając rozwiązanie dla kodów kreskowych w projektach .NET.

Jakie są główne różnice między Google ML Kit Barcode Scanning a IronBarcode?

IronBarcode używa statycznego, bezstanowego API, które nie wymaga zarządzania instancją, podczas gdy Google ML Kit Barcode Scanning zazwyczaj wymaga stworzenia instancji i konfiguracji przed użyciem. IronBarcode oferuje również natywne wsparcie dla PDF, automatyczne wykrywanie formatu i licencjonowanie za pomocą jednego klucza we wszystkich środowiskach.

Czy IronBarcode jest łatwiejszy do licencjonowania niż Google ML Kit Barcode Scanning?

IronBarcode wykorzystuje pojedynczy klucz licencyjny obejmujący zarówno wdrożenia deweloperskie, jak i produkcyjne. Upraszcza to procesy CI/CD oraz konfiguracje Docker w porównaniu z systemami licencyjnymi, które oddzielają klucze SDK od kluczy środowiska uruchomieniowego.

Czy IronBarcode obsługuje wszystkie formaty kodów kreskowych, które obsługuje Google ML Kit Barcode Scanning?

IronBarcode obsługuje ponad 30 symboli kodów kreskowych, w tym QR Code, Code 128, Code 39, DataMatrix, PDF417, Aztec, EAN-13, UPC-A, GS1 i wiele innych. Automatyczne wykrywanie formatu oznacza, że nie jest wymagane jawne wyliczanie formatów.

Czy IronBarcode obsługuje natywne odczytywanie kodów kreskowych z plików PDF?

Tak. IronBarcode odczytuje kody kreskowe bezpośrednio z plików PDF za pomocą BarcodeReader.Read("document.pdf") bez konieczności korzystania z oddzielnej biblioteki do renderowania plików PDF. Wyniki dla każdej strony obejmują numer strony, format kodu kreskowego, wartość oraz wskaźnik pewności.

Jak IronBarcode radzi sobie z przetwarzaniem wsadowym w porównaniu do Google ML Kit Barcode Scanning?

Metody statyczne IronBarcode są bezstanowe i z natury bezpieczne dla wątków, co umożliwia bezpośrednie użycie Parallel.ForEach bez zarządzania instancjami dla poszczególnych wątków. Nie ma ograniczeń przepustowości w żadnym przedziale cenowym.

Jakie wersje .NET obsługuje IronBarcode?

IronBarcode obsługuje .NET Framework 4.6.2+, .NET Core 3.1 oraz .NET 5, 6, 7, 8 i 9 w jednym pakiecie NuGet. Obsługiwane platformy to Windows x64/x86, Linux x64 oraz macOS x64/ARM.

Jak zainstalować IronBarcode w projekcie .NET?

Zainstaluj IronBarcode za pomocą NuGet: uruchom polecenie „Install-Package IronBarCode” w konsoli menedżera pakietów lub „dotnet add package IronBarCode” w interfejsie CLI. Nie są wymagane żadne dodatkowe instalatory SDK ani pliki uruchomieniowe.

Czy mogę ocenić IronBarcode przed zakupem, w przeciwieństwie do Google ML Kit?

Tak. Tryb próbny IronBarcode zwraca pełne, zdekodowane wartości BarCode — tylko wygenerowane obrazy wyjściowe są opatrzone znakiem wodnym. Przed podjęciem decyzji o zakupie można sprawdzić dokładność odczytu na własnych dokumentach.

Jaka jest różnica cenowa między Google ML Kit Barcode Scanning a IronBarcode?

Cena IronBarcode zaczyna się od 749 USD za Licencję wieczystą dla jednego programisty, obejmującą etapy rozwoju i produkcji. Szczegóły dotyczące cen i opcji zakupu hurtowego są dostępne na stronie licencyjnej IronBarcode. Nie ma wymogu posiadania oddzielnej licencji na środowisko uruchomieniowe.

Czy łatwo jest migrować z Google ML Kit Barcode Scanning do IronBarcode?

Migracja z Google ML Kit Barcode Scanning do IronBarcode polega głównie na zastąpieniu wywołań API instancji metodami statycznymi IronBarcode, usunięciu boilerplate'u licencjonowania i aktualizacji nazw właściwości wyników. Większość migracji polega na redukcji kodu, a nie jego dodawaniu.

Czy IronBarcode generuje kody QR z logo?

Tak. Funkcja QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png") osadza obraz marki w kodzie QR w sposób natywny z konfigurowalną korekcją błędów. Kolorowe kody QR są również obsługiwane za pomocą funkcji ChangeBarCodeColor().

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