Como Ajustar a Velocidade de Leitura em C# com IronBarcode

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode fornece quatro opções de velocidade de leitura (Faster, Balanced, Detailed, ExtremeDetail) que permitem controlar o equilíbrio entre velocidade de processamento e precisão ao ler códigos de barras em C#, com Balanced sendo o ponto de partida recomendado para a maioria das aplicações.

Introdução

A precisão é essencial ao ler grandes conjuntos de códigos de barras, mas a alocação de recursos e a eficiência de processamento são considerações igualmente importantes. A qualidade das imagens de entrada determina como um leitor de código de barras deve processá-las — seja para pular o pré-processamento para imagens claras ou usar opções mais intensivas em recursos para melhorar a precisão de códigos de barras degradados.

O IronBarcode oferece flexibilidade para escolher a velocidade de processamento e o nível de precisão, permitindo que você controle todos os aspectos do processo de leitura de códigos de barras. Você pode tomar decisões com base nas suas imagens de entrada e nos recursos disponíveis. Para cenários de leitura de código de barras mais avançados, explore nosso tutorial abrangente de leitura de códigos de barras que cobre vários formatos e técnicas.

Este artigo fornece diretrizes para escolher a velocidade de leitura ideal para diferentes cenários. Usaremos amostras de códigos QR para demonstrar como a alteração da velocidade de leitura afeta os resultados. Se você estiver trabalhando especificamente com códigos QR, confira nosso tutorial do Gerador de Códigos QR em C# para criar amostras de teste.

⟨AH2BG⟩Início Rápido: Leia um Código de Barras com Velocidade Balanceada⟨AH2EG⟩

Use o BarcodeReaderOptions do IronBarcode para definir instantaneamente o nível de Speed para sua varredura. Este exemplo mostra como ler códigos de barras rapidamente usando a configuração Balanced para resultados rápidos e confiáveis.

  1. Instale IronBarcode com o Gerenciador de Pacotes NuGet

    PM > Install-Package BarCode
  2. Copie e execute este trecho de código.

    var results = IronBarCode.BarcodeReader.Read("path/to/image.png", new IronBarCode.BarcodeReaderOptions { Speed = IronBarCode.ReadingSpeed.Balanced });
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronBarcode em seu projeto hoje com uma avaliação gratuita

    arrow pointer


Quais São as Diferentes Opções de Velocidade de Leitura?

IronBarcode oferece quatro opções de ReadingSpeed: Faster, Balanced, Detailed, e ExtremeDetail. Examinaremos cada opção usando um conjunto de amostra que contém principalmente imagens de código de barras degradadas com algumas imagens claras para demonstrar as capacidades da biblioteca. Para uma lista completa de formatos suportados, visite nossa página de formatos de código de barras suportados.

Usaremos uma biblioteca de benchmark .NET para medir o tempo de processamento e uso de memória, mostrando como cada opção se compara e identificando cenários ideais para cada velocidade de leitura. Demonstramos o código de benchmark e um método simples para contar códigos de barras degradados lidos com sucesso. Para mais detalhes sobre a configuração de opções do leitor, veja nosso exemplo de configurações do leitor de código de barras.

Quando Devo Usar a Opção de Velocidade Mais Rápida?

A opção Faster fornece a leitura de código de barras mais rápida com recursos mínimos, mas reduz a precisão. Este processo ignora o pré-processamento da imagem e funciona melhor quando as imagens de entrada já estão nítidas e claras.

Este exemplo define a propriedade Speed para ReadingSpeed.Faster, importa um diretório de códigos de barras e imprime os códigos de barras encontrados com seus valores, tipos e contagem por imagem. Para entender melhor a leitura de códigos de barras de vários formatos de imagem, confira nosso guia sobre leitura de códigos de barras de imagens.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-faster.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"Faster could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
$vbLabelText   $csharpLabel

A opção Faster detectou 146 resultados de códigos de barras de um total de 430 em 25 segundos, alcançando 33,95% de precisão. Embora seja rápida, este método se adequa apenas a condições de imagem impecáveis. Ao lidar com vários códigos de barras em uma única imagem, considere nosso guia sobre leitura de múltiplos códigos de barras para configuração ideal.

