Biblioteca QR-Code-generator para C++: guía completa
\n\nLos códigos QR se han convertido en una parte esencial del mundo digital moderno. Se utilizan en publicidad, logística, sistemas de pago e incluso en proyectos educativos. Si estás desarrollando una aplicación en C++ y deseas agregar funcionalidad de generación de códigos QR, la biblioteca QR-Code-generator es una herramienta simple, ligera y eficiente. En este artículo, analizaremos en detalle qué es esta biblioteca, cómo instalarla y mostraremos ejemplos de código funcionales.
\n\n¿Qué es QR-Code-generator?
\nQR-Code-generator es una biblioteca multiplataforma en C++ (también disponible en C, Python, Java) que permite crear códigos QR de varias versiones y niveles de corrección de errores. Las principales ventajas son:
\n- \n
- No requiere dependencias externas (funciona "listo para usar"). \n
- Admite las 40 versiones de códigos QR (de 21×21 a 177×177 módulos). \n
- Niveles de corrección de errores: L (7%), M (15%), Q (25%), H (30%). \n
- Salida como cadena (
char*) o matriz binaria. \n - Soporte para Unicode (UTF-8) y modos numérico/alfabético. \n
La biblioteca es ideal para integrarse en aplicaciones de servidor, utilidades de línea de comandos o proyectos educativos en C++.
\n\nInstalación y configuración
\nLa instalación es extremadamente simple. Puedes descargar los archivos fuente desde el repositorio de GitHub de Nayuki o usar un gestor de paquetes (por ejemplo, vcpkg). Veamos el método manual:
\n- \n
- Descarga los archivos
qrcodegen.hppyqrcodegen.cpp. \n - Colócalos en la carpeta de tu proyecto. \n
- Incluye el archivo de cabecera en tu código:
#include "qrcodegen.hpp". \n - Compila el proyecto con la bandera
-std=c++11o superior. \n
Ejemplo de compilación con g++:
\ng++ -std=c++11 main.cpp qrcodegen.cpp -o qr_generator\n\nFunciones principales de la API
\nLa biblioteca proporciona una API minimalista pero potente. Las funciones principales son:
\n- \n
qrcodegen::QrCode::encodeText(text, ecl)— codifica una cadena de texto en un código QR con el nivel de corrección especificado. \n qrcodegen::QrCode::encodeBinary(data, ecl)— codifica datos binarios. \n getSize()— devuelve el tamaño del código QR (número de módulos de ancho). \n getModule(x, y)— verifica si el módulo (píxel) en las coordenadas (x, y) está activo. \n
Ejemplo 1: Generación de código QR y salida en consola
\nEl ejemplo más simple: crear un código QR para una cadena de texto y mostrarlo como gráfico ASCII. Este código es útil para depuración o demostración en la terminal.
\n#include <iostream>\n#include <string>\n#include "qrcodegen.hpp"\n\nusing namespace std;\nusing namespace qrcodegen;\n\nint main() {\n // Creamos un código QR para el texto con nivel de corrección H (30%)\n const QrCode qr = QrCode::encodeText("https://pythonlib.ru", QrCode::Ecc::HIGH);\n \n // Mostramos el código QR en la consola (caracteres █ y espacio)\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: En la consola se mostrará un código QR que se puede escanear con cualquier teléfono inteligente. El nivel H proporciona la máxima resistencia a daños.
\n\nEjemplo 2: Creación de un código QR con datos binarios
\nA veces es necesario codificar no texto, sino bytes arbitrarios (por ejemplo, datos serializados). Use encodeBinary.
#include <vector>\n#include "qrcodegen.hpp"\n\nusing namespace qrcodegen;\n\nint main() {\n // Preparamos datos binarios (arreglo de bytes)\n std::vector<uint8 También en la biblioteca
Trabajo con fechas en PHP: revisión de bibliotecas y herramientas
sqlc para Go: guía completa con ejemplos prácticos
Chucker Kotlin: guía completa con ejemplos prácticos
Generador de códigos QR en C# (.NET) con la librería QRCoder
Trabajo con imágenes en Go: redimensionar y recortar con la librería imaging