클라우드머시브 바코드 API와 IronBarcode: C# 바코드 라이브러리 비교
Google ML Kit 바코드 스캔 vs IronBarcode: .NET 개발자가 알아야 할 사항
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 키트는 두 가지 버전으로 출시됩니다.
- Android: Google Maven을 통해
com.google.mlkit:barcode-scanning(Kotlin/Java)로 배포됩니다. 대상 장치에 Google Play Services가 필요합니다. 카메라 프레임, 파일 URI, 비트맵에서 생성된InputImage객체를 처리합니다. - iOS: CocoaPods를 통해
GoogleMLKit/BarcodeScanning로 배포됩니다. Swift 또는 Objective-C를 사용합니다.
여기에는 dotnet add package google-mlkit-barcode가 없습니다. 여기에는 using Google.MLKit.BarcodeScanning;가 없습니다. 구글은 ML Kit for .NET 바인딩을 제공하지 않습니다.
커뮤니티가 유지 관리하는 Xamarin 및 MAUI 바인딩(예: BarcodeScanning.Native.Maui 또는 Xamarin.GooglePlayServices.MLKit.BarcodeScanning)은 여러 시점에 존재했지만 공통된 문제가 있습니다: ML Kit는 Android와 iOS SDK를 자주 업데이트하며, 개인이나 소규모 팀이 유지하는 바인딩 프로젝트는 배포 주기가 늦거나 기본 API가 변경되면 깨질 수 있습니다. Google .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는 Android의 Task API를 addOnSuccessListener 및 addOnFailureListener 콜백과 함께 사용합니다. 이것은 .NET의 Task<t> 및 await에 매핑되지 않습니다. 모든 바인딩 레이어는 콜백 기반 Android 비동기 방식과 .NET의 TPL(Target Platform Language) 간에 적응해야 하는데, 이는 간단하지 않은 변환 작업이며 커뮤니티 바인딩에서는 일관성 없이 처리되고 있습니다.
.NET 종속성 주입 통합이 없습니다. BarcodeScanning.getClient(options)는 Android BarcodeScanner 객체를 반환하는 정적 팩토리 호출입니다. 등록할 .NET 인터페이스가 없으며, IServiceCollection.AddBarcodeScanner()도 없고, ASP.NET Core 미들웨어나 Azure Functions에 주입할 방법도 없습니다.
ASP.NET Core 또는 Azure Functions는 지원하지 않습니다. ML Kit는 Android 또는 iOS 런타임 컨텍스트가 필요합니다. 이 애플리케이션은 Linux의 웹 API 프로세스, Azure Function, Windows Server 또는 Docker 컨테이너에서 실행될 수 없습니다. 서버 측 바코드 처리(이미지를 입력받아 바코드 데이터를 반환하는 REST 엔드포인트, 문서 처리 파이프라인, 배치 작업 등)를 사용하는 경우, 바인딩 가능 여부와 관계없이 ML Kit는 아키텍처적으로 호환되지 않습니다.
카메라 또는 프레임 입력만 가능 — 파일, PDF 불가. ML Kit의 InputImage는 Bitmap, ByteBuffer, 또는 Android 파일 시스템의 파일 URI로 생성될 수 있습니다. PDF 문서를 처리하거나, 페이지를 반복하거나, 여러 페이지로 구성된 TIFF 파일을 처리하는 개념이 없습니다. 서버 측 문서 처리는 본 제품의 범위에서 완전히 제외됩니다.
Google Play Services 종속성(독립 모델). 독립형 ML 모델 변형(com.google.android.gms:play-services-mlkit-barcode-scanning)은 Google Play Services를 통해 실행됩니다. Play Services가 없는 디바이스 — 맞춤형 Android 빌드, 특정 Enterprise 디바이스, Amazon Fire 태블릿 — 는 해당 변형을 사용할 수 없습니다. 번들 모델 옵션(com.google.mlkit:barcode-scanning)은 Play Services 없이 작동하지만 APK 크기에 약 2.4 MB의 용량을 추가합니다.
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 BarCode
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 BarCode
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 Kit 버전은 스캐너 객체를 설정하고 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,
ExpectBarcodeTypes = 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,
ExpectBarcodeTypes = 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,
.ExpectBarcodeTypes = 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
ExpectBarcodeTypes 플래그는 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-7834", BarcodeEncoding.Code128)
.SaveAsPng("shipping-label.png");
// Generate a 코드 128 barcode to file
BarcodeWriter.CreateBarcode("SHIP-7834", BarcodeEncoding.Code128)
.SaveAsPng("shipping-label.png");
' Generate a 코드 128 barcode to file
BarcodeWriter.CreateBarcode("SHIP-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
서버 측 및 클라우드 환경 모두에서 사용 가능합니다.IronBarcode Windows, 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 패키지 | None | BarCode |
| 바코드 판독 | 예 (안드로이드/iOS만 해당) | 예 (모든 플랫폼) |
| 바코드 생성 | 아니요 | 예 (50개 이상의 형식) |
| QR 코드 생성 | 아니요 | 예 |
| QR 로고 삽입 | 아니요 | 예 |
| PDF 입력 지원 | 아니요 | 예 (원어민) |
| 파일 입력 (PNG/JPEG) | 예 (InputImage URI를 통해) | 예 |
| 카메라/프레임 입력 | 예 (주요 사용 사례) | 이미지 파일을 통해 |
| 서버 측 처리 | 아니요 | 예 |
| ASP.NET Core 지원 | 아니요 | 예 |
| Azure Functions | 아니요 | 예 |
| Docker/리눅스 | 아니요 | 예 |
| Windows 앱 지원 | 아니요 (안드로이드/iOS만 해당) | 예 |
| 구글 플레이 서비스 부서 | 예 (해제된 모델) | 아니요 |
| Firebase 종속성 | 아니오 (2020년 이후 독립 실행형) | 아니요 |
| C# API의 비동기/await 기능 | 아니요 | 동기식 |
| 하나의 이미지에 여러 개의 바코드 | 예 | 예 |
| 커뮤니티 .NET 바인딩 | 커뮤니티에서 유지 관리됨, 공식적이지 않음 | 해당 없음 (네이티브 .NET) |
| 가격 | 무료 (온 디바이스 API) | 749달러부터 영구적으로 |
API 개념 매핑
공식적인 .NET ML Kit API가 없기 때문에 이 매핑은 개념적인 것으로, 각 ML Kit 작업의 의도와 그에 상응하는IronBarcode기능을 보여줍니다.
| ML 키트(Kotlin/Java 컨셉) | IronBarcode(.NET C#) |
|---|---|
BarcodeScannerOptions.Builder() |
new BarcodeReaderOptions { } |
.setBarcodeFormats(FORMAT_QR_CODE) |
ExpectBarcodeTypes = BarcodeEncoding.QRCode |
BarcodeScanning.getClient(options) |
정적 - 스캐너 객체가 필요하지 않음 |
InputImage.fromFilePath(context, uri) |
파일 경로 문자열을 BarcodeReader.Read()에 전달 |
InputImage.fromBitmap(bitmap, rotation) |
BarcodeReader.Read(stream) 또는 바이트 배열 오버로드 |
scanner.process(inputImage) |
BarcodeReader.Read(path, options) |
.addOnSuccessListener { barcodes -> } |
Read()의 반환 값 — 직접 반복 |
.addOnFailureListener { e -> } |
표준적인 시도/포획 |
barcode.rawValue |
barcode.Value |
barcode.format |
barcode.Format |
barcode.boundingBox |
결과 객체의 영역 데이터 |
Barcode.FORMAT_QR_CODE |
BarcodeEncoding.QRCode |
Barcode.FORMAT_CODE_128 |
BarcodeEncoding.Code128 |
| 생성 API 없음 | BarcodeWriter.CreateBarcode() |
| 생성 API 없음 | QRCodeWriter.CreateQrCode() |
Speed / 모델 선택 |
ReadingSpeed.Balanced / .Faster / .Detailed |
IronBarcode고려해야 할 시점은 언제일까요?
Android 앱을 .NET MAUI 또는 .NET 9로 포팅하는 경우, Android 앱에서 바코드 스캔에 ML Kit을 사용하고 .NET 버전으로 동일한 기능을 구현하려는 경우IronBarcode가장 적합한 선택입니다. 개념 번역은 간단합니다. 파일을 읽고, 결과를 얻고, 값을 반복 처리하는 것입니다.
서버 측 바코드 처리. 바코드를 스캔하는 HTTP 엔드포인트, 업로드된 이미지를 처리하는 백그라운드 작업, PDF에서 코드를 추출하는 문서 워크플로 등 모든 시나리오를 포함합니다. ML Kit는 이러한 활동에 참여할 수 없습니다.
윈도우 데스크톱 애플리케이션. 윈도우 기반 WinForms, WPF 또는 .NET MAUI . ML Kit는 윈도우에서 전혀 실행되지 않습니다.
Google Play Services가 없는 환경. Android 배포에 Google Play Services가 없는 디바이스가 포함되어 있는 경우 — 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 바코드 스캔의 온 디바이스 API는 Android 및 iOS 앱에 무료입니다. 스캔당 요금이 없고 상업적 라이선스가 필요하지 않습니다. 해당 가격 모델은 Maven 및 CocoaPods을 통해 배포되는 네이티브 모바일 라이브러리의 의도된 컨텍스트에 적합합니다.
IronBarcode 는 영구 라이선스가 제공되는 상 for .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 코드도 지원됩니다.

