Generator kodów QR

Kod QR z adresu URL, tekstu, wizytówki vCard albo danych sieci Wi-Fi. Ustawisz kolory, margines, logo i poziom korekcji błędów, a gotowy plik pobierzesz jako PNG albo SVG.

Wszystko liczy się w Twojej przeglądarce - treść kodu QR nie opuszcza tego urządzenia.

Jeśli pominiesz https://, dopiszemy je automatycznie. Krótszy adres to rzadszy, łatwiejszy do zeskanowania kod.
Wygląd i parametry kodu
Od 200 do 1000 pikseli. Plik SVG jest niezależny od tej wartości i skaluje się bez utraty jakości.
Jasna ramka wokół kodu. Standard wymaga co najmniej czterech modułów, dlatego niżej zejść się nie da.
Plik zostaje na Twoim urządzeniu. Po wgraniu logo korekcja przełącza się na poziom H, żeby zasłonięte moduły dały się odtworzyć.
Podgląd na żywo
Treść zapisana w kodzie
Treść kodu pojawi się tutaj.

Jak używać

  1. Wybierz zakładkę z rodzajem kodu, jaki chcesz utworzyć. Do wyboru masz adres strony, zwykły tekst, numer telefonu, gotowy SMS, e-mail, dane sieci Wi-Fi albo wizytówkę vCard.
  2. Wprowadź dane w polach formularza. Podgląd po prawej stronie przerysowuje się przy każdym naciśnięciu klawisza, bez osobnego przycisku „Generuj”.
  3. W sekcji „Wygląd i parametry kodu” dostosuj rozmiar pliku, szerokość marginesu, kolory kodu i tła, a na końcu poziom korekcji błędów. Pod podglądem zobaczysz wersję kodu i to, ile miejsca jeszcze zostało.
  4. Jeśli chcesz wstawić logo firmy, wskaż plik graficzny. Korekcja przełączy się wtedy sama na poziom H, bo logo zasłania część modułów.
  5. Zeskanuj podgląd smartfonem, zanim pobierzesz plik. To jedyny pewny sposób sprawdzenia, czy kolory i logo nie popsuły czytelności.
  6. Pobierz wygenerowany kod jako PNG (rastrowy, do internetu i prezentacji) albo SVG (wektorowy, do druku i do wstawienia w plik PDF).
  7. Zakładka „Lista adresów” generuje komplet kodów naraz, po jednym adresie URL w wierszu, z osobnym przyciskiem pobierania przy każdym.

Wskazówki

  • Poziom korekcji określa, jaka część kodu może zostać uszkodzona. Wariant L znosi około 7% uszkodzeń, M około 15%, Q około 25%, a H około 30%. Wyższa korekcja oznacza więcej modułów, czyli gęstszy kod przy tej samej treści.
  • Kontrast między kolorem kodu a tłem musi sięgać co najmniej 3:1. Narzędzie liczy go na bieżąco i ostrzega, gdy zejdzie poniżej tej granicy. Jasnoszary kod na białym tle wygląda elegancko, ale nie da się go zeskanować.
  • Odwrócone kolory, czyli jasny kod na ciemnym tle, rozpoznaje tylko część czytników kodów. Jeśli kod ma trafić na ulotkę dla nieznanych odbiorców, zostań przy ciemnych modułach na jasnym tle.
  • Margines jest częścią kodu. Cztery moduły jasnego tła dookoła są wymagane przez standard, a bez nich czytnik nie znajdzie granic kodu, dlatego nie da się go tu wyłączyć.
  • Wersja kodu rośnie wraz z długością treści, od 21×21 modułów (wersja 1) do 177×177 (wersja 40). Adres URL z długimi parametrami śledzenia potrafi podnieść wersję o kilkanaście stopni, więc skróć go, zanim wygenerujesz kod.

Kolory kodu dobierzesz wygodniej konwerterem kolorów, a wgrane logo zmniejszysz wcześniej kompresorem zdjęć.

Jak generator kodów QR buduje macierz modułów

Format opracowała w 1994 roku japońska firma Denso Wave, do znakowania części w fabrykach Toyoty. Nazwa Quick Response wzięła się z tempa odczytu, bo skaner łapie taki kod pod dowolnym kątem, w ułamku sekundy. W literaturze anglojęzycznej ten sam format występuje jako QR code.

Kod QR to macierz czarnych i białych kwadratów zapisana według normy ISO/IEC 18004. Zadaniem generatora kodów QR jest zamiana treści na ciąg bajtów w kodowaniu UTF-8, a potem na strumień bitów z czterobitowym oznaczeniem trybu i wskaźnikiem długości. Do danych dokładane są słowa korekcyjne wyliczone kodem Reeda-Solomona nad ciałem Galois GF(256) i to one ratują odczyt, gdy kod zostanie zadrapany albo poplamiony.

Gotowy strumień układany jest w macierzy zygzakiem, od prawego dolnego rogu, z pominięciem pól zajętych przez wzory stałe, czyli trzy kwadraty pozycjonujące w narożnikach, wzory wyrównujące, linie czasowe i pola informacji o formacie. Na koniec wybierana jest jedna z ośmiu masek - wzorów, które odwracają kolor części modułów tak, żeby w kodzie nie powstawały duże jednolite plamy ani układy mylące się ze wzorem pozycjonującym. Generator liczy karę dla każdej z ośmiu masek i zostawia tę o najniższym wyniku.

Cały ten rachunek wykonuje się w JavaScripcie, w Twojej przeglądarce. Enkoder napisaliśmy od zera, bez bibliotek zewnętrznych i bez usługi po stronie serwera, więc żeby wygenerować kod QR, wystarczy otwarta strona i chwila pracy procesora.

Kod QR a kod kreskowy

Kod kreskowy EAN-13 zapisuje dane w jednym wymiarze, w szerokości pasków, i mieści trzynaście cyfr. To akurat tyle, żeby wskazać produkt w bazie sklepu. Kod QR czyta się w dwóch wymiarach i przy podobnej powierzchni przenosi kilkaset znaków razem ze słowami korekcyjnymi, więc zmieści adres URL, wizytówkę albo dane logowania do sieci bezprzewodowej.

Stąd wziął się podział ról, w którym kod kreskowy został przy kasie i magazynie, a kod QR trafił na plakaty i faktury, na opakowania i na materiały marketingowe, gdzie liczy się odczyt telefonem bez instalowania czegokolwiek. Ten generator tworzy wyłącznie kody QR; kodów kreskowych EAN tu nie wygenerujesz, bo rządzą się osobną normą i inną regułą sumy kontrolnej.

Dlaczego generowanie kodów odbywa się w przeglądarce

Większość darmowych generatorów kodów QR wysyła treść na swój serwer i odsyła gotowy obrazek. Przy adresie strony firmowej nie ma to znaczenia. Przy haśle do sieci Wi-Fi, numerze telefonu prywatnego albo pełnej wizytówce z adresem domowym już ma, bo dane trafiają do logów obcego serwisu i nie masz wpływu na to, jak długo tam zostaną.

Tutaj cały ciężar generowania kodów bierze na siebie przeglądarka. Kiedy wprowadzasz hasło do firmowej sieci albo prywatny numer, treść zostaje w pamięci karty, w kilkuset liniach JavaScriptu, które policzą słowa korekcyjne i narysują macierz, a po zamknięciu karty znika razem z nią, bo nie wychodzi stąd żadne zapytanie sieciowe.

Osobna kategoria to kody dynamiczne, reklamowane jako „edytowalne”. Taki kod zawiera wyłącznie krótki adres przekierowujący w domenie dostawcy. Gdy dostawca zniknie albo wprowadzi opłatę, wszystkie wydrukowane kody przestaną działać. Statyczne kody z tego generatora zapisują treść w samych modułach, więc wygenerowane kody możesz udostępniać dalej jako zwykły plik graficzny. Statyczny kod obywa się bez pośrednika, który zliczałby skanowania.

Poziom korekcji i rozmiar wydruku

Wersja kodu, od 1 do 40, określa liczbę modułów, od 21×21 do 177×177. Wersja dobierana jest automatycznie, zawsze jako najmniejszy kod, w którym mieści się treść przy wybranym poziomie korekcji. Ta sama treść przy korekcji H zajmie wyraźnie większą wersję niż przy L, bo część miejsca zabierają słowa korekcyjne.

Przy druku pojedynczy moduł musi mieć co najmniej około 0,4 mm boku, a odległość odczytu to mniej więcej dziesięciokrotność boku kodu. Kod wersji 10 (57 modułów) wydrukowany jako kwadrat 2×2 cm ma moduły po 0,35 mm i część telefonów już go nie odczyta. Jeśli kod ma być mały, skracaj treść, zamiast podnosić korekcję. W linku z kampanii zwykle da się wyciąć kilkadziesiąt znaków parametrów śledzenia.

Inaczej wygląda to przy kodzie z logo. Wstawiony w środku obrazek zasłania moduły, które muszą zostać odtworzone z części korekcyjnej, dlatego po wgraniu logo narzędzie samo przechodzi na poziom H i pilnuje, żeby zasłonięte pole nie przekroczyło mniej więcej jednej piątej boku.

Typ kodu i formaty treści, które rozpoznają smartfony

Sam kod QR przenosi zwykły ciąg znaków. To, że telefon proponuje połączenie z siecią albo zapisanie kontaktu, wynika z umownych formatów zapisu, które rozpoznaje system operacyjny. Typ kodu wybierasz zakładką nad formularzem, a generator składa właściwy ciąg za Ciebie. Kody można generować pojedynczo albo hurtem, z listy adresów URL.

  • Sieć Wi-Fi zapisuje się jako WIFI:T:WPA;S:nazwa;P:haslo;;, gdzie T to typ zabezpieczenia, S nazwa sieci, a P hasło. Znaki specjalne muszą być poprzedzone ukośnikiem, inaczej średnik w haśle urwie odczyt w połowie.
  • Wizytówka idzie jako vCard 3.0, czyli kilkanaście linii z polami nazwiska, firmy, numerów telefonu i adresu pocztowego. Format rozumieją książki adresowe w Androidzie i iOS-ie, w Outlooku i w Gmailu.
  • Numer telefonu i adres e-mail korzystają ze schematów tel: i mailto:, tych samych, których używa się w odnośnikach na stronie internetowej.
  • SMS ma postać SMSTO:numer:treść i otwiera w telefonie okno nowej wiadomości, a wysyłkę potwierdza użytkownik.

Wszystkie te ciągi zobaczysz w polu „Treść zapisana w kodzie” po prawej stronie. Zajrzyj tam, zanim kod trafi do druku, zwłaszcza przy wizytówce, gdzie łatwo przeoczyć literówkę w adresie.

Najczęstsze przyczyny kodów, których skaner nie odczyta

Z doświadczenia najwięcej problemów sprawiają cztery rzeczy. Po pierwsze zbyt niski kontrast, bo kod w firmowym jasnym beżu na białym tle wygląda dobrze na monitorze i zawodzi na papierze. Po drugie brak marginesu, kiedy kod wklejono wprost na zdjęcie albo wtłoczono w ramkę. Po trzecie za mały wydruk przy zbyt długiej treści. Po czwarte logo powiększone „na oko” tak, że zasłania jedną trzecią kodu.

Każdy z tych błędów wychwycisz w minutę. Zeskanuj podgląd smartfonem, a przy druku poproś o odbitkę próbną i przyłóż do niej skaner kodów albo zwykły aparat, z odległości, z jakiej kod będą czytać odbiorcy. Starsze czytniki kodów bywają mniej czułe niż aparat w nowym telefonie, a warunki skanowania kodów w terenie (słabe światło, mokry papier, kod pod kątem) zabierają część zapasu korekcji.

Najczęstsze pytania

Czy hasło do Wi-Fi albo dane z wizytówki trafiają na Wasz serwer?

Nie. Cały enkoder QR jest napisany w JavaScripcie i wykonuje się w Twojej przeglądarce. Po wpisaniu hasła nie wychodzi żadne zapytanie sieciowe. Sprawdzisz to w zakładce „Sieć” w narzędziach deweloperskich (klawisz F12). Treści kodów nie zapisujemy też w pamięci przeglądarki, bo zapamiętywana jest wyłącznie ostatnio wybrana zakładka. Hasło do sieci możesz więc wprowadzić spokojnie, skoro całe obliczenie wykonuje Twoje urządzenie.

Czy kod przestanie działać, jeśli zamkniecie serwis?

Wydrukowany kod będzie działał tak długo, jak długo przetrwa nośnik, na którym go umieszczono. Generowane tu kody są statyczne, a treść zapisana jest w samych czarno-białych modułach, bez przekierowania przez naszą domenę. Odczytają się nawet wtedy, gdy tej strony już nie będzie. Inaczej działają „kody dynamiczne” u części dostawców, bo tam w kodzie siedzi krótki adres w cudzej domenie i od niej zależy dalsze działanie.

Ile kosztuje wygenerowanie kodu QR i czy potrzebne jest konto?

Tworzenie kodów QR nic tu nie kosztuje. To darmowy generator kodów QR bez rejestracji i bez znaku wodnego na obrazku, a kod QR za darmo pobierzesz w PNG albo SVG od razu po wpisaniu treści. Nie prosimy o adres e-mail ani o numer telefonu, bo do wyliczenia macierzy modułów nie są potrzebne. Tryb listy jest bezpłatny na tych samych zasadach, a jedyne ograniczenie to sto wierszy naraz.

Czy mogę zmienić treść wygenerowanego kodu?

Treści kodu statycznego nie da się podmienić po wydrukowaniu, bo siedzi ona w układzie modułów zamiast w zewnętrznej bazie. Zmiana oznacza wygenerowanie nowego kodu i wymianę pliku w projekcie. Przy dużym nakładzie zapisz w kodzie adres URL, którym zarządzasz sam, na przykład podstronę własnego serwisu. Adres docelowy zmienisz wtedy u siebie, bez ruszania wydrukowanych materiałów. Kolory i margines można dostosować w każdej chwili, tak samo jak rozmiar pliku, bo te ustawienia nie zmieniają zapisanej treści.

W jakim formacie pobrać kod QR, w PNG, SVG, JPEG czy PDF?

Do internetu i prezentacji bierz PNG w rozmiarze co najmniej 400 px. Do druku wybierz SVG, bo wektor skaluje się bez utraty ostrości i wstawisz go do pliku PDF w programie graficznym albo w składzie. JPEG przy kodach QR sprawdza się najgorzej, ponieważ kompresja stratna rozmywa krawędzie modułów i przy małym kodzie potrafi zepsuć odczyt. Wyjściem tego generatora kodów są pliki PNG i SVG, a konwersję do innych formatów zrobisz już w edytorze grafiki.

Jaki poziom korekcji błędów wybrać?

Domyślne M (odzysk około 15%) sprawdza się w większości zastosowań ekranowych i drukowanych. Poziom Q lub H wybierz wtedy, gdy kod będzie narażony na zabrudzenie albo uszkodzenie, na przykład na opakowaniu, tabliczce w terenie albo naklejce na maszynie. Poziom L ma sens tylko przy bardzo długiej treści, gdy zależy Ci na możliwie rzadkim kodzie. Po wgraniu logo poziom H włącza się automatycznie.

Dlaczego nie ma pobierania listy kodów w archiwum ZIP?

Bo spakowanie plików w przeglądarce wymagałoby biblioteki zewnętrznej, a te są na tej stronie wykluczone. Całe narzędzie ma działać bez pobierania obcego kodu. Zamiast tego kody z listy zapisują się jako pojedyncze pliki PNG, kolejno, z krótkimi odstępami. Przy pierwszym pliku przeglądarka zapyta o zgodę na pobieranie wielu plików z tej strony.

Czy da się odczytać istniejący kod QR?

To odwrotna operacja i wymaga dostępu do kamery albo analizy wgranego zdjęcia, więc skaner kodów powstanie u nas jako osobne narzędzie, a tutaj kody wyłącznie się tworzy. Do pojedynczego odczytu wystarczy zwykle aparat w smartfonie, bo w Androidzie i iOS-ie czytnik kodów jest wbudowany w aplikację aparatu.

Ile treści zmieści się w jednym kodzie?

W trybie bajtowym, przy korekcji L i największej wersji 40, mieści się 2953 bajty. Przy korekcji M jest to 2331 bajtów, przy Q - 1663, a przy H - 1273. Polska litera z ogonkiem zajmuje w UTF-8 dwa bajty, więc tekst z ogonkami zmieści się odpowiednio krócej. W praktyce kody dłuższe niż kilkaset znaków są już bardzo gęste i trudne do zeskanowania. Narzędzie ostrzeże Cię, gdy wersja kodu przekroczy 25.

Czy mogę użyć wygenerowanego kodu komercyjnie?

Tak. Kod QR to format opisany normą, a nie utwór, więc nie rościmy sobie do wygenerowanych plików żadnych praw. Możesz je drukować na opakowaniach i wizytówkach, w materiałach reklamowych i na plakatach, bez podawania źródła i bez opłat.