Por Que a Velocidade Balanceada É a Opção Recomendada?

A opção Balanced equilibra precisão e desempenho de leitura. IronBarcode aplica um leve processamento de imagem para esclarecer a área do código de barras, facilitando a detecção e leitura. Esta configuração é recomendada para a maioria das imagens modernas, pois o processamento leve geralmente produz resultados precisos.

Vamos usar as mesmas imagens para demonstrar como Balanced afeta os resultados de saída. Para operações assíncronas, explore nosso guia sobre async e multithreading com IronBarcode.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-balanced.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"Balanced could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
$vbLabelText   $csharpLabel

A opção Balanced detectou 237 resultados de códigos de barras de um total de 430 em 43 segundos. Isso fornece 55,11% de precisão - uma melhoria significativa em relação a Faster - com apenas um ligeiro aumento de tempo. Esta opção mantém um equilíbrio eficiente entre memória e velocidade, tornando-a ideal para a maioria das situações e o ponto de partida recomendado. Esta abordagem equilibrada funciona particularmente bem com técnicas adequadas de pré-processamento de imagem.

Quando Preciso da Opção de Velocidade Detalhada?

Quando as imagens estão muito borradas ou distorcidas e Balanced não consegue produzir resultados claros, use a opção Detailed. Aplica um pré-processamento médio para clarear a área do código de barras e reduzir o ruído digital para uma melhor detecção. Para imagens severamente degradadas, consulte nosso guia de correção de imagem que cobre várias técnicas de pré-processamento.

Vamos aplicar a configuração Detailed e observar seu efeito na saída.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-detailed.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"Detailed could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
$vbLabelText   $csharpLabel

A opção Detailed detectou 237 resultados de códigos de barras de um total de 430 em 5 minutos e 30 segundos. Sua taxa de sucesso de 55,11% em códigos de barras severamente degradados demonstra sua precisão. No entanto, o tempo de processamento significativamente aumentado significa que esta opção deve ser reservada exclusivamente para imagens de código de barras degradadas. Ao trabalhar com códigos de barras imperfeitos, consulte nosso exemplo de manipulação de código de barras imperfeitos para estratégias adicionais.

Quais Situações Requerem Velocidade ExtremeDetail?

A configuração ExtremeDetail aplica um processamento pesado às imagens de códigos de barras, reduzindo significativamente o desempenho de leitura. Esta opção intensiva em CPU funciona melhor para digitalizar múltiplos códigos de barras pouco claros ou desfocados dentro de um arquivo de entrada. Use como último recurso quando outras opções falharem em produzir os resultados desejados. Para cenários de processamento em alto volume, explore a leitura de códigos de barras de arquivos PDF, que frequentemente contêm múltiplos códigos por página.

Vamos aplicar a configuração ExtremeDetail para observar seu impacto.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-extreme-detailed.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.ExtremeDetail
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"ExtremeDetail could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
$vbLabelText   $csharpLabel

A opção ExtremeDetail identificou 313 de 430 imagens de códigos de barras em aproximadamente 10 minutos. Embora atinja impressionantes 72,79% de precisão em códigos de barras severamente degradados, seu alto consumo de recursos a torna adequada apenas como último recurso. Considere pré-processar imagens antes de usar esta opção.

Como as Diferentes Velocidades se Comparam?

Modo Códigos de Barras Encontrados Tempo Médio Tempo por Arquivo Pressão GC Ganho de Precisão
**Mais Rápido** 147/430 (33,95%) 25 s 0,058 s Alto (Gen2: 177K) Linha de base
**Balanceado** 237/430 (55,11%) 43 s 0,1 s Alto (Gen2: 151K) +62.32% vs `Mais Rápido`
**Detalhado** 237/430 (55,11%) 5,50 min 0,767 s Muito Alto (Gen2: 297K) +0% vs `Balanceado`
**Detalhe Extremo** 313/430 (72,79%) 10,14 min 1,414 s Extremo (Gen2: 4.74M) +32.08% vs `Detalhado`

Como Escolho a Velocidade Certa para Minha Aplicação?

Com base nas comparações acima, comece com a configuração Faster e progrida através Balanced, Detailed, e ExtremeDetail para identificar diferenças significativas na saída. Para a maioria dos cenários, Balanced lida com tudo adequadamente. Use Detailed e ExtremeDetail apenas para imagens muito distorcidas.

Embora Detailed e ExtremeDetail apliquem processamentos médio e pesado, às vezes é mais eficiente dividir o processo - aplicar filtros de imagem manualmente antes de ler os códigos de barras, em vez de usar um único processo. Para mais informações sobre pré-processamento de imagens, consulte este guia.

Qual Configuração de Velocidade Combina com Meu Caso de Uso?

Árvore de decisão para seleção de velocidade de amostragem com base na qualidade da imagem, de Mais Rápido a Detalhado+Detalhe Extremo

Perguntas frequentes

Quais são as quatro opções de velocidade de leitura de código de barras disponíveis?

A IronBarcode oferece quatro opções de velocidade de leitura: Mais Rápida, Equilibrada, Detalhada e Extrema Detalhada. Cada opção proporciona um equilíbrio diferente entre velocidade de processamento e precisão, sendo a opção Equilibrada o ponto de partida recomendado para a maioria das aplicações.

Como faço para configurar a velocidade de leitura ao escanear códigos de barras?

Você pode definir a velocidade de leitura usando a classe BarcodeReaderOptions no IronBarcode. Basta criar um novo objeto BarcodeReaderOptions e definir a propriedade Speed para o valor de ReadingSpeed desejado (Faster, Balanced, Detailed ou ExtremeDetail) e, em seguida, passá-lo para o método Read.

Qual opção de velocidade de leitura devo usar para minha aplicação?

A IronBarcode recomenda começar com a configuração de velocidade Equilibrada para a maioria das aplicações. Se você tiver imagens de código de barras nítidas e de alta qualidade, pode usar o modo Mais Rápido. Para imagens degradadas ou de baixa qualidade, considere usar os modos Detalhado ou Detalhe Extremo para obter maior precisão.

Qual a vantagem e a desvantagem das diferentes opções de velocidade de leitura?

A relação de compromisso entre a velocidade de leitura do IronBarcode reside no equilíbrio entre velocidade de processamento e precisão. O modo mais rápido processa imagens rapidamente, mas pode não detectar códigos de barras em imagens de baixa qualidade. O modo ExtremeDetail oferece a maior precisão, porém requer mais tempo de processamento e recursos de memória.

Posso ler vários formatos de código de barras com diferentes configurações de velocidade?

Sim, o IronBarcode suporta a leitura de vários formatos de código de barras, incluindo códigos QR, em todas as configurações de velocidade. A configuração de velocidade afeta a abordagem de processamento, mas não limita os tipos de códigos de barras que você pode ler. Visite a página de formatos de código de barras suportados para obter uma lista completa.

Como a qualidade da imagem afeta a velocidade de leitura que devo escolher?

A qualidade da imagem impacta diretamente a velocidade selecionada no IronBarcode. Imagens de código de barras nítidas e de alta qualidade podem ser processadas com eficiência no modo Mais Rápido. Imagens degradadas, borradas ou com baixo contraste exigem os modos Detalhado ou Detalhe Extremo para garantir a detecção e leitura precisas do código de barras.

Qual é o fluxo de trabalho mínimo para leitura de códigos de barras com opções de velocidade?

O fluxo de trabalho mínimo com o IronBarcode envolve 5 etapas: 1) Baixar a biblioteca C#, 2) Usar BarcodeReaderOptions para definir a velocidade de leitura, 3) Chamar o método Read com o caminho da sua imagem, 4) Extrair e imprimir os valores do código de barras, 5) Avaliar as vantagens e desvantagens de desempenho entre diferentes velocidades.

Como posso medir o impacto de diferentes velocidades de leitura no desempenho?

O desempenho do IronBarcode com diferentes velocidades de leitura pode ser medido usando bibliotecas de benchmark .NET para monitorar o tempo de processamento e o uso de memória. Isso ajuda a identificar a configuração de velocidade ideal para o seu caso de uso específico e as restrições de recursos.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 2,108,094 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package BarCode
executar um exemplo Veja seu fio se transformar em um código de barras.