Generador profesional de códigos QR
Un generador profesional de códigos QR en línea que crea los códigos localmente en tu navegador, admitiendo múltiples tipos de contenido como URLs, texto, WiFi, vCard, SMS y correo electrónico. Ofrece ricas opciones de personalización de estilo, incluyendo formas, estilos de puntos de posicionamiento, colores degradados, superposición de logo, marcos y trazos. Admite salida en formatos PNG y SVG, con funcionalidad de descarga y compartir con un solo clic. No se sube ningún dato, es completamente gratuito para siempre y sin marcas de agua. Todas las operaciones se realizan localmente en tu navegador, garantizando privacidad y seguridad.
Generador de códigos QR
Las imágenes descargadas no tienen marcas de agua y la herramienta es gratuita de forma permanente.
Instrucciones de uso
- Selecciona el tipo (URL, texto, WiFi, vCard, SMS, correo electrónico) e introduce o pega el contenido.
- Ajusta el tamaño, margen, color, nivel de corrección de errores, así como los estilos (formas/puntos de posicionamiento), degradados, logos, marcos, etc.
- Elige el formato PNG o SVG.
- El código QR se generará automáticamente; puedes 'Descargarlo' o 'Copiarlo' cuando esté listo.
- Al usar un logo o estilos complejos, se recomienda aumentar el nivel de corrección de errores a H y dejar suficiente zona silenciosa (márgenes en blanco).
- Para impresión o visualización, asegúrate de un alto contraste entre el primer plano y el fondo, evitando tamaños demasiado pequeños y distorsión excesiva.
Características
- Generado puramente en el front-end (sin subidas)
- Compatible con salida PNG y SVG
- Estilos personalizables: forma, puntos de posicionamiento, esquinas redondeadas, márgenes
- Degradados (múltiples colores, múltiples direcciones)
- Superposición de logotipo (opción para aumentar automáticamente el nivel de corrección de errores)
- Marcos y trazos (estilo tarjeta redondeada)
- Compartir y portapapeles (enlaces/imágenes)
- Soporte multilingüe y de temas
¿Qué son los patrones de detección?
Los tres cuadrados grandes en las cuatro esquinas del código QR se llaman patrones de detección, que ayudan a la cámara a localizar rápidamente la posición y el ángulo del código QR para corregir desviaciones y decodificarlo. Suelen tener una estructura de módulo de 7×7 (exterior negro, interior blanco y centro negro) con colores alternativos en blanco y negro.
- Función: Posicionamiento rápido, anti-rotación y anti-perspectiva.
- Estilos: Esta herramienta admite la representación de patrones Finder en formas cuadradas, con esquinas redondeadas y estilo “punto” (seleccionable en Estilo → Finder).
¿Quién inventó el código QR?
El código QR fue inventado en 1994 por Masahiro Hara, ingeniero de Denso Wave en Japón. QR significa “Quick Response” (Respuesta Rápida).
- Motivación para la invención: Mejorar la eficiencia de identificación en las líneas de producción de piezas automotrices y superar las limitaciones de capacidad y velocidad de lectura de los códigos de barras unidimensionales.
- Inspiración del diseño: Las fichas negras y blancas del juego Go y los patrones de matriz inspiraron el diseño altamente robusto de “módulos + gráficos de posicionamiento”.
- Por qué no se requiere pago de patente: Denso Wave posee la marca comercial y algunas patentes, pero permite explícitamente su uso gratuito para promover la popularización del ecosistema (el uso comercial está permitido sin tarifas de licencia).
Especificaciones estándar y sugerencias de uso
- Norma internacional: ISO/IEC 18004 (Especificación del símbolo QR Code bidimensional), que define versiones, máscaras, corrección de errores, estructuras gráficas, etc.
- Nivel de corrección de errores: Cuatro niveles: L/M/Q/H (aproximadamente 7%/15%/25%/30% de recuperación). Se recomienda usar un nivel más alto al superponer un logotipo.
- Contenido codificado: Texto, URL, vCard, Wi-Fi, etc. Se recomienda seguir las especificaciones correspondientes de formato URI/datos (por ejemplo,
WIFI:T:WPA;S:SSID;P:PASS;;). - Impresión y visualización: Asegure el contraste entre el primer plano y el fondo y el tamaño de la zona de silencio; evite distorsiones excesivas, tamaños demasiado pequeños e interferencias de texturas muy densas.
- Accesibilidad: En situaciones críticas, se recomienda proporcionar texto alternativo/enlaces para evitar usar el código QR como única vía de acceso.
Generar códigos QR con lenguajes de programación
A continuación se muestran los ejemplos más simples en lenguajes comunes, adecuados para principiantes y prototipos:
// Node: npm i qrcode
const QRCode = require('qrcode');
QRCode.toFile('qrcode.png', 'https://example.com', { errorCorrectionLevel: 'M' });
// Browser (Canvas):
// <script src="https://cdn.jsdelivr.net/npm/[email protected]/lib/browser.min.js"></script>
QRCode.toCanvas(document.getElementById('canvas'), 'Hello QR', { width: 256 });
# pip install qrcode[pil]
import qrcode
img = qrcode.make('https://example.com')
img.save('qrcode.png')
// composer require endroid/qr-code
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Writer\PngWriter;
$qr = QrCode::create('https://example.com');
$writer = new PngWriter();
$result = $writer->write($qr);
$result->saveToFile(__DIR__.'/qrcode.png');
// go get -u github.com/skip2/go-qrcode
package main
import "github.com/skip2/go-qrcode"
func main() {
qrcode.WriteFile("https://example.com", qrcode.Medium, 256, "qrcode.png")
}
// Maven: com.google.zxing:core, com.google.zxing:javase
// Minimal ZXing example
import com.google.zxing.BarcodeFormat;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class Main {
public static void main(String[] args) throws Exception {
QRCodeWriter writer = new QRCodeWriter();
BitMatrix matrix = writer.encode("https://example.com", BarcodeFormat.QR_CODE, 256, 256);
BufferedImage image = MatrixToImageWriter.toBufferedImage(matrix);
ImageIO.write(image, "png", new File("qrcode.png"));
}
}
// Cargo.toml
// qrcode = "0.13"
// image = "0.24"
use qrcode::QrCode;
use image::Luma;
fn main() {
let code = QrCode::new("https://example.com").unwrap();
let image = code.render<Luma<u8>>().min_dimensions(256, 256).build();
image.save("qrcode.png").unwrap();
}
Nota: Las diferentes bibliotecas tienen grandes diferencias en las capacidades de estilo admitidas. Si necesitas estilos avanzados (puntos, degradados, estilos del patrón de localización, marcos, etc.), puedes generar PNG/SVG directamente con esta herramienta y utilizarlos.