Generador profesional de códigos QR

Genera códigos QR localmente en el navegador, admite estilos (forma/puntos de ubicación), degradados, logotipos, marcos y compartición. Los datos no se cargan en el servidor, es gratuito de por vida y sin marcas de agua.

Gratuito de por vida Sin marcas de agua Generación puramente local PNG / SVG

Generador de códigos QR

Presets de estilo rápido Aplicar con un solo clic y ajustar después en la configuración de estilo.
Configuración de estilos
Marco
Configuración avanzada
Degradado
Logo
Solo se admite en modo PNG. La imagen se procesa localmente y no se subirá.
logo preview
Nota: Los estilos solo se aplican al lienzo PNG. La renderización personalizada de SVG estará disponible pronto.
Vista previa
La vista previa se actualizará automáticamente después de ingresar o modificar el contenido y los estilos.

Las imágenes descargadas no tienen ninguna marca de agua y la herramienta se puede usar de forma gratuita de por vida.

Modo de uso

  • Selecciona el tipo (URL, texto, WiFi, vCard, mensaje de texto, correo electrónico), ingresa o pega el contenido
  • Ajusta el tamaño, el margen, el color, el nivel de corrección de errores, así como estilos (forma/puntos de ubicación), degradados, logotipos, marcos, etc.
  • Selecciona el formato PNG o SVG
  • El código QR se generará automáticamente; cuando esté listo, puedes 'Descargar' o 'Copiar'
  • Al usar un logotipo o estilos complejos, se recomienda aumentar la corrección de errores a H y dejar suficiente área silenciosa (margen en blanco)
  • Para impresión/visualización, asegúrate de tener un alto contraste entre el primer plano y el fondo, y evita tamaños demasiado pequeños y distorsiones excesivas

Características

  • Generación puramente en el frontend (sin carga en el servidor)
  • Admite salida en formato PNG y SVG
  • Estilos personalizables: forma, puntos de ubicación, bordes redondeados, espacios
  • Degradados (múltiples colores y direcciones)
  • Superposición de logotipos (opcionalmente, se puede aumentar automáticamente el nivel de corrección de errores)
  • Marcos y bordes (estilo de tarjeta con bordes redondeados)
  • Compartición y portapapeles (enlaces/imágenes)
  • Soporte para múltiples idiomas y temas

¿Qué son los patrones de localización (Finder)?

Los tres grandes cuadrados en las esquinas del código QR se llaman patrones de localización (Finder), que ayudan a la cámara a encontrar rápidamente la posición y el ángulo del código QR, lo que permite la corrección de distorsiones y la decodificación. Por lo general, tienen una estructura de módulos 7×7 de colores blanco y negro (negro exterior, blanco interior y negro en el centro).

  • Función: Localización rápida, resistencia a la rotación y a la perspectiva.
  • Estilo: Esta herramienta admite la representación de patrones de localización en forma cuadrada, redondeada y en “estilo de puntos” (seleccione en Estilo → Finder).

¿Quién inventó el código QR?

El código QR (Código de Respuesta Rápida) fue inventado en 1994 por el ingeniero Masahiro Hara de la empresa japonesa Denso Wave. QR es la abreviatura de “Quick Response” (Respuesta Rápida).

  • Motivo de la invención: Mejorar la eficiencia de identificación en la línea de producción de piezas de automóvil y superar las limitaciones de capacidad y velocidad de lectura de los códigos de barras unidimensionales.
  • Inspiración del diseño: Las fichas de go blancas y negras y los patrones matriciales inspiraron el diseño altamente robusto de “modularización + gráficos de localización”.
  • ¿Por qué no se paga derechos de patente?: Denso Wave posee la marca y algunas patentes, pero ha abierto su uso de forma gratuita para promover la difusión de la tecnología (se admite el uso comercial sin coste de licencia).

Normas y recomendaciones de uso

  • Estandar internacional: ISO/IEC 18004 (Especificación de códigos QR en 2D), que define la versión, la máscara, la corrección de errores, la estructura gráfica, etc.
  • Nivel de tolerancia a fallos: Cuatro niveles L/M/Q/H (aproximadamente el 7%/15%/25%/30% se puede recuperar). Se recomienda usar un nivel más alto cuando se superpone un logotipo.
  • Contenido codificado: Texto, URL, vCard, Wi - Fi, etc. Se recomienda seguir las normas correspondientes de formato URI/datos (por ejemplo, WIFI:T:WPA;S:SSID;P:PASS;;).
  • Impresión y visualización: Asegúrese del contraste entre el primer plano y el fondo y del tamaño de la zona de quietud; evite distorsiones excesivas, tamaños demasiado pequeños y texturas demasiado densas que puedan interferir.
  • Accesibilidad: En ocasiones críticas, se recomienda proporcionar texto/enlaces alternativos para evitar que el código QR sea la única forma de acceso.

Generar códigos QR mediante lenguajes de programación

A continuación se presentan ejemplos mínimos en lenguajes de programación comunes, adecuados para el aprendizaje y la creación de plantillas:

JavaScript(Node/Browser)
// 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 });
Python
# pip install qrcode[pil]
import qrcode
img = qrcode.make('https://example.com')
img.save('qrcode.png')
PHP
// 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
// 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")
}
Java
// 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"));
  }
}
Rust
// 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 capacidades de estilo admitidas por diferentes bibliotecas varían ampliamente. Si necesita estilos avanzados (puntos, degradados, estilos de patrones de localización, marcos, etc.), puede generar PNG/SVG en esta herramienta y usarlos directamente.