Biblioteca QR-Code-generator para C++: guia completo
\n\nOs QR Codes se tornaram parte essencial do mundo digital moderno. Eles são usados em publicidade, logística, sistemas de pagamento e até em projetos educacionais. Se você está desenvolvendo uma aplicação em C++ e deseja adicionar funcionalidade de geração de QR Codes, a biblioteca QR-Code-generator é uma ferramenta simples, leve e eficiente. Neste artigo, vamos detalhar o que é essa biblioteca, como instalá-la e mostrar exemplos práticos de código.
\n\nO que é QR-Code-generator?
\nQR-Code-generator é uma biblioteca multiplataforma em C++ (também disponível em C, Python, Java) que permite criar QR Codes de várias versões e níveis de correção de erros. Principais vantagens:
\n- \n
- Não requer dependências externas (funciona "pronto para uso"). \n
- Suporta todas as 40 versões de QR Code (de 21×21 a 177×177 módulos). \n
- Níveis de correção de erros: L (7%), M (15%), Q (25%), H (30%). \n
- Saída como string (
char*) ou array binário. \n - Suporte a Unicode (UTF-8) e modos numérico/alfabético. \n
A biblioteca é ideal para incorporação em aplicações servidoras, utilitários de linha de comando ou projetos educacionais em C++.
\n\nInstalação e configuração
\nA instalação é extremamente simples. Você pode baixar os códigos-fonte do repositório GitHub da Nayuki ou usar um gerenciador de pacotes (ex.: vcpkg). Veja o método manual:
\n- \n
- Baixe os arquivos
qrcodegen.hppeqrcodegen.cpp. \n - Coloque-os na pasta do seu projeto. \n
- Inclua o arquivo de cabeçalho no código:
#include "qrcodegen.hpp". \n - Compile o projeto com a flag
-std=c++11ou superior. \n
Exemplo de compilação com g++:
\ng++ -std=c++11 main.cpp qrcodegen.cpp -o qr_generator\n\nPrincipais funções da API
\nA biblioteca oferece uma API minimalista, mas poderosa. Principais funções:
\n- \n
qrcodegen::QrCode::encodeText(text, ecl)— codifica uma string de texto em QR Code com o nível de correção especificado. \n qrcodegen::QrCode::encodeBinary(data, ecl)— codifica dados binários. \n getSize()— retorna o tamanho do QR Code (número de módulos na largura). \n getModule(x, y)— verifica se o módulo (pixel) está definido nas coordenadas (x, y). \n
Exemplo 1: Geração de QR Code e exibição no console
\nO exemplo mais simples é criar um QR Code para uma string de texto e exibi-lo como arte ASCII. Este código é útil para depuração ou demonstração no terminal.
\n#include <iostream>\n#include <string>\n#include "qrcodegen.hpp"\n\nusing namespace std;\nusing namespace qrcodegen;\n\nint main() {\n // Cria um QR Code para o texto com nível de correção H (30%)\n const QrCode qr = QrCode::encodeText("https://pythonlib.ru", QrCode::Ecc::HIGH);\n \n // Exibe o QR Code no console (caracteres █ e espaço)\n for (int y = 0; y < qr.getSize(); y++) {\n for (int x = 0; x < qr.getSize(); x++) {\n cout << (qr.getModule(x, y) ? "██" : " ");\n }\n cout << endl;\n }\n return 0;\n}\nResultado: O console exibirá um QR Code que pode ser escaneado por qualquer smartphone. O nível H garante máxima resistência a danos.
\n\nExemplo 2: Criando um QR Code com dados binários
\nÀs vezes é necessário codificar não texto, mas bytes arbitrários (ex.: dados serializados). Use encodeBinary.
#include <vector>\n#include "qrcodegen.hpp"\n\nusing namespace qrcodegen;\n\nint main() {\n // Prepara dados binários (array de bytes)\n std::vector<uint8 Também na biblioteca
ORM para Rust: comparação e exemplos de uso de Diesel, SeaORM e SQLx
Trabalhando com Excel em C# (.NET): bibliotecas EPPlus, ClosedXML e NPOI