Ir para o conteúdo do rodapé
USANDO O IRONBARCODE

Leitor de código QR em C# (Tutorial passo a passo para iniciantes)

No mundo digitalmente impulsionado de hoje, códigos QR (Quick Response Codes) tornaram-se onipresentes, conectando de forma perfeita o físico e o digital. Do marketing à logística, finanças à saúde, os códigos QR desempenham um papel crucial na facilitação da troca eficiente de dados.

Neste artigo, mergulhamos no domínio do desenvolvimento em C#, explorando como o IronQR, uma das melhores bibliotecas de código QR do mercado, capacita os desenvolvedores a aproveitar o poder do reconhecimento de código QR, decodificar dados sem esforço e inovar em vários domínios.

IronQR da Iron Software se destaca como uma robusta biblioteca .NET de leitura de código QR. O modelo avançado de aprendizado de máquina implementado pelo IronQR capacita suas aplicações a decodificar códigos QR com precisão e eficiência incomparáveis, mesmo em cenários desafiadores.

Como Ler Códigos QR usando C# com IronQR

  1. Crie um projeto Visual Studio com um modelo de Aplicativo de Formulários do Windows .NET.
  2. Instale o IronQR do gerenciador de pacotes NuGet.
  3. Obtenha o código QR da câmera como uma imagem usando a biblioteca AForge.
  4. Leia Códigos QR usando IronQR.

IronQR destaca-se como a principal biblioteca de leitor de código QR em C# projetada tanto para escanear quanto para gerar imagens de código QR dentro do framework .NET. Através da utilização de tecnologia de ponta em ML, o IronQR elevou a leitura de códigos QR a níveis sem precedentes.

Seja escaneando códigos QR de imagens, vídeos ou transmissões ao vivo de câmeras, a solução alimentada por ML garante uma recuperação de informações rápida e confiável.

Esta abordagem inovadora não só agiliza a extração de dados, mas também aprimora a segurança ao discernir entre códigos QR autênticos e ameaças potenciais. Com sua API intuitiva, os desenvolvedores podem integrar perfeitamente capacidades de código QR em seus projetos .NET em questão de minutos.

IronQR integra-se perfeitamente com .NET Core (8, 7, 6, 5, e 3.1+), .NET Standard (2.0+), e .NET Framework (4.6.2+). A versão atual do .NET Core estende seu suporte a sistemas operacionais clientes como Linux, Unix e macOS, junto com a compatibilidade para desenvolver aplicativos móveis.

Pré-requisitos

  1. Visual Studio: Certifique-se de ter o Visual Studio ou qualquer outro ambiente de desenvolvimento .NET instalado.
  2. Câmera Compatível: Certifique-se de que a câmera está conectada ao seu dispositivo.
  3. Gerenciador de Pacotes NuGet: Verifique se você pode utilizar o NuGet para gerenciar pacotes em seu projeto.

Passo 1: Crie um projeto Visual Studio com um modelo de Aplicativo de Formulários do Windows .NET

Vamos começar criando um aplicativo .NET de Formulários do Windows para ler códigos de barras de código QR de fluxos de vídeo de câmeras ou arquivos de imagem. Abra o Visual Studio, selecione Criar Novo Projeto e depois selecione o modelo de Aplicativo de Formulários do Windows .NET.

Configuração do Visual Studio

Clique em Avançar e insira o nome do projeto.

Nomeação do Projeto

Selecione as Versões .NET desejadas e, em seguida, clique no botão Criar.

Criar Projeto

Passo 2: Instale IronQR do gerenciador de pacotes NuGet

IronQR pode ser instalado usando o gerenciador de pacotes NuGet ou o Gerenciador de Pacotes do Visual Studio.

Instalação do NuGet

Abaixo mostra como você pode fazer isso usando o Visual Studio.

NuGet do Visual Studio

Passo 3: Obtenha o código QR da câmera como uma imagem usando a Biblioteca AForge

Para escanear códigos QR de dispositivos de câmera, precisamos instalar a biblioteca AForge.Video.DirectShow. Isso pode ser feito usando o gerenciador de pacotes do Visual Studio. Clique com o botão direito no Solution Explorer e abra o Gerenciador de Pacotes.

Instalação do AForge Passo 1

Esta biblioteca também pode ser instalada usando o console de pacotes NuGet como mostrado abaixo. Clique no botão Instalar para instalar a biblioteca.

Instalação do AForge Passo 2

Passo 4: Leia Códigos QR usando IronQR

O próximo passo é criar um componente PictureBox no Formulário, que é necessário para escanear a imagem do código QR do dispositivo de câmera conectado à máquina.

Isso pode ser feito arrastando e soltando a partir da caixa de ferramentas. Este PictureBox é necessário para ler os dados do código QR do dispositivo de câmera.

Adicionar PictureBox

Em seguida, arraste e solte uma caixa de texto para mostrar os códigos QR lidos.

Adicionar TextBox

Adicione o código abaixo para ler códigos QR e decodificá-los usando IronQR.

using AForge.Video.DirectShow;
using AForge.Video;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using IronQR;

namespace ReadQR
{
    public partial class Form1 : Form
    {
        // Declare a video capture device
        private VideoCaptureDevice videoSource;

        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;
            this.FormClosing += Form1_FormClosing;
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            // Stop the video source when the form is closing
            if (videoSource != null && videoSource.IsRunning)
            {
                videoSource.SignalToStop();
                videoSource.WaitForStop();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Retrieve video input devices connected to the machine
            FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            if (videoDevices.Count > 0)
            {
                // Use the first available video device
                videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
                videoSource.NewFrame += VideoSource_NewFrame;
                videoSource.Start();
            }
            else
            {
                MessageBox.Show("No video devices found.");
                Close();
            }
        }

        private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            // Update the PictureBox with the new frame from the camera
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();

            var image = (Bitmap)eventArgs.Frame.Clone();

            // Set the license key for IronQR. Replace "YourKey" with your actual key
            License.LicenseKey = "YourKey";

            // Prepare the image for QR code reading
            QrImageInput imageInput = new QrImageInput(image);

            // Create a QR reader object
            QrReader reader = new QrReader();

            // Read QR codes from the image
            IEnumerable<QrResult> results = reader.Read(imageInput);

            // Display the first QR code result in a MessageBox
            if (results.Any())
            {
                MessageBox.Show(results.First().Value);
            }
        }
    }
}
using AForge.Video.DirectShow;
using AForge.Video;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using IronQR;

namespace ReadQR
{
    public partial class Form1 : Form
    {
        // Declare a video capture device
        private VideoCaptureDevice videoSource;

        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;
            this.FormClosing += Form1_FormClosing;
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            // Stop the video source when the form is closing
            if (videoSource != null && videoSource.IsRunning)
            {
                videoSource.SignalToStop();
                videoSource.WaitForStop();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Retrieve video input devices connected to the machine
            FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            if (videoDevices.Count > 0)
            {
                // Use the first available video device
                videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
                videoSource.NewFrame += VideoSource_NewFrame;
                videoSource.Start();
            }
            else
            {
                MessageBox.Show("No video devices found.");
                Close();
            }
        }

        private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            // Update the PictureBox with the new frame from the camera
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();

            var image = (Bitmap)eventArgs.Frame.Clone();

            // Set the license key for IronQR. Replace "YourKey" with your actual key
            License.LicenseKey = "YourKey";

            // Prepare the image for QR code reading
            QrImageInput imageInput = new QrImageInput(image);

            // Create a QR reader object
            QrReader reader = new QrReader();

            // Read QR codes from the image
            IEnumerable<QrResult> results = reader.Read(imageInput);

            // Display the first QR code result in a MessageBox
            if (results.Any())
            {
                MessageBox.Show(results.First().Value);
            }
        }
    }
}
$vbLabelText   $csharpLabel

Arquivo de Imagem de Entrada

O texto codificado no código QR é: Eu Amo IronQR

Exemplo de Código QR

Saída

Resultado do Código QR

Explicação do Exemplo de Código

  1. Registramos dois eventos no Windows Forms: Form1_Load e Form1_FormClosing.
  2. Também registramos VideoSource_NewFrame em uma instância de videoSource da biblioteca AForge.Video.DirectShow.
  3. Lemos os códigos QR do fluxo de vídeo ao vivo.
  4. Quando um código QR é detectado, exibimos uma MessageBox com o texto decodificado.

Licenciamento (Teste Gratuito Disponível)

IronQR requer uma chave de licença. Uma chave de teste pode ser obtida no site aqui. Esta chave precisa ser colocada em appsettings.json.

{
    "IronQr.LicenseKey": "MYLICENSE.KEY.TRIAL"
}

Forneça o ID do e-mail para obter uma licença de teste e, após o envio, a chave será entregue por e-mail.

Chave de Licença

Conclusão

Em conclusão, os códigos QR transcenderam suas origens para se tornar indispensáveis em nosso ecossistema digital. Com IronQR, desenvolvedores de C# podem aproveitar o poder do reconhecimento de códigos QR, decodificar dados em vários tipos de códigos QR com facilidade e inovar em diversos domínios.

À medida que os códigos QR continuam a evoluir e se integrar em novas tecnologias, sua importância em facilitar a troca de dados sem interrupções e melhorar as experiências dos usuários só irá crescer. Abrace o potencial dos códigos QR com IronQR e embarque em uma jornada de inovação e eficiência no desenvolvimento em C#.

Perguntas frequentes

Como posso configurar um projeto em C# para ler códigos QR?

Para configurar um projeto C# para leitura de códigos QR, comece criando um novo aplicativo Windows Forms no Visual Studio. Instale a biblioteca IronQR a partir do Gerenciador de Pacotes NuGet e certifique-se de ter a biblioteca AForge.Video.DirectShow para capturar feeds de vídeo de uma câmera.

Quais são os benefícios de usar o IronQR para leitura de códigos QR?

O IronQR oferece recursos robustos para leitura de códigos QR, aproveitando modelos avançados de aprendizado de máquina. Ele garante a decodificação precisa mesmo em condições desafiadoras e é compatível com diversas estruturas .NET e sistemas operacionais.

Como decodificar um código QR usando o IronQR em uma aplicação C#?

Para decodificar um código QR em um aplicativo C# com IronQR, capture uma imagem da câmera usando o AForge e, em seguida, use a biblioteca IronQR para processar e decodificar o código QR da imagem capturada.

O IronQR consegue decodificar códigos QR de transmissões de vídeo ao vivo?

Sim, o IronQR consegue decodificar códigos QR de transmissões de vídeo ao vivo, integrando-se à biblioteca AForge.Video.DirectShow para capturar frames e processá-los em tempo real.

Quais bibliotecas são essenciais para criar um leitor de código QR em C#?

As bibliotecas essenciais para criar um leitor de código QR em C# incluem o IronQR para decodificar os códigos QR e o AForge.Video.DirectShow para capturar feeds de vídeo da câmera.

Como o IronQR garante a integridade dos dados durante a decodificação do código QR?

O IronQR aprimora a segurança e garante a integridade dos dados, distinguindo com precisão entre códigos QR autênticos e possíveis ameaças, mantendo assim a confiabilidade das informações decodificadas.

É possível ler códigos QR de imagens usando o IronQR?

Sim, o IronQR consegue ler códigos QR não só em transmissões ao vivo, mas também em imagens estáticas, proporcionando flexibilidade para diversas necessidades de aplicação.

Como faço para obter uma licença de avaliação do IronQR?

Você pode obter uma licença de avaliação do IronQR no site da Iron Software, que permite testar os recursos da biblioteca inserindo a chave de avaliação no arquivo appsettings.json do seu aplicativo.

Qual é o papel do componente PictureBox em um aplicativo leitor de código QR?

Em um aplicativo leitor de código QR, o componente PictureBox exibe a transmissão de vídeo ao vivo da câmera, permitindo que o IronQR capture e decodifique os códigos QR dos quadros recebidos.

Como posso solucionar problemas com a decodificação de códigos QR em C#?

Caso encontre problemas com a decodificação do código QR, verifique se as bibliotecas IronQR e AForge estão instaladas corretamente, se o sinal da câmera está devidamente integrado e se o seu aplicativo está capturando e processando os quadros de vídeo corretamente.

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me