Profesjonalny generator kodów QR

Generuj kody QR lokalnie w przeglądarce. Obsługuje style (kształt/punkty lokalizacyjne), gradienty, logo, obramowania i udostępnianie. Dane nie są przesyłane na serwer, jest to całkowicie darmowe i bez znaków wodnych.

Całkowicie darmowe Bez znaków wodnych Generacja tylko lokalnie PNG / SVG

Generator kodów QR

Szybkie predefiniowane style Zastosuj jednym kliknięciem, a następnie dostosuj w ustawieniach stylu.
Ustawienia stylu
Obramowanie
Zaawansowane ustawienia
Gradient
Logo
Obsługiwane tylko w trybie PNG. Obraz jest przetwarzany lokalnie i nie jest przesyłany.
logo preview
Wskazówka: Style działają tylko na kanwie PNG. Niestandardowe renderowanie SVG będzie dostępne wkrótce.
Podgląd
Po wprowadzeniu lub modyfikacji zawartości i stylu pojawi się automatyczny podgląd.

Pobrane obrazy nie mają żadnych znaków wodnych. Narzędzie można używać bezpłatnie na zawsze.

Sposób użycia

  • Wybierz typ (URL, tekst, WiFi, vCard, wiadomość SMS, e - mail), wprowadź lub wklej zawartość
  • Dostosuj rozmiar, margines, kolory, poziom korekcji błędów oraz style (kształt/punkty lokalizacyjne), gradienty, logo, obramowania itp.
  • Wybierz format PNG lub SVG
  • Kod QR zostanie automatycznie wygenerowany; po gotowości możesz go "pobrać" lub "skopiować"
  • Podczas używania logo lub skomplikowanych stylów zaleca się podwyższenie poziomu korekcji błędów do H i pozostawienie wystarczającej strefy cichej (pustego marginesu)
  • Przy użyciu do druku/wyświetlania upewnij się, że występuje duża kontrastowość między pierwszoplanem a tłem, unikaj zbyt małych rozmiarów i nadmiernego zniekształcenia

Funkcje

  • Generacja w całości po stronie klienta (bez przesyłania danych na serwer)
  • Obsługa wyjścia w formacie PNG i SVG
  • Możliwość dostosowania stylu: kształt, punkty lokalizacyjne, zaokrąglone rogi, odstępy
  • Gradiente (wielokolorowe, wielokierunkowe)
  • Nakładanie logo (opcjonalne automatyczne podwyższenie poziomu korekcji błędów)
  • Obramowania i obrysy (styl zaokrąglonych kart)
  • Udostępnianie i kopiowanie do schowka (linki/obrazy)
  • Obsługa wielu języków i motywów

Co to są punkty ustalania położenia (Finder)?

Trzy duże kwadraty w czterech rogach kodu QR nazywane są punktami ustalania położenia (Finder), które pomagają kamery szybko znaleźć pozycję i kąt kodu QR, umożliwiając korekcję położenia i dekodowanie. Zazwyczaj są to struktury modułowe 7×7 w alternujących kolorach czarnym i białym (zewnętrzny czarny, wewnętrzny biały, czarny w centrum).

  • Zadanie: Szybkie ustalanie położenia, odporność na obroty, odporność na perspektywę.
  • Styl: Ten narzędzie obsługuje renderowanie punktów ustalania położenia w kształcie kwadratów, z zaokrąglonymi rogami oraz w "stylu kropkowym" (wybierz w Styl → Finder).

Kto wynalazł kod QR?

Kod QR został wynaleziony w 1994 roku przez inżyniera Masahiro Hara z japońskiej firmy Denso Wave. QR to skrót od "Quick Response" (Szybka reakcja).

  • Motyw wynalazku: Poprawa efektywności identyfikacji na linii produkcyjnej części samochodowych, przekroczenie ograniczeń dotyczących pojemności i prędkości odczytu kodów jednowymiarowych.
  • Wpływ na projekt: Białe i czarne kamienie w grze go oraz wzorce macierzowe zainspirowały wysokowydajny projekt "modułowy + grafika ustalania położenia".
  • Dlaczego nie trzeba płacić opłat patentowych?: Firma Denso Wave posiada markę towarową i częściowe patenty, ale wyraźnie udostępnia je za darmo, aby wspomóc rozpowszechnienie ekosystemu (obsługuje komercyjne wykorzystanie, nie pobiera opłat licencyjnych).

Normy i zalecenia dotyczące użycia

  • Norma międzynarodowa: ISO/IEC 18004 (Specyfikacja symboli 2D kodu QR), definiuje wersje, maski, korekcję błędów, strukturę graficzną itp.
  • Poziom tolerancji na błędy: Cztery poziomy L/M/Q/H (około 7%/15%/25%/30% danych można odzyskać), w przypadku nakładania logo zaleca się użycie wyższego poziomu.
  • Zawartość kodowana: Tekst, adres URL, vCard, Wi‑Fi itp., zaleca się stosowanie odpowiednich norm formatu URI/danych (np. WIFI:T:WPA;S:SSID;P:PASS;;).
  • Drukowanie i wyświetlanie: Upewnij się, że jest wystarczający kontrast między elementami pierwszoplanowymi a tłem oraz odpowiednia wielkość strefy pustej; unikaj nadmiernego zniekształcenia, zbyt małych rozmiarów i zbyt gęstych wzorów, które mogą zakłócić odczyt.
  • Dostępność: W kluczowych sytuacjach zaleca się podanie tekstu zastępczego/adresu URL, aby uniknąć sytuacji, w której kod QR jest jedynym punktem wejścia.

Generowanie kodów QR za pomocą języków programowania

Poniżej przedstawiamy najprostsze przykłady dla popularnych języków, które nadają się do rozpoczęcia pracy i tworzenia szkieletów projektów:

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();
}

Wskazówka: Różne biblioteki różnią się znacznie pod względem obsługi stylów. Jeśli potrzebujesz zaawansowanych stylów (kropkowe, gradientowe, style punktów ustalania położenia, obramowania itp.), możesz wygenerować obraz PNG/SVG w tym narzędziu i użyć go bezpośrednio.