Google ML 키트 바코드 스캔과 IronBarcode: C# 바코드 라이브러리 비교
Google ML Kit의 바코드 스캔 기능은 안드로이드에서 정말 인상적입니다. 이 기술은 Google Lens에 동력을 공급하고, 손상되거나 부분적으로 가려진 코드를 처리하며, 네트워크 호출 없이 기기 내에서 작동하고, 다양한 1D 및 2D 형식을 지원합니다. .NET 개발자들이 바코드 라이브러리 비교 과정에서 이러한 사실을 접하게 된다면, 그 내용은 정확합니다. 비교 기사에서 흔히 간과되는 점은 ML Kit에 .NET SDK, NuGet 패키지, C# API가 없다는 것입니다. 이 글은 ML Kit을 목록에서 발견하고 " .NET 프로젝트에서 ML Kit 사용"이 실제로 무엇을 의미하는지, 그리고 관리 코드 환경에서는 어떻게 구현되는지 이해하고자 하는 개발자를 위한 것입니다.
Google ML Kit 바코드 스캔이란 무엇인가요?
Google ML Kit 바코드 스캐닝은 네이티브 모바일 라이브러리입니다. 그것은 극복해야 할 제약 사항이 아닙니다. 제품 디자인입니다. ML 키트는 두 가지 버전으로 출시됩니다.
- 안드로이드: Google Maven을 통해
com.google.mlkit:barcode-scanning(Kotlin/Java)로 배포됩니다. 대상 기기에서 Google Play 서비스가 필요합니다. 카메라 프레임, 파일 URI 또는 비트맵으로 구성된InputImage개체를 처리합니다. - iOS: 코코아팟을 통해
GoogleMLKit/BarcodeScanning로 배포되며, Firebase 종속성을 가집니다. Swift 또는 Objective-C를 사용합니다.
dotnet add package google-mlkit-barcode가 없습니다. using Google.MLKit.BarcodeScanning;가 없습니다. 구글은 ML Kit용 .NET 바인딩을 제공하지 않습니다.
커뮤니티에서 유지 관리하는 Xamarin 바인딩은 여러 차례 존재했지만, 일관된 문제점을 가지고 있었습니다. ML Kit는 Android 및 iOS SDK를 자주 업데이트하는데, 개인이나 소규모 팀이 유지 관리하는 바인딩 프로젝트는 기본 API가 변경될 때 업데이트가 지연되거나 완전히 작동하지 않는 경우가 많았습니다. 2026년 현재, ML Kit의 바코드 스캐너를 래핑하는, 활발하게 유지 관리되고 실제 사용 가능한 .NET NuGet 패키지는 없습니다.
ML Kit의 장점
바코드 비교에 ML Kit이 나타나는 이유를 이해하는 것은 유용한 맥락을 제공합니다. 안드로이드 네이티브 버전에서:
- 기기 내 추론: 서버 왕복이 필요 없습니다. ML Kit의 모델은 Google Play 서비스를 사용하여 로컬에서 실행되므로 지연 시간이 짧고 스캔 시 네트워크에 종속되지 않습니다.
- 손상 허용 범위: 머신러닝 모델은 많은 임계값 기반 디코더보다 손상되었거나 부분적으로 가려졌거나 해상도가 낮은 바코드를 더 잘 처리합니다. 이는 실제 코드를 스캔하는 소비자 대상 앱에 있어 진정한 차별화 요소입니다.
- Google Lens 연동: ML Kit의 스캐너는 Google Lens의 바코드 감지에 사용되는 것과 동일한 기술 스택을 사용합니다. 그것은 매우 좋은 품질 신호입니다.
- 모바일 지원 포맷 범위: QR 코드, EAN-13, EAN-8, Code 128, Code 39, Code 93, Codabar, ITF, PDF417, Data Matrix, 아즈텍 및 UPC-A/UPC-E를 모두 기본적으로 지원합니다.
- 설정이 필요 없습니다: 단 세 줄의 Kotlin 코드 조각으로 임계값을 조정하거나 디코더 전략을 선택할 필요 없이 작동하는 스캐너를 생성할 수 있습니다.
이것들은 분명한 강점입니다. .NET 개발자에게 문제는 ML Kit 자체가 나쁘다는 것이 아니라, 상당한 노력을 기울이지 않고는 ML Kit을 사용할 수 없다는 점입니다.
.NET 개발의 현실
.NET 개발자가 바코드를 스캔해야 할 때, ML Kit을 사용하는 실제 경로는 다음과 같습니다.
비동기/대기 C# API 없음 ML Kit는 Task 및 addOnSuccessListener 콜백이 있는 Android의 Task API를 사용합니다. 이는 .NET의 Task<t> 및 await에 매핑되지 않습니다. 모든 바인딩 레이어는 콜백 기반 Android 비동기 방식과 .NET의 TPL(Target Platform Language) 간에 적응해야 하는데, 이는 간단하지 않은 변환 작업이며 커뮤니티 바인딩에서는 일관성 없이 처리되고 있습니다.
.NET 종속성 주입 통합 없음 BarcodeScanning.getClient(options)은 Android BarcodeScanner 객체를 반환하는 정적 팩토리 호출입니다. 등록할 .NET 인터페이스, IServiceCollection.AddBarcodeScanner(), ASP.NET Core 미들웨어 또는 Azure 함수에 삽입할 수 있는 방법이 없습니다.
ASP.NET Core 또는 Azure Functions는 지원하지 않습니다. ML Kit는 Android 또는 iOS 런타임 컨텍스트가 필요합니다. 이 애플리케이션은 Linux의 웹 API 프로세스, Azure Function, Windows Server 또는 Docker 컨테이너에서 실행될 수 없습니다. 서버 측 바코드 처리(이미지를 입력받아 바코드 데이터를 반환하는 REST 엔드포인트, 문서 처리 파이프라인, 배치 작업 등)를 사용하는 경우, 바인딩 가능 여부와 관계없이 ML Kit는 아키텍처적으로 호환되지 않습니다.
카메라 또는 프레임 입력만 가능 - 파일, PDF 없음 ML Kit의 InputImage은 Android 파일 시스템의 Bitmap, ByteBuffer 또는 파일 URI로 구성할 수 있습니다. PDF 문서를 처리하거나, 페이지를 반복하거나, 여러 페이지로 구성된 TIFF 파일을 처리하는 개념이 없습니다. 서버 측 문서 처리는 본 제품의 범위에서 완전히 제외됩니다.
Google Play 서비스 의존성. 기기 내 머신러닝 모델은 Google Play 서비스를 통해 실행됩니다. Google Play 서비스가 설치되지 않은 기기(맞춤형 Android 빌드, 특정 Enterprise 기기, Amazon Fire 태블릿)는 기본 ML Kit 구성을 사용할 수 없습니다. "번들" 모델 옵션(com.google.mlkit:barcode-scanning-bundled)은 이 문제를 해결하지만 APK 크기가 크게 증가합니다.
Android ML Kit 코드를 .NET 으로 포팅하기
ML Kit 바코드 스캔 기능을 사용하는 기존 Android 앱을 .NET MAUI 또는 .NET 9으로 포팅하려는 경우, 다음은 변환 방법입니다. 이 코틀린 코드는 ML Kit의 콜백 패턴을 사용합니다. 이 C# 코드는 IronBarcode의 동기 API를 사용합니다.
// 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
구조적인 차이는 구문적인 차이 이상입니다. ML 키트 버전은 스캐너 객체를 설정하고 InputImage을 구성하고 scanner.process()을 호출하며 성공 및 실패 콜백을 등록합니다. 계속 진행하기 전에 결과가 필요한 경우, 일반적으로 Java의 CountDownLatch 또는 Kotlin의 코루틴을 통해 나머지 로직과 콜백 실행을 조정해야 합니다.
IronBarcode의 BarcodeReader.Read()는 결과 컬렉션을 동기식으로 반환합니다. 즉시 반복합니다. 콜백 등록도 없고, 스레드 동기화도 없고, 관리해야 할 별도의 스캐너 객체도 없습니다.
안드로이드 코드를 포팅하는 팀의 경우, 멀티 바코드 시나리오에 대한 패턴 변환은 다음과 같습니다.
// .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
ExpectedBarcodeTypes 플래그는 ML Kit의 setBarcodeFormats()와 동일합니다. 이 설정을 통해 검색 범위를 좁히고 성능을 향상시킬 수 있지만, ML Kit와 달리 설정하지 않아도 읽기 작업이 중단되지는 않습니다.IronBarcode지원되는 모든 형식을 시도합니다.
포맷 적용 범위 비교
두 도구 모두 주류 2D 및 1D 형식을 지원합니다. 겹치는 부분이 상당합니다.
| 형식 | ML 키트(안드로이드) | IronBarcode |
|---|---|---|
| QR 코드 | 예 | 예 |
| EAN-13 | 예 | 예 |
| EAN-8 | 예 | 예 |
| UPC-A | 예 | 예 |
| UPC-E | 예 | 예 |
| 코드 128 | 예 | 예 |
| 코드 39 | 예 | 예 |
| 코드 93 | 예 | 예 |
| 코다바 | 예 | 예 |
| ITF | 예 | 예 |
| PDF417 | 예 | 예 |
| 데이터 매트릭스 | 예 | 예 |
| 아즈텍 | 예 | 예 |
| 코드 11 | 아니요 | 예 |
| MSI 플레시 | 아니요 | 예 |
| 파마코드 | 아니요 | 예 |
| 인터리브드 2/5 | ITF를 통해 | 예 |
| RSS-14 / GS1 데이터바 | 아니요 | 예 |
| 마이크로 QR | 아니요 | 예 |
| 맥시코드 | 아니요 | 예 |
IronBarcode 읽기 및 생성 모두에서 50가지 이상의 인코딩 유형을 지원합니다. ML Kit의 형식 목록은 Google에서 모델과 함께 제공하는 형식으로 고정되어 있으며, 사용자 지정 심볼을 추가할 수 없습니다.
IronBarcode추가하는 기능은 무엇인가요?
IronBarcode 바코드 읽기를 넘어 전체 바코드 워크플로를 다룹니다.
생성. ML Kit에는 바코드 생성 API가 전혀 없습니다. 바코드를 읽기만 할 뿐, 생성하지는 않습니다.IronBarcode지원되는 모든 형식을 PNG, JPEG, SVG, HTML 또는 바이너리 데이터로 생성합니다.
// Generate a 코드 128 barcode to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128)
.SaveAsPng("shipping-label.png");
// Generate a 코드 128 barcode to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128)
.SaveAsPng("shipping-label.png");
' Generate a 코드 128 barcode to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128) _
.SaveAsPng("shipping-label.png")
QR 코드 맞춤 설정. QRCodeWriter는 로고 삽입, 색상 변경 및 오류 수정 수준을 지원합니다. ML Kit는 QR 코드를 생성하지 않기 때문에 이러한 기능에 해당하는 것이 없습니다.
// 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")
PDF 처리. BarcodeReader.Read("document.pdf")는 기본적으로 PDF의 모든 페이지에서 바코드를 판독합니다. 이미지 추출 단계도 없고, 별도의 PDF 라이브러리를 사용한 페이지별 반복 작업도 필요 없습니다. PDF 파일을 직접 처리합니다.
// 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
서버 측 및 클라우드 환경 모두에서 사용 가능합니다.IronBarcodeWindows, Linux, macOS, Docker,Azure Functions및 AWS Lambda에서 실행됩니다. 구글 플레이 서비스, 카메라, 모바일 런타임이 필요하지 않습니다.
바이너리 출력. .ToPngBinaryData()은 byte[]을 직접 반환하므로 디스크에 쓰지 않고 바코드 이미지를 HTTP 응답으로 반환하는 API에 유용합니다.
// 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()
기능 비교
| 기능 | 구글 ML 키트 바코드 | IronBarcode |
|---|---|---|
| .NET /C# API | 없음 ( NuGet 패키지 없음) | 예 - using IronBarCode; |
| NuGet 패키지 | 없음 | @@--코드-51280--@@ |
| 바코드 판독 | 예 (안드로이드/iOS만 해당) | 예 (모든 플랫폼) |
| 바코드 생성 | 아니요 | 예 (50개 이상의 형식) |
| QR 코드 생성 | 아니요 | 예 |
| QR 로고 삽입 | 아니요 | 예 |
| PDF 입력 지원 | 아니요 | 예 (원어민) |
| 파일 입력 (PNG/JPEG) | 예 (InputImage URI를 통해) | 예 |
| 카메라/프레임 입력 | 예 (주요 사용 사례) | 이미지 파일을 통해 |
| 서버 측 처리 | 아니요 | 예 |
| ASP.NET Core 지원 | 아니요 | 예 |
| Azure Functions | 아니요 | 예 |
| 도커/리눅스 | 아니요 | 예 |
| Windows 앱 지원 | 아니요 (안드로이드/iOS만 해당) | 예 |
| 구글 플레이 서비스 부서 | 예 (표준 모델) | 아니요 |
| Firebase 종속성(iOS) | 예 | 아니요 |
| C# API의 비동기/await 기능 | 아니요 | 동기식( .NET 모델에 적합) |
| 하나의 이미지에 여러 개의 바코드 | 예 | 예 |
| 커뮤니티 .NET 바인딩 | 비공식적이고 불안정함 | 해당 없음 (네이티브 .NET) |
| 가격 | 무료 (구글 플레이 스토어에서 제공) | 749달러부터 영구적으로 |
API 개념 매핑
공식적인 .NET ML Kit API가 없기 때문에 이 매핑은 개념적인 것으로, 각 ML Kit 작업의 의도와 그에 상응하는IronBarcode기능을 보여줍니다.
| ML 키트(Kotlin/Java 컨셉) | IronBarcode(.NET C#) |
|---|---|
| @@--코드-51281--@@ | @@--코드-51282--@@ |
| @@--코드-51283--@@ | @@--코드-51284--@@ |
| @@--코드-51285--@@ | 정적 - 스캐너 객체가 필요하지 않음 |
| @@--코드-51286--@@ | 파일 경로 문자열이 @@--코드-51287--@@로 전달되었습니다 |
| @@--코드-51288--@@ | BarcodeReader.Read(stream) 또는 바이트 배열 과부하 |
| @@--코드-51290--@@ | @@--코드-51291--@@ |
| @@--코드-51292--@@ | 반환 값 Read() - 직접 반복하기 |
| @@--코드-51294--@@ | 표준적인 시도/포획 |
| @@--코드-51295--@@ | @@--코드-51296--@@ |
| @@--코드-51297--@@ | @@--코드-51298--@@ |
| @@--코드-51299--@@ | barcode.BarcodeImage (지역 데이터) |
| @@--코드-51301--@@ | @@--코드-51302--@@ |
| @@--코드-51303--@@ | @@--코드-51304--@@ |
| 생성 API 없음 | @@--코드-51305--@@ |
| 생성 API 없음 | @@--코드-51306--@@ |
Speed / 모델 선택 |
@@--코드-51308--@@ / @@--코드-51309--@@ / @@--코드-51310--@@ |
IronBarcode고려해야 할 시점은 언제일까요?
Android 앱을 .NET MAUI 또는 .NET 9로 포팅하는 경우, Android 앱에서 바코드 스캔에 ML Kit을 사용하고 .NET 버전으로 동일한 기능을 구현하려는 경우IronBarcode가장 적합한 선택입니다. 개념 번역은 간단합니다. 파일을 읽고, 결과를 얻고, 값을 반복 처리하는 것입니다.
서버 측 바코드 처리. 바코드를 스캔하는 HTTP 엔드포인트, 업로드된 이미지를 처리하는 백그라운드 작업, PDF에서 코드를 추출하는 문서 워크플로 등 모든 시나리오를 포함합니다. ML Kit는 이러한 활동에 참여할 수 없습니다.
윈도우 데스크톱 애플리케이션. 윈도우 기반 WinForms, WPF 또는 .NET MAUI . ML Kit는 윈도우에서 전혀 실행되지 않습니다.
Google Play 서비스가 없는 환경. Android 배포 환경에 Google Play 서비스가 없는 기기( Enterprise 하드웨어, 사용자 지정 AOSP 빌드, Amazon Fire 기기 등)가 포함된 경우 표준 ML Kit 모델을 사용할 수 없습니다.IronBarcode에는 그러한 종속성이 없습니다.
바코드 생성과 판독을 동시에 지원합니다. 예를 들어 배송 라벨을 인쇄하고 스캔 결과를 검증하는 등 바코드를 생성하고 판독해야 하는 경우,IronBarcode동일한 라이브러리에서 두 가지 기능을 모두 제공합니다. ML Kit는 데이터 생성이나 서버 측 읽기 기능을 제공하지 않습니다.
Azure 또는 AWS 배포. Azure Functions, Linux 기반 Azure App Service, AWS Lambda는 모두 ML Kit을 호스팅할 수 없습니다.IronBarcode이 모든 것을 대상으로 합니다.
라이선스 및 가격
Google ML Kit 바코드 스캔 기능은 Android 및 iOS 앱에서 무료로 사용할 수 있습니다. 스캔당 비용이 없으며 상업용 라이선스도 필요하지 않습니다. 해당 가격 모델은 구글 플레이 서비스에 포함된 네이티브 모바일 라이브러리라는 의도된 맥락에서 타당합니다.
IronBarcode 는 영구 라이선스가 제공되는 상용 .NET 라이브러리입니다.
- Lite: 749달러 — 개발자 1명, 프로젝트 위치 1곳
- Plus: $1,499 — 최대 3명의 개발자
- Professional: 2,999달러 — 개발자 최대 10명
- 무제한: 5,999달러 — 개발자 무제한
시간 제한 없이 무료 체험이 가능합니다. 시험용 워터마크는 바코드를 생성했습니다. 이미 문서 처리를 위한 서버 인프라 비용을 지불하고 있는 팀의 경우, 라이선스 비용은 비공식 ML Kit 바인딩을 유지 관리하는 데 필요한 엔지니어링 노력에 비하면 극히 일부분에 불과합니다.
결론
Google ML Kit 바코드 스캐닝은 안드로이드 및 iOS 기기에서 바코드를 빠르고 정확하게 스캔하는, 설계된 목적에 정확히 부합하는 잘 만들어진 라이브러리입니다.IronBarcode와의 비교는 어떤 라이브러리가 더 나은지에 대한 것이 아니라, 필요한 상황에서 어떤 라이브러리가 존재하는지에 대한 것입니다.
Kotlin으로 Android 앱을 작성하고 카메라로 스캔하는 경우 ML Kit는 훌륭한 선택입니다. 하지만 C#으로 .NET 용 앱을 작성하는 경우(웹 API, 문서 처리 서비스, Windows 애플리케이션, 클라우드 함수 또는 크로스 플랫폼 MAUI 앱 등) Google ML Kit는 적합한 기능을 제공하지 않습니다. NuGet 패키지도 없고, C# API도 없으며, 관리 코드에서 이를 사용할 수 있는 Google에서 지원하는 경로도 없습니다.IronBarcode는 .NET 지원하는 모든 플랫폼에서 바코드 읽기 및 생성을 모두 지원하는 네이티브 .NET 라이브러리입니다.
자주 묻는 질문
Google ML 키트 바코드 스캔이란 무엇인가요?
Google ML 키트 바코드 스캔은 C# 애플리케이션에서 바코드를 생성하고 판독하기 위한 .NET 바코드 라이브러리입니다. 개발자가 .NET 프로젝트용 바코드 솔루션을 선택할 때 평가하는 여러 대안 중 하나입니다.
Google ML 키트 바코드 스캔과 IronBarcode의 주요 차이점은 무엇인가요?
Google ML 키트 바코드 스캔은 일반적으로 사용 전에 인스턴스 생성 및 구성이 필요한 반면, IronBarcode는 인스턴스 관리가 필요 없는 정적 상태 비저장 API를 사용합니다. 또한 IronBarcode는 모든 환경에서 기본 PDF 지원, 자동 형식 감지, 단일 키 라이선싱을 제공합니다.
IronBarcode가 Google ML Kit 바코드 스캔보다 라이선스 취득이 더 쉬운가요?
IronBarcode는 개발 및 프로덕션 배포를 모두 포괄하는 단일 라이선스 키를 사용합니다. 따라서 SDK 키와 런타임 키를 분리하는 라이선싱 시스템에 비해 CI/CD 파이프라인 및 Docker 구성이 간소화됩니다.
IronBarcode는 Google ML Kit 바코드 스캔이 지원하는 모든 바코드 형식을 지원하나요?
IronBarcode는 QR코드, Code 128, Code 39, DataMatrix, PDF417, Aztec, EAN-13, UPC-A, GS1 등 30개 이상의 바코드 심볼로지를 지원합니다. 형식 자동 감지 기능은 명시적인 형식 열거가 필요하지 않음을 의미합니다.
IronBarcode는 네이티브 PDF 바코드 판독을 지원하나요?
예. IronBarcode는 별도의 PDF 렌더링 라이브러리가 필요 없이 BarcodeReader.Read("document.pdf")를 사용하여 PDF 파일에서 직접 바코드를 판독합니다. 페이지별 결과에는 페이지 번호, 바코드 형식, 값 및 신뢰도 점수가 포함됩니다.
IronBarcode는 Google ML 키트 바코드 스캔과 비교하여 일괄 처리를 어떻게 처리하나요?
IronBarcode의 정적 메서드는 상태 저장소가 없고 자연스럽게 스레드에 안전하므로 스레드별 인스턴스 관리 없이 Parallel.ForEach를 직접 사용할 수 있습니다. 어떤 가격대에서도 처리량 상한선이 없습니다.
IronBarcode 어떤 .NET 버전을 지원하나요?
IronBarcode는 단일 NuGet 패키지로 .NET Framework 4.6.2+, .NET Core 3.1 및 .NET 5, 6, 7, 8, 9를 지원합니다. 플랫폼 대상에는 Windows x64/x86, Linux x64, macOS x64/ARM이 포함됩니다.
.NET 프로젝트에 IronBarcode를 설치하려면 어떻게 해야 하나요?
NuGet을 통해 IronBarcode 설치: 패키지 관리자 콘솔에서 'Install-Package IronBarCode'를 실행하거나 CLI에서 '닷넷 추가 패키지 IronBarCode'를 실행합니다. 추가 SDK 인스톨러나 런타임 파일은 필요하지 않습니다.
Google ML Kit와 달리 구매하기 전에 IronBarcode를 평가할 수 있나요?
예. IronBarcode의 평가판 모드는 완전한 디코딩된 바코드 값을 반환하며 생성된 출력 이미지에만 워터마크가 표시됩니다. 구매를 결정하기 전에 자신의 문서에서 판독 정확도를 벤치마킹할 수 있습니다.
Google ML 키트 바코드 스캔과 IronBarcode의 가격 차이는 무엇인가요?
개발 및 프로덕션을 포함하는 단일 개발자 영구 라이선스의 IronBarcode 가격은 $749부터 시작합니다. 가격 세부 정보 및 볼륨 옵션은 IronBarcode 라이선스 페이지에서 확인할 수 있습니다. 별도의 런타임 라이선스 요구 사항은 없습니다.
Google ML 키트 바코드 스캔에서 IronBarcode로 마이그레이션하는 것은 간단하나요?
Google ML 키트 바코드 스캔에서 IronBarcode로의 마이그레이션에는 주로 인스턴스 기반 API 호출을 IronBarcode의 정적 메서드로 대체하고 라이선스 상용구를 제거하며 결과 속성 이름을 업데이트하는 작업이 포함됩니다. 대부분의 마이그레이션에는 코드를 추가하기보다는 줄이는 작업이 포함됩니다.
IronBarcode는 로고가 있는 QR 코드를 생성하나요?
예. QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png")는 구성 가능한 오류 수정을 통해 기본적으로 브랜드 이미지를 QR코드에 임베드합니다. ChangeBarCodeColor()를 통해 컬러 QR 코드도 지원됩니다.

