§

Upuść obraz lub kliknij, aby wybrać

Upuść obraz lub kliknij, aby wybrać PNG, JPG, GIF, BMP, WebP — lub wklej ze schowka
§

Skanuj kamerą

Dostęp do kamery jest żądany tylko wtedy, gdy ten przełącznik jest włączony. Nigdy nic nie przesyłamy ani nie nagrywamy.
§

Zdekodowana zawartość

W Polsce kody QR przenoszą dane, które często są wrażliwe: menu restauracji na kartkach przy stole, bramki wejściowe na wydarzeniach Eventim i eBilet, karty dań na wynos aplikacji Glovo i Wolt, faktury przesyłane do KSeF jako tokeny weryfikacyjne, płatności BLIK w aplikacjach PKO BP i mBanku, a nawet kody na plakatach informacyjnych ZUS. Za każdym razem kamera telefonu trafia na wydrukowany symbol. Kiedy zamiast tego kierujesz na niego przeglądarkę komputerową, zazwyczaj chcesz sprawdzić zawartość przed podjęciem działania — potwierdzić, że URL na plakacie prowadzi do prawdziwej witryny, odzyskać hasło Wi-Fi wydrukowane przez router lub odczytać wizytówkę vCard z odznaki konferencyjnej. Ten czytnik obsługuje wszystkie formaty z tych źródeł: URL, ciągi Wi-Fi, vCard, MeCard, zwykły tekst, e-mail, SMS, współrzędne geograficzne. Bajty obrazu i zdekodowana zawartość pozostają w Twojej karcie.

Czym jest czytnik kodów QR?

Kod QR to dwuwymiarowy kod kreskowy macierzowy zdefiniowany przez ISO/IEC 18004. Koduje tekst, adresy URL, wizytówki, dane logowania do Wi-Fi i inne krótkie ładunki jako siatkę czarno-białych kwadratowych modułów, wraz z danymi korekcji błędów Reeda-Solomona, dzięki czemu symbol wciąż dekoduje się po częściowym uszkodzeniu lub nałożeniu logo. Czytnik kodów QR robi odwrotność: pobiera obraz symbolu QR i odtwarza oryginalny ciąg ładunku. Ten czytnik uruchamia pipeline dekodowania bezpośrednio w przeglądarce za pomocą biblioteki open-source jsQR (około 130 KB, licencja MIT). Obraz upuszczony, wklejony lub zeskanowany kamerą nigdy nie opuszcza karty. Nie ma kroku przesyłania. Otwórz DevTools podczas dekodowania, a panel Sieć pozostanie cichy — strona nie wykonuje żadnych żądań XHR, fetch ani sygnałów analitycznych powiązanych z treścią obrazu.

Jak działa dekodowanie QR?

Dekodowanie działa w całości na Twoim komputerze. Każdy obraz przechodzi przez stały pipeline zanim zostanie zwrócony tekst ładunku:

  1. Plik obrazu (PNG, JPG, WebP lub klatka z kamery) jest rysowany na pozaekranowym elemencie HTML <canvas>. API canvas zwraca surowe dane pikseli jako tablicę bajtów RGBA.
  2. Biblioteka jsQR konwertuje tablicę pikseli na bitmapę skali szarości i skanuje w poszukiwaniu trzech charakterystycznych kwadratów wzorca lokalizatora w narożnikach symbolu QR.
  3. Po zlokalizowaniu wzorców lokalizatora dekoder oblicza transformację perspektywiczną i wyodrębnia pełną siatkę modułów, odczytując każdą komórkę jako binarne 0 lub 1.
  4. Siatka modułów jest parsowana zgodnie ze specyfikacją QR: najpierw odczytywane są informacje o formacie i wersji, następnie moduły danych są przeplecione i stosowana jest korekcja błędów Reeda-Solomona.
  5. Skorygowane słowa kodowe danych są dekodowane zgodnie z trybem segmentu (numerycznym, alfanumerycznym, bajtowym lub kanji), dając oryginalny ciąg ładunku.
  6. Narzędzie analizuje ładunek za pomocą zestawu wyrażeń regularnych w celu identyfikacji typu treści (URL, dane logowania Wi-Fi, vCard itd.) i wyświetla wynik z odpowiednim przyciskiem akcji.

Dlaczego warto używać czytnika QR w przeglądarce?

  • Bajty obrazu nigdy nie opuszczają Twojego urządzenia. Wklej kod QR ukrywający hasło Wi-Fi, wewnętrzny adres stagingowy lub wizytówkę vCard z czyimś prywatnym numerem telefonu — ta treść zostaje na Twoim laptopie. Inne czytniki QR uruchamiają dekodowanie na zdalnym serwerze i proszą o wcześniejsze przesłanie obrazu — ten nie.
  • Po załadowaniu strony dekodowanie działa offline. Biblioteka jsQR żyje w Twojej karcie. Możesz odłączyć Wi-Fi, upuścić obraz QR do strony i nadal otrzymać ładunek — przydatne w samolotach, piwnicach i wszędzie tam, gdzie sieć firmowa blokuje zewnętrzne skanery.
  • Jeśli Twój komputer stacjonarny lub laptop ma kamerę internetową, możesz nakierować ją na wydrukowany kod QR i odczytać go bez instalowania aplikacji ani odblokowywania telefonu. Strumień kamery pozostaje w przeglądarce i zatrzymuje się w momencie zdekodowania kodu.
  • Czytnik rozpoznaje adresy URL, ciągi Wi-Fi, vCard, MeCard, mailto, SMS i ładunki geo, wyświetlając pasujący przycisk akcji. Otwórz URL, skopiuj hasło Wi-Fi, zapisz wizytówkę — cokolwiek faktycznie zawiera kod QR.

Typowe zastosowania czytnika kodów QR

Zawsze gdy chcesz zobaczyć, co faktycznie mówi kod QR, bez kierowania na niego telefonu:

  • Debugowanie właśnie wygenerowanych kodów. Wklej kod QR wyprodukowany przez Twoją aplikację (lub zrób zrzut ekranu z generatora kodów QR) i potwierdź, że zakodowany URL lub ładunek zgadza się z zamierzonym — zanim wyślesz go do druku, opakowania lub plakatu.
  • Odzyskiwanie danych logowania Wi-Fi. Zeskanuj kod QR Wi-Fi ze strony konfiguracji routera, karty powitalnej w hotelu lub zdjęcia z ogłoszenia AirBnB, a czytnik zwróci SSID, typ zabezpieczeń i hasło jako zwykły tekst, który możesz skopiować na inne urządzenie.
  • Audyt i dostępność. Dekoduj kody QR na zeskanowanych dokumentach, etykietach produktów, odznakach konferencyjnych lub zrzutach ekranu postów społecznościowych, aby wyodrębnić ich zawartość do arkusza kalkulacyjnego, dziennika zgodności lub oprogramowania wspomagającego — przydatne gdy docelowy URL jest właściwym roszczeniem w audycie.

Jak wygląda dekodowanie prawdziwego kodu QR?

Weź kod QR Wi-Fi wydrukowany na oknie kawiarni. Za symbolem surowy ładunek wynikający ze schematu URI WIFI: wygląda tak: WIFI:S:CafeGuest;T:WPA;P:espresso2026;H:false;;. Sfotografuj symbol, upuść obraz do strefy wgrywania powyżej, a pipeline rusza: canvas odczytuje piksele, jsQR lokalizuje trzy narożne wzorce lokalizatora, transformacja perspektywiczna prostuje siatkę, Reed-Solomon naprawia wszelkie usterki spowodowane odblaskiem lub kompresją, a segment bajtowy daje ciąg URI. Czytnik wykrywa prefiks WIFI: i oznacza rodzaj jako Wi-Fi, parsując nazwę sieci jako CafeGuest, typ zabezpieczeń jako WPA i hasło jako espresso2026. Przycisk Kopiuj umieszcza hasło w schowku, skąd możesz je wkleić do selektora sieci systemu operacyjnego. W przypadku zwykłego URL-a w kodzie QR zawierającego https://tools.ultim8soft.com, ten sam pipeline zwraca odznakę rodzaju URL i przycisk Otwórz, który przechodzi do celu w nowej karcie. W obu przypadkach jedyną rzeczą, która wydarzyła się w sieci, było załadowanie strony — dekodowanie jest lokalne.

Ten czytnik kodów QR został zbudowany do jednego zadania: pokazać Ci dokładnie, co koduje kod QR, w Twojej przeglądarce, bez serwera pośredniego. Upuść obraz, wklej ze schowka lub pozwól działać kamerze internetowej, a zdekodowana zawartość wraz z jej typem pojawi się na ekranie w mniej niż sekundę. Bajty obrazu nie są przesyłane. Klatki kamery nie są nagrywane. Zdekodowany ładunek nie przechodzi przez czyjeś dzienniki w drodze do Ciebie. Połącz go z generatorem kodów QR, gdy potrzebujesz potwierdzenia, że to, co zakodowałeś, jest tym, co ktoś inny zobaczy.

Czy obraz jest przesyłany na serwer?

Nie. Obraz jest rysowany na HTML canvas w pamięci i dekodowany w całości przez JavaScript po stronie klienta działający w Twojej karcie. Żaden piksel Twojego obrazu nie jest nigdy wysyłany na serwer, rejestrowany ani przechowywany. Możesz to potwierdzić, otwierając DevTools i obserwując panel Sieć podczas upuszczania obrazu: żadne XHR, fetch ani sygnały analityczne nie są powiązane z treścią pliku.

Jak działa skanowanie kamerą?

Gdy włączysz tryb kamery, przeglądarka prosi o uprawnienie dostępu do kamery urządzenia przez standardowe API getUserMedia. Klatki wideo są przechwytywane na pozaekranowy canvas z rozdzielczością do 640×480 i przekazywane do jsQR do dekodowania. Każda klatka jest odrzucana w momencie pojawienia się następnej, a strumień kamery jest zatrzymywany po pierwszym udanym dekodowaniu. Żadne klatki nie są nagrywane, żadne nie są transmitowane, a prośba o uprawnienie pojawia się tylko gdy zaznaczysz przełącznik — nie przy załadowaniu strony.

Dlaczego niektóre treści QR są automatycznie wykrywane jako Wi-Fi lub vCard?

Ładunki QR dla danych logowania Wi-Fi mają format WIFI:S:ssid;T:type;P:password;;, a wizytówki vCard zaczynają się od BEGIN:VCARD. Ten czytnik rozpoznaje te wzorce wraz z innymi standardowymi prefiksami (mailto:, geo:, smsto:, MECARD:, https://) i automatycznie oznacza typ treści, tak aby przycisk akcji pasował do tego, co faktycznie chciałbyś zrobić z ładunkiem.

Dlaczego mój kod QR nie został zeskanowany?

Typowe przyczyny: obraz jest zbyt mały lub ma niską rozdzielczość (minimum ~100×100 px, niezawodnie skanuje 300×300+), symbol jest poważnie uszkodzony lub częściowo zasłonięty logo bez wystarczającej korekcji błędów, brakuje strefy ciszy (pustej ramki wokół modułów) lub jest ona obcięta, albo kontrast między ciemnymi i jasnymi modułami jest zbyt niski. W trybie kamery popraw oświetlenie lub przybliż kod do obiektywu — jsQR musi wyraźnie rozróżnić poszczególne moduły, aby zlokalizować wzorce lokalizatora.