Scanner de Código de Barras em C#: Leia Códigos de Barras e QR Codes em Aplicações .NET
Precisa de um leitor de código de barras para sua aplicação .NET? O IronBarcode torna a leitura de códigos de barras simples e confiável, seja processando imagens digitais perfeitas ou fotos desafiadoras do mundo real. Este guia mostra exatamente como implementar a leitura de código de barras em C# com exemplos práticos prontos para uso imediato.
Início Rápido: Leia um Código de Barras de um Arquivo Instantaneamente
Este exemplo rápido mostra como é fácil começar com o IronBarcode. Com apenas uma linha de código, você pode ler códigos de barras de um arquivo de imagem — sem necessidade de configuração complexa.
-
Instale IronBarcode com o Gerenciador de Pacotes NuGet
PM > Install-Package BarCode -
Copie e execute este trecho de código.
var results = IronBarCode.BarcodeReader.Read("path/to/barcode.png"); -
Implante para testar em seu ambiente de produção.
Comece a usar IronBarcode em seu projeto hoje com uma avaliação gratuita
- Instalar IronBarcode do NuGet ou via download do DLL
- Use o método `BarcodeReader.Read` para escanear qualquer código de barras ou código QR
- Leia múltiplos códigos de barras ou códigos QR em uma única varredura, PDF, ou arquivo TIFF multiframe
- Permite que o IronBarcode decodifique varreduras e fotos imperfeitas com filtros avançados
- Baixe o projeto tutorial e comece a escanear imediatamente
Como instalo o IronBarcode no meu projeto .NET?
O IronBarcode instala facilmente através do NuGet Package Manager ou baixando o DLL diretamente. A instalação pelo NuGet é a abordagem recomendada, pois gerencia automaticamente dependências e atualizações.
Install-Package BarCode
Após a instalação, adicione using IronBarCode; aos seus arquivos C# para acessar a funcionalidade de escaneamento de código de barras. Para instruções detalhadas de instalação em diferentes ambientes de desenvolvimento, confira nosso guia de instalação.
Como posso ler meu primeiro código de barras usando C#?
Ler códigos de barras com IronBarcode requer apenas uma linha de código. A biblioteca detecta automaticamente formatos de código de barras e extrai todos os dados codificados.
*Um código de barras Code128 padrão que o IronBarcode pode ler instantaneamente*using IronBarCode;
using System;
// Read barcodes from the image file - supports PNG, JPG, BMP, GIF, and more
BarcodeResults results = BarcodeReader.Read("GetStarted.png");
// Check if any barcodes were detected
if (results != null && results.Count > 0)
{
// Process each barcode found in the image
foreach (BarcodeResult result in results)
{
// Extract the text value from the barcode
Console.WriteLine("Barcode detected! Value: " + result.Text);
// Additional properties available:
// result.BarcodeType - The format (Code128, QR, etc.)
// result.BinaryValue - Raw binary data if applicable
// result.Confidence - Detection confidence score
}
}
else
{
Console.WriteLine("No barcodes detected in the image.");
}
using IronBarCode;
using System;
// Read barcodes from the image file - supports PNG, JPG, BMP, GIF, and more
BarcodeResults results = BarcodeReader.Read("GetStarted.png");
// Check if any barcodes were detected
if (results != null && results.Count > 0)
{
// Process each barcode found in the image
foreach (BarcodeResult result in results)
{
// Extract the text value from the barcode
Console.WriteLine("Barcode detected! Value: " + result.Text);
// Additional properties available:
// result.BarcodeType - The format (Code128, QR, etc.)
// result.BinaryValue - Raw binary data if applicable
// result.Confidence - Detection confidence score
}
}
else
{
Console.WriteLine("No barcodes detected in the image.");
}
Imports IronBarCode
Imports System
' Read barcodes from the image file - supports PNG, JPG, BMP, GIF, and more
Dim results As BarcodeResults = BarcodeReader.Read("GetStarted.png")
' Check if any barcodes were detected
If results IsNot Nothing AndAlso results.Count > 0 Then
' Process each barcode found in the image
For Each result As BarcodeResult In results
' Extract the text value from the barcode
Console.WriteLine("Barcode detected! Value: " & result.Text)
' Additional properties available:
' result.BarcodeType - The format (Code128, QR, etc.)
' result.BinaryValue - Raw binary data if applicable
' result.Confidence - Detection confidence score
Next
Else
Console.WriteLine("No barcodes detected in the image.")
End If
O método BarcodeReader.Read retorna uma coleção BarcodeResults contendo todos os códigos de barras detectados. Cada BarcodeResult fornece acesso ao valor de texto, tipo de formato, coordenadas de posição e dados binários do código de barras. Essa abordagem funciona perfeitamente com formatos de código de barras comuns, incluindo Code128, Code39, códigos QR e códigos Data Matrix.
Quais opções ajudam a ler códigos de barras desafiadores ou danificados?
A leitura de códigos de barras no mundo real frequentemente envolve imagens imperfeitas - ângulos tortos, iluminação ruim ou danos parciais. As opções avançadas do IronBarcode lidam eficazmente com esses desafios.
using IronBarCode;
// Configure advanced reading options for difficult barcodes
BarcodeReaderOptions options = new BarcodeReaderOptions
{
// Speed settings: Faster, Balanced, Detailed, ExtremeDetail
// ExtremeDetail performs deep analysis for challenging images
Speed = ReadingSpeed.ExtremeDetail,
// Specify expected formats to improve performance
// Use bitwise OR (|) to combine multiple formats
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
// Maximum number of barcodes to find (0 = unlimited)
MaxParallelThreads = 4,
// Crop region for faster processing of specific areas
CropArea = null // Or specify a Rectangle
};
// Apply options when reading
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
// Process detected barcodes
foreach (var barcode in results)
{
Console.WriteLine($"Format: {barcode.BarcodeType}, Value: {barcode.Text}");
}
using IronBarCode;
// Configure advanced reading options for difficult barcodes
BarcodeReaderOptions options = new BarcodeReaderOptions
{
// Speed settings: Faster, Balanced, Detailed, ExtremeDetail
// ExtremeDetail performs deep analysis for challenging images
Speed = ReadingSpeed.ExtremeDetail,
// Specify expected formats to improve performance
// Use bitwise OR (|) to combine multiple formats
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
// Maximum number of barcodes to find (0 = unlimited)
MaxParallelThreads = 4,
// Crop region for faster processing of specific areas
CropArea = null // Or specify a Rectangle
};
// Apply options when reading
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
// Process detected barcodes
foreach (var barcode in results)
{
Console.WriteLine($"Format: {barcode.BarcodeType}, Value: {barcode.Text}");
}
Imports IronBarCode
' Configure advanced reading options for difficult barcodes
Private options As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.ExtremeDetail,
.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128,
.MaxParallelThreads = 4,
.CropArea = Nothing
}
' Apply options when reading
Private results As BarcodeResults = BarcodeReader.Read("TryHarderQR.png", options)
' Process detected barcodes
For Each barcode In results
Console.WriteLine($"Format: {barcode.BarcodeType}, Value: {barcode.Text}")
Next barcode
*Um código QR rotacionado que o IronBarcode lê com sucesso usando opções avançadas*A propriedade ExpectBarcodeTypes melhora significativamente o desempenho ao limitar a pesquisa a formatos específicos. Para máxima precisão com imagens problemáticas, combine filtros de imagem com rotação automática:
using IronBarCode;
BarcodeReaderOptions options = new BarcodeReaderOptions
{
// Apply image processing filters to enhance readability
ImageFilters = new ImageFilterCollection
{
new AdaptiveThresholdFilter(9, 0.01f), // Handles varying lighting
new ContrastFilter(2.0f), // Increases contrast
new SharpenFilter() // Reduces blur
},
// Automatically rotate to find barcodes at any angle
AutoRotate = true,
// Use multiple CPU cores for faster processing
Multithreaded = true
};
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
foreach (var result in results)
{
Console.WriteLine($"Detected {result.BarcodeType}: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
Console.WriteLine($"Position: X={result.X}, Y={result.Y}");
}
using IronBarCode;
BarcodeReaderOptions options = new BarcodeReaderOptions
{
// Apply image processing filters to enhance readability
ImageFilters = new ImageFilterCollection
{
new AdaptiveThresholdFilter(9, 0.01f), // Handles varying lighting
new ContrastFilter(2.0f), // Increases contrast
new SharpenFilter() // Reduces blur
},
// Automatically rotate to find barcodes at any angle
AutoRotate = true,
// Use multiple CPU cores for faster processing
Multithreaded = true
};
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
foreach (var result in results)
{
Console.WriteLine($"Detected {result.BarcodeType}: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
Console.WriteLine($"Position: X={result.X}, Y={result.Y}");
}
Imports IronBarCode
Private options As New BarcodeReaderOptions With {
.ImageFilters = New ImageFilterCollection From {
New AdaptiveThresholdFilter(9, 0.01F),
New ContrastFilter(2.0F),
New SharpenFilter()
},
.AutoRotate = True,
.Multithreaded = True
}
Private results As BarcodeResults = BarcodeReader.Read("TryHarderQR.png", options)
For Each result In results
Console.WriteLine($"Detected {result.BarcodeType}: {result.Text}")
Console.WriteLine($"Confidence: {result.Confidence}%")
Console.WriteLine($"Position: X={result.X}, Y={result.Y}")
Next result
Esses recursos avançados tornam o IronBarcode ideal para escaneamento de códigos de barras a partir de fotos, câmeras de segurança ou capturas de dispositivos móveis onde a qualidade da imagem varia significativamente.
Como escaneio múltiplos códigos de barras de documentos PDF?
O escaneamento de códigos de barras de PDF é essencial para o processamento de faturas, etiquetas de envio e documentos de inventário. O IronBarcode lê todos os códigos de barras em cada página de forma eficiente.
Lendo códigos de barras de arquivos PDF
using System;
using IronBarCode;
try
{
// Scan all pages of a PDF for barcodes
BarcodeResults results = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
if (results != null && results.Count > 0)
{
foreach (var barcode in results)
{
// Access barcode data and metadata
string value = barcode.Text;
int pageNumber = barcode.PageNumber;
BarcodeEncoding format = barcode.BarcodeType;
byte[] binaryData = barcode.BinaryValue;
// Extract barcode image if needed
System.Drawing.Bitmap barcodeImage = barcode.BarcodeImage;
Console.WriteLine($"Found {format} on page {pageNumber}: {value}");
}
}
else
{
Console.WriteLine("No barcodes found in the PDF.");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error reading PDF: {ex.Message}");
}
using System;
using IronBarCode;
try
{
// Scan all pages of a PDF for barcodes
BarcodeResults results = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
if (results != null && results.Count > 0)
{
foreach (var barcode in results)
{
// Access barcode data and metadata
string value = barcode.Text;
int pageNumber = barcode.PageNumber;
BarcodeEncoding format = barcode.BarcodeType;
byte[] binaryData = barcode.BinaryValue;
// Extract barcode image if needed
System.Drawing.Bitmap barcodeImage = barcode.BarcodeImage;
Console.WriteLine($"Found {format} on page {pageNumber}: {value}");
}
}
else
{
Console.WriteLine("No barcodes found in the PDF.");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error reading PDF: {ex.Message}");
}
Imports System
Imports IronBarCode
Try
' Scan all pages of a PDF for barcodes
Dim results As BarcodeResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
If results IsNot Nothing AndAlso results.Count > 0 Then
For Each barcode In results
' Access barcode data and metadata
Dim value As String = barcode.Text
Dim pageNumber As Integer = barcode.PageNumber
Dim format As BarcodeEncoding = barcode.BarcodeType
Dim binaryData() As Byte = barcode.BinaryValue
' Extract barcode image if needed
Dim barcodeImage As System.Drawing.Bitmap = barcode.BarcodeImage
Console.WriteLine($"Found {format} on page {pageNumber}: {value}")
Next barcode
Else
Console.WriteLine("No barcodes found in the PDF.")
End If
Catch ex As Exception
Console.WriteLine($"Error reading PDF: {ex.Message}")
End Try
Saída do console mostrando múltiplos códigos de barras encontrados em diferentes páginas de PDF
Para intervalos de páginas específicos ou processamento avançado de PDF, use BarcodeReaderOptions:
// Read only specific pages to improve performance
BarcodeReaderOptions pdfOptions = new BarcodeReaderOptions
{
// Scan pages 1-5 only
PageNumbers = new[] { 1, 2, 3, 4, 5 },
// PDF-specific settings
PdfDpi = 300, // Higher DPI for better accuracy
ReadBehindVectorGraphics = true
};
BarcodeResults results = BarcodeReader.ReadPdf("document.pdf", pdfOptions);
// Read only specific pages to improve performance
BarcodeReaderOptions pdfOptions = new BarcodeReaderOptions
{
// Scan pages 1-5 only
PageNumbers = new[] { 1, 2, 3, 4, 5 },
// PDF-specific settings
PdfDpi = 300, // Higher DPI for better accuracy
ReadBehindVectorGraphics = true
};
BarcodeResults results = BarcodeReader.ReadPdf("document.pdf", pdfOptions);
' Read only specific pages to improve performance
Dim pdfOptions As New BarcodeReaderOptions With {
.PageNumbers = { 1, 2, 3, 4, 5 },
.PdfDpi = 300,
.ReadBehindVectorGraphics = True
}
Dim results As BarcodeResults = BarcodeReader.ReadPdf("document.pdf", pdfOptions)
Como posso processar imagens TIFF multiframe?
Arquivos TIFF multiframe, comuns em escaneamento de documentos e sistemas de fax, recebem o mesmo suporte abrangente que PDFs.
Um arquivo TIFF multiframe com códigos de barras em diferentes quadros
using IronBarCode;
// TIFF files are processed similarly to regular images
// Each frame is scanned automatically
BarcodeResults multiFrameResults = BarcodeReader.Read("Multiframe.tiff");
foreach (var result in multiFrameResults)
{
// Access frame-specific information
int frameNumber = result.PageNumber; // Frame number in TIFF
string barcodeValue = result.Text;
Console.WriteLine($"Frame {frameNumber}: {barcodeValue}");
// Save individual barcode images if needed
result.BarcodeImage?.Save($"barcode_frame_{frameNumber}.png");
}
using IronBarCode;
// TIFF files are processed similarly to regular images
// Each frame is scanned automatically
BarcodeResults multiFrameResults = BarcodeReader.Read("Multiframe.tiff");
foreach (var result in multiFrameResults)
{
// Access frame-specific information
int frameNumber = result.PageNumber; // Frame number in TIFF
string barcodeValue = result.Text;
Console.WriteLine($"Frame {frameNumber}: {barcodeValue}");
// Save individual barcode images if needed
result.BarcodeImage?.Save($"barcode_frame_{frameNumber}.png");
}
Imports IronBarCode
' TIFF files are processed similarly to regular images
' Each frame is scanned automatically
Private multiFrameResults As BarcodeResults = BarcodeReader.Read("Multiframe.tiff")
For Each result In multiFrameResults
' Access frame-specific information
Dim frameNumber As Integer = result.PageNumber ' Frame number in TIFF
Dim barcodeValue As String = result.Text
Console.WriteLine($"Frame {frameNumber}: {barcodeValue}")
' Save individual barcode images if needed
If result.BarcodeImage IsNot Nothing Then
result.BarcodeImage.Save($"barcode_frame_{frameNumber}.png")
End If
Next result
O mesmo BarcodeReaderOptions se aplica ao processamento de TIFF, incluindo filtros de imagem e configurações de rotação. Para cenários detalhados de manipulação de TIFF, veja nossos tutoriais de processamento de imagem.
Posso acelerar o processamento com multithreading?
O processamento de múltiplos documentos beneficia dramaticamente do processamento paralelo. O IronBarcode utiliza automaticamente os núcleos de CPU disponíveis para desempenho ótimo.
using IronBarCode;
// List of documents to process - mix of formats supported
var documentBatch = new[]
{
"invoice1.pdf",
"shipping_label.png",
"inventory_sheet.tiff",
"product_catalog.pdf"
};
// Configure for batch processing
BarcodeReaderOptions batchOptions = new BarcodeReaderOptions
{
// Enable parallel processing across documents
Multithreaded = true,
// Limit threads if needed (0 = use all cores)
MaxParallelThreads = Environment.ProcessorCount,
// Apply consistent settings to all documents
Speed = ReadingSpeed.Balanced,
ExpectBarcodeTypes = BarcodeEncoding.All
};
// Process all documents in parallel
BarcodeResults batchResults = BarcodeReader.Read(documentBatch, batchOptions);
// Group results by source document
var resultsByDocument = batchResults.GroupBy(r => r.Filename);
foreach (var docGroup in resultsByDocument)
{
Console.WriteLine($"\nDocument: {docGroup.Key}");
foreach (var barcode in docGroup)
{
Console.WriteLine($" - {barcode.BarcodeType}: {barcode.Text}");
}
}
using IronBarCode;
// List of documents to process - mix of formats supported
var documentBatch = new[]
{
"invoice1.pdf",
"shipping_label.png",
"inventory_sheet.tiff",
"product_catalog.pdf"
};
// Configure for batch processing
BarcodeReaderOptions batchOptions = new BarcodeReaderOptions
{
// Enable parallel processing across documents
Multithreaded = true,
// Limit threads if needed (0 = use all cores)
MaxParallelThreads = Environment.ProcessorCount,
// Apply consistent settings to all documents
Speed = ReadingSpeed.Balanced,
ExpectBarcodeTypes = BarcodeEncoding.All
};
// Process all documents in parallel
BarcodeResults batchResults = BarcodeReader.Read(documentBatch, batchOptions);
// Group results by source document
var resultsByDocument = batchResults.GroupBy(r => r.Filename);
foreach (var docGroup in resultsByDocument)
{
Console.WriteLine($"\nDocument: {docGroup.Key}");
foreach (var barcode in docGroup)
{
Console.WriteLine($" - {barcode.BarcodeType}: {barcode.Text}");
}
}
Imports Microsoft.VisualBasic
Imports IronBarCode
' List of documents to process - mix of formats supported
Private documentBatch = { "invoice1.pdf", "shipping_label.png", "inventory_sheet.tiff", "product_catalog.pdf" }
' Configure for batch processing
Private batchOptions As New BarcodeReaderOptions With {
.Multithreaded = True,
.MaxParallelThreads = Environment.ProcessorCount,
.Speed = ReadingSpeed.Balanced,
.ExpectBarcodeTypes = BarcodeEncoding.All
}
' Process all documents in parallel
Private batchResults As BarcodeResults = BarcodeReader.Read(documentBatch, batchOptions)
' Group results by source document
Private resultsByDocument = batchResults.GroupBy(Function(r) r.Filename)
For Each docGroup In resultsByDocument
Console.WriteLine($vbLf & "Document: {docGroup.Key}")
For Each barcode In docGroup
Console.WriteLine($" - {barcode.BarcodeType}: {barcode.Text}")
Next barcode
Next docGroup
Essa abordagem paralela processa documentos simultaneamente, reduzindo o tempo total de escaneamento em até 75% em sistemas multicore. Para processamento de códigos de barras em escala empresarial, explore nosso guia de otimização de desempenho.
Resumo
O IronBarcode transforma escaneamentos de códigos de barras complexos em código C# simples. Seja você desenvolvendo sistemas de inventário, processadores de documentos ou aplicativos móveis, a biblioteca lida com tudo, desde códigos de barras digitais impecáveis até capturas desafiadoras do mundo real.
Capacidades-chave cobertas:
- Leitura de código de barras em linha única de imagens
- Opções avançadas para códigos de barras danificados ou rotacionados
- Digitalização abrangente de documentos PDF e TIFF
- Processamento em lote de alto desempenho com multithreading
- Suporte para todos os principais formatos de código de barras
Leitura complementar
Expanda suas capacidades de processamento de código de barras com estes recursos:
- Tutorial de Geração de Código de Barras - Crie códigos de barras personalizados
- Guia de Código QR](/csharp/barcode/tutorials/csharp-qr-code-generator/) - Recursos especializados de código QR
BarcodeReaderReferência da Classe - Documentação completa da API- Guia de Solução de Problemas - Problemas comuns e soluções
Downloads de Código Fonte
Execute estes exemplos você mesmo:
Pronto para implementar a leitura de códigos de barras em seu aplicativo? Comece seu teste gratuito e adicione leitura de códigos de barras profissional ao seu projeto .NET hoje.
!{--0100110001001001010000100101001001000001010100100101100101011111010001110100010101010100010111110101001101010100010000010101001001010100010001010100010001011111010101110100100101010100010010000101111101010000010 100100100111101000100010101010100001101010100010111110101010001010010010010010100000101001100010111110100010101011000010101000100010101001110010001000100010101000100010111110100001001001100010011110100001101001011--}
Perguntas frequentes
Como posso instalar uma biblioteca de leitura de código de barras em um projeto .NET?
Você pode instalar a biblioteca IronBarcode através do Gerenciador de Pacotes NuGet usando o comando dotnet add package BarCode ou através da interface NuGet do Visual Studio. Como alternativa, baixe o arquivo DLL para instalação manual.
Qual é o método para ler um código de barras a partir de uma imagem usando C#?
Utilize o método BarcodeReader.Read do IronBarcode com uma única linha de código: var results = BarcodeReader.Read('image.png'); Este método detecta e lê todos os formatos de código de barras presentes na imagem.
É possível detectar vários códigos de barras em uma única imagem ou documento?
Sim, o IronBarcode pode detectar e ler automaticamente vários códigos de barras em uma imagem, PDF ou TIFF multiframe, retornando o valor, o tipo e a posição de cada código de barras em uma coleção BarcodeResults .
Como faço para ler códigos de barras de um PDF usando C#?
Utilize o método BarcodeReader.ReadPdf do IronBarcode para escanear todas as páginas de um documento PDF: var results = BarcodeReader.ReadPdf('document.pdf'); Cada resultado inclui o número da página onde o código de barras foi encontrado.
O que devo fazer se as imagens dos códigos de barras estiverem desfocadas ou rotacionadas?
Configure BarcodeReaderOptions para lidar com imagens complexas definindo AutoRotate = true e aplicando filtros de imagem como SharpenFilter ou AdaptiveThresholdFilter . Use Speed = ExtremeDetail para obter maior precisão.
Quais formatos de código de barras são suportados em aplicativos .NET?
O IronBarcode é compatível com todos os principais formatos de código de barras, como QR Code, Code 128, Code 39, EAN-13, UPC-A, Data Matrix, PDF417 e muitos outros. Utilize BarcodeEncoding.All para digitalizar qualquer formato compatível.
Como posso melhorar o desempenho da leitura de código de barras em um aplicativo C#?
Melhore o desempenho especificando os tipos de código de barras esperados com ExpectBarcodeTypes , habilitando o processamento multithread e escolhendo as configurações Speed apropriadas. Para tarefas em lote, utilize BarcodeReader.Read com caminhos de arquivo.
Qual é a abordagem recomendada para lidar com erros de leitura de código de barras?
Encapsule a leitura do código de barras em blocos try-catch e verifique se os resultados são nulos ou vazios. O IronBarcode fornece mensagens de erro detalhadas e uma propriedade de Confiança para indicar a confiabilidade da detecção.
Posso extrair imagens de códigos de barras depois de serem digitalizadas?
Sim, BarcodeResult do IronBarcode inclui uma propriedade BarcodeImage que contém um Bitmap do código de barras detectado, o qual pode ser salvo ou processado separadamente.
Como faço para ler códigos de barras em páginas específicas de um documento PDF?
Defina a propriedade PageNumbers em BarcodeReaderOptions para especificar as páginas: options.PageNumbers = new[] {1, 2, 3}; Isso otimiza o desempenho, escaneando apenas as páginas designadas.
Quais formatos de imagem são compatíveis com a leitura de código de barras no .NET?
O IronBarcode suporta a digitalização em formatos como PNG, JPEG, BMP, GIF, TIFF (incluindo multiframe) e PDF. Você pode carregar imagens a partir de caminhos de arquivo, fluxos ou matrizes de bytes.
Como posso acessar dados binários de códigos de barras escaneados em C#?
Utilize a propriedade BinaryValue de BarcodeResult para obter dados binários brutos, especialmente útil para códigos de barras que contêm dados não textuais, como informações compactadas ou protocolos binários.

