IRONSOFTWAREHOME
USANDO O IRONQR

Como ler um código QR em ASP.NET

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

Códigos QR se tornaram onipresentes em nosso mundo digital, frequentemente usados em publicidade, varejo, gerenciamento de eventos e mais. Para desenvolvedores que trabalham no framework ASP.NET, integrar capacidades de escaneamento de códigos QR em aplicativos web pode aprimorar a experiência e a funcionalidade do usuário. Este artigo explora o processo de implementação de um scanner de código QR em um aplicativo ASP.NET, abrangendo as ferramentas necessárias, bibliotecas e implementação passo a passo. Usaremos IronQR, uma poderosa biblioteca para geração de códigos QR da Iron Software para ler códigos QR.

Como Escanear Código QR no ASP.NET

  1. Crie um projeto ASP.NET usando o Visual Studio.
  2. Instale a biblioteca IronQR do Gerenciador de Pacotes.
  3. Carregue a Imagem QR e Leia o QR.
  4. Leia o Código QR Avançado.

Entendendo Códigos QR e Seus Casos de Uso

Códigos QR (Resposta Rápida) são códigos de barras bidimensionais que podem armazenar informações variando de URLs a detalhes de contato, normalmente escaneados usando smartphones ou dispositivos de escaneamento dedicados. Em aplicativos web, os códigos QR podem servir a vários propósitos, tais como:

  • Acesso rápido ao site: Direcionar usuários para um URL específico sem a necessidade de digitar.
  • Bilhetagem de eventos: Verificar códigos QR em ingressos para acesso a eventos.
  • Sistemas de pagamento: Facilitar pagamentos fáceis escaneando um código QR.
  • Informações do produto: Fornecer informações adicionais sobre produtos.

Apresentando IronQR

IronQR é uma poderosa biblioteca .NET projetada para a geração e escaneamento de códigos QR, oferecendo funcionalidade robusta com facilidade de uso em mente. Esta biblioteca versátil não apenas lida com códigos QR, mas também pode gerir outros tipos de códigos de barras, tornando-se uma escolha preferida para desenvolvedores que trabalham dentro do ecossistema .NET. Aqui, exploraremos como integrar a biblioteca IronQR em um aplicativo ASP.NET para facilitar o escaneamento de códigos QR.

Vantagens e Recursos Principais do IronQR

  1. Leitura de Códigos QR: IronQR pode ler códigos QR de vários formatos de imagem, incluindo jpg, png, svg, bmp, gif, tif, tiff e mais. Ele também suporta imagens multipágina e modelos personalizados de detecção de QR. Os formatos de dados de saída incluem texto, URLs, coordenadas e mais.

  2. Escrita de Códigos QR: Você pode gerar códigos QR e salvá-los como imagens (jpg, png, gif, tiff, bmp), fluxos, ou até mesmo estampá-los em PDFs existentes. Codifique dados como texto, URLs, bytes e números e gere códigos QR. Personalize o estilo do código QR redimensionando, ajustando margens, recolorindo e adicionando logotipos.

  3. Tratamento e Correção de Erros: IronQR fornece mensagens de erro detalhadas e correção de erros QR personalizada. Garante tolerância a falhas e suporta verificação de nulidade e checksums.

  4. Modelo Avançado de Aprendizado de Máquina: IronQR usa um modelo avançado de Aprendizado de Máquina para reconhecimento de código QR. Este modelo garante leitura precisa e confiável de códigos QR em várias plataformas, incluindo ambientes móveis, desktop e nuvem.

  5. Compatibilidade Multiplataforma: IronQR é projetado para C#, F# e VB.NET, rodando em várias versões .NET como .NET Core (8, 7, 6, 5 e 3.1+), .NET Standard (2.0+), e .NET Framework (4.6.2+).

  6. Ele suporta diferentes tipos de projetos, incluindo web (Blazor & WebForms), móvel (Xamarin & MAUI), desktop (WPF & MAUI) e aplicativos de console.

  7. Suporte Amplo a Códigos QR: IronQR se destaca no manuseio de uma ampla gama de códigos QR e outros tipos de códigos de barras. Quer você esteja lidando com códigos QR padrão, Micro QR, uma imagem de código de barras QR, ou até mesmo formatos específicos como Aztec ou Data Matrix, o IronQR cobre isso. O IronQR também suporta a funcionalidade de ler códigos de barras QR.

IronQR dos produtos de API .NET, que incluem várias ferramentas para documentos de escritório, edição de PDF, OCR e mais.

Passo 1: Crie um Novo Projeto ASP.NET Usando o Visual Studio

Comece criando um novo Projeto e selecionando o modelo MVC, conforme mostrado abaixo:

Como Escanear Código QR no ASP .NET: Figura 1 - Crie um novo projeto ASP.NET usando o Visual Studio

Em seguida, você deve fornecer um nome e localização para o projeto.

Como Escanear Código QR no ASP .NET: Figura 2 - Forneça o nome do projeto e a localização onde deseja salvar.

Selecione a versão do .NET.

Como Escanear Código QR no ASP .NET: Figura 3 - Selecione a versão .NET que deseja usar.

Clicar no botão criar criará o seguinte código e projeto.

Como Escanear Código QR no ASP .NET: Figura 4 - Clique no botão de criar para que o Visual Studio forneça o modelo para seu projeto

Passo 2: Instale a Biblioteca IronQR a partir do Gerenciador de Pacotes do Visual Studio

Instale a biblioteca IronQR a partir do gerenciador de pacotes do Visual Studio conforme mostrado abaixo:

Como Escanear Código QR no ASP .NET: Figura 5 - Pesquise por IronQR usando o Gerenciador de Pacotes do Visual Studio e instale

IronQR também pode ser instalado usando o Gerenciador de Pacotes NuGet.

Como Escanear Código QR no ASP .NET: Figura 6 - Pesquise por IronQR através do Gerenciador de Pacotes NuGet

Passo 3: Faça o Upload da Imagem QR e Leia a Imagem QR

Agora, vamos criar um aplicativo de código QR.

Crie QRCodeModel

// Import necessary namespaces
using System.ComponentModel.DataAnnotations;

namespace IronQRScannerAsp.Models
{
    public class QRCodeModel
    {
        // Property to hold the uploaded QR code image
        [Display(Name = "Select QR Image")]
        public IFormFile QRCodeImage { get; set; }
    }
}

Criar um Controlador de Código QR

Adicione um novo controlador, clicando com o botão direito na pasta do controlador e fornecendo um nome mostrado abaixo:

Como Escanear Código QR no ASP .NET: Figura 7 - Adicione um novo controlador clicando na pasta e dando um nome

Selecione Controlador Vazio.

Como Escanear Código QR no ASP .NET: Figura 8 - Clique em Controlador Vazio no prompt

Forneça o nome do controlador.

Como Escanear Código QR no ASP .NET: Figura 9 - Nomeie o controlador

Agora adicione o seguinte código ao controlador.

// Import necessary namespaces
using IronQr;
using IronQRScannerAsp.Models;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;

namespace IronQRScannerAsp.Controllers
{
    // Controller to handle QR code scanning functionalities
    public class QrCodeController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        // Constructor for dependency injection of the hosting environment
        public QrCodeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        // Displays the initial View
        public IActionResult Index()
        {
            ViewBag.QrCodeText = "Text";
            return View();
        }

        // Handles the POST request to scan a QR code
        [HttpPost]
        public IActionResult ScanQRCode(QRCodeModel qrImage)
        {
            string path = Path.Combine(_environment.WebRootPath, "ScanQRCode");
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            // Define the file path for saving the uploaded QR image
            string filePath = Path.Combine(_environment.WebRootPath, "ScanQRCode/qrcode.png");
            using (var stream = System.IO.File.Create(filePath))
            {
                qrImage.QRCodeImage.CopyTo(stream); // Save uploaded image to server
            }

            // Open the asset to read a QR Code from
            var bitmap = AnyBitmap.FromFile(filePath);

            // Load the asset into QrImageInput
            QrImageInput imageInput = new QrImageInput(bitmap);

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

            // Read the Input and get all embedded QR Codes
            IEnumerable<QrResult> results = reader.Read(imageInput);

            // Display scanned text and image on the view
            ViewBag.QrCodeText = results.First().Value;
            string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/ScanQRCode/qrcode.png";
            ViewBag.QrCodeUri = imageUrl;

            return View();
        }
    }
}

Explicação do código

O trecho de código fornecido é para um controlador MVC Core do ASP.NET nomeado QrCodeController, que foi projetado para manipular funcionalidades de escaneamento de código QR usando a biblioteca IronQR. Aqui está uma breve descrição do que o código faz:

1. Salvando a Imagem do Código QR Carregada

Construção do Caminho

  • Ele constrói um caminho de arquivo dentro do diretório raiz da web especificamente para salvar imagens de código QR (diretório "ScanQRCode").
  • Ele verifica se este diretório existe e, se não, o cria para evitar erros de arquivo não encontrado ao salvar o arquivo.

Salvamento do Arquivo

  • Ele constrói o caminho completo do arquivo (filePath) onde a imagem do código QR carregada será salva ("ScanQRCode/qrcode.png"). Isso sobrescreve qualquer arquivo existente com o mesmo nome, efetivamente lidando com novas varreduras sem acumular arquivos.
  • Ele abre um fluxo de arquivo e copia o conteúdo da imagem carregada (qrImage.QRCodeImage, provavelmente um arquivo de formulário) para o local especificado no servidor.

2. Decodificando o Código QR

Lendo o Arquivo de Imagem

  • Utiliza AnyBitmap.FromFile(filePath) para carregar o arquivo de imagem salvo em um formato adequado para escaneamento de código QR. AnyBitmap possivelmente serve como uma classe auxiliar para converter arquivos de imagem em um objeto bitmap que o leitor de QR pode processar.

Inicializando o Leitor de QR

  • Envolve o bitmap carregado em um QrImageInput, que é especialmente projetado para ser uma entrada para o processo de leitura de código QR.
  • Instancia um QrReader, um componente da biblioteca IronQR configurado para detectar e decodificar códigos QR.

Escaneando o Código QR

  • Chama reader.Read(imageInput) para escanear a imagem em busca de códigos QR. Este método retorna um IEnumerable<QrResult>, onde cada QrResult contém dados de um código QR detectado na imagem.
  • Extrai o valor do primeiro resultado usando results.First().Value e armazena essa informação decodificada em ViewBag.QrCodeText. Isso assume que a imagem contém pelo menos um código QR e não trata de possíveis erros onde não são detectados códigos QR.

3. Preparando e Retornando a Resposta

Construção da URL da Imagem

  • Constrói uma URL (imageUrl) apontando para a imagem do código QR salva no servidor. Esta URL é construída usando o esquema do pedido HTTP atual, host e base de caminho, assegurando que esteja acessível para visualização dos usuários.
  • A URL construída é salva em ViewBag.QrCodeUri.

Retorno da Visualização

  • Retorna a mesma visão (View()), que provavelmente exibe tanto a imagem do código QR quanto o texto decodificado para o usuário. O ViewBag é usado para passar o texto decodificado do código QR e a URL da imagem para a visão para renderização.

Adicionar Visualização à Classe Controller

Adicione uma nova visão, clique com o botão direito no método de ação CreateQRCode na classe QrCodeController.

Como Escanear Código QR no ASP .NET: Figura 10 - Adicione uma nova visão na classe QrCodeController

Selecione a opção 'Adicionar Visualização' e, em seguida, selecione 'Visualização Razor'. Clique em 'Adicionar'.

Como Escanear Código QR no ASP .NET: Figura 11 - Selecione a opção Adicionar Visão, depois Razor View, depois Adicionar

Em seguida, selecione o template "Criar" e a classe Modelo gerada anteriormente.

Como Escanear Código QR no ASP .NET: Figura 12 - Selecione o modelo Criar gerado anteriormente

Agora substitua o código na classe de visualização pelo mostrado abaixo.

@model IronQRScannerAsp.Models.QRCodeModel

@{
    ViewData["Title"] = "ScanQRCode";
}

<h1>ScanQRCode</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
    <div class="col-md-14">
        <form asp-action="ScanQRCode" enctype="multipart/form-data">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label for="QRCodeImage">Select QR Image:</label>
                <input asp-for="QRCodeImage" class="form-control" type="file" />
            </div>
            <div class="form-group">
                <input type="submit" value="Upload" class="btn btn-primary" />
            </div>
        </form>
    </div>
</div>
<div>
    <h3>Scanned Text:</h3>
    <h4>@ViewBag.QrCodeText</h4>
    @if (ViewBag.QrCodeUri != null)
    {
        <img src="@ViewBag.QrCodeUri" class="img-thumbnail" />
    }
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>

@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
Text

Agora no Program.cs altere o seguinte código para tornar a visão acima como a rota padrão:

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=QrCode}/{action=Index}");

Isso muda a rota padrão de HomeController para nosso Controlador QrCode.

Imagem de entrada com URL: https://ironsoftware.com/csharp/qr/.

Como Escanear Código QR no ASP .NET: Figura 13 - Exemplo de entrada de código QR

Saída

Como Escanear Código QR no ASP .NET: Figura 14 - Exemplo de Saída após seguir os passos acima

Na página, selecione uma imagem de código QR e clique em enviar para decodificar o código QR. Este aplicativo também pode ser modificado para ler a partir de um feed de vídeo e exibir resultados.

Passo 4: Ler Código QR Avançado

Para ler códigos QR avançados, IronQR fornece as seguintes configurações.

// Import necessary namespaces
using IronQr;
using IronSoftware.Drawing;
using IronQr.Enum;
using System.Collections.Generic;

// Load an image file as a bitmap
var inputBmp = AnyBitmap.FromFile("QrImage.png");

// Use Auto => Machine Learning Scan
QrImageInput scan_ML_and_normal = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results1 = new QrReader().Read(scan_ML_and_normal);

// Use Machine Learning Scan - High Speed
QrImageInput scan_ML_only = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results2 = new QrReader().Read(scan_ML_only);

// Use Scan without Machine Learning
QrImageInput scan_normal_only = new QrImageInput(inputBmp, QrScanMode.OnlyBasicScan);
IEnumerable<QrResult> results3 = new QrReader().Read(scan_normal_only);

Ao aproveitar o mais recente em tecnologia ML, elevamos o leitor de código QR a novos patamares. O modelo ML sofisticado aprimora a precisão e a eficiência das aplicações na decodificação de códigos QR, mesmo em condições complexas. Quer lendo códigos QR de imagens paradas, fluxos de vídeo ou feeds de câmera ao vivo, a solução alimentada por ML entrega as informações necessárias de forma rápida e confiável. Essa inovação simplifica a recuperação de dados e aumenta a segurança ao identificar códigos QR genuínos e sinalizar possíveis ameaças. Com nossa tecnologia ML, você pode ter confiança de que suas capacidades de escaneamento de código QR estão na vanguarda, proporcionando aos seus usuários uma experiência tranquila e segura

Licença (Versão de teste disponível)

Os desenvolvedores podem obter uma licença de teste IronQR aqui. A chave precisa ser colocada no appSettings.json.

{
  "IronQr.License.LicenseKey": "My Key"
}
JSON

Conclusão

Neste artigo, exploramos como escanear códigos QR no ASP.NET Core usando IronQR. Integrar IronQR em uma aplicação ASP.NET para escaneamento de código QR é um processo direto que melhora as capacidades das aplicações web, tornando-as mais interativas e amigáveis ao usuário. Os poderosos recursos do IronQR e sua facilidade de uso o tornam uma excelente escolha para desenvolvedores que buscam implementar funcionalidades relacionadas a código de barras.

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 bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.