Przejdź do treści
megapromotingPorozmawiajmy
Produkty MEGA QR

Instrumente în browser Instrument public

Kod QR. Albo plik, który przechodzi przez światło.

MEGA QR zawiera generator kodów i narzędzie do transferu optycznego. Tworzysz kod dla linku, Wi-Fi lub kontaktu; do transferu ekran wyświetla sekwencję kodów, które kamera drugiego urządzenia rekonstruuje w plik.

Generatorul MEGA QR: tipurile de cod, câmpul de conținut completat cu o adresă și codul QR generat alături
qr.megapromoting.com · kod składa się w przeglądarce, z adresu wpisanego w polu treści

MEGA QR

Od informacji do wykonanej pracy.

01

Pregătești

Wybierasz treść kodu albo plik, który chcesz przesłać.

02

Afișezi

Generator tworzy obraz QR. Transfer optyczny wyświetla kolejne klatki.

03

Scanezi

Kamera odczytuje kod albo zbiera klatki, aż może odtworzyć plik.

Gdzie staje się przydatny.

Generator QR

Link, Wi-Fi, kontakt i inne typy treści; eksport PNG lub SVG.

Transfer optyczny

Dane przesyłane między ekranem a kamerą, bez połączenia sieciowego między urządzeniami.

Przetwarzanie lokalne

Generowanie i odtwarzanie odbywa się w przeglądarce, bez konta użytkowniczego.

Transfer optyczny zależy od kamery, światła, odległości i ekranu. Urządzenie, które nadaje, nie otrzymuje potwierdzenia odbioru. Kod wyświetlony publicznie może być odczytany przez osoby, które go widzą.

MEGA QR w szczegółach

Co możesz zrobić z tym projektem.

MEGA QR to dwa narzędzia w tej samej domenie, a drugie wcale nie przypomina pierwszego. Generator tworzy kody QR dla ośmiu typów treści: link, tekst, WiFi, wizytówka, WhatsApp, email, SMS, telefon i współrzędne. Transfer optyczny przenosi cały plik z ekranu do kamery, bez kabla, bez Bluetooth, bez sieci między tymi dwoma urządzeniami.

Oba działają w całości w przeglądarce. Strony nie wykonują żadnych żądań do podmiotów trzecich, a dwa binaria WebAssembly, od których zależy transfer, są serwowane z public/wasm/, a nie z CDN — inaczej obietnica, że nic nie opuszcza urządzenia, byłaby fałszywa. Hasło WiFi wpisane w generatorze nigdy nie trafia na serwer.

Idea, którą warto zrozumieć o transferze: ekran emituje światło, kamera je odczytuje, a odbiorca nie ma możliwości niczego odesłać. Nie istnieje kanał zwrotny. Z tego wynika wszystko inne — klatki opisują się same, ich kolejność nie ma znaczenia, każdy wystarczająco duży podzbiór rekonstruuje plik, a nadawca nigdy nie może wiedzieć, czy coś dotarło.

01

Generator: osiem typów, PNG i SVG, logo pośrodku

Link, tekst, WiFi, vCard, WhatsApp, email, SMS, telefon i geolokalizacja. Gdy dodajesz logo, poziom korekcji błędów jest wymuszony na H, najwyższy — logo robi dziurę w obszarze danych i kod inaczej nie przetrwa. Logo jest ograniczone do 35% powierzchni, z ostrzeżeniem od 30%. Eksport jest renderowany osobno od podglądu, aby PNG o 4096 px nie zakłócał tego, co jest na ekranie.

02

Znaki diakrytyczne się nie gubią

Biblioteka generowania, qr-code-styling 1.9.2, konwertuje tekst za pomocą charCodeAt(i) & 0xFF i po cichu ucina każdy rumuński znak diakrytyczny oraz cały cyryliczny alfabet: „Ștefan Țurcanu” skanował się z powrotem jako „tefan urcanu”. Kodujemy najpierw w UTF-8, zanim to zobaczy, tak aby jej obcięcie nie miało już czego ucinać. Ładunki WiFi i vCard są też escapowane — „;” w haśle albo przecinek w nazwie firmy inaczej uszkadzały kod, bez żadnego sygnału.

03

Transfer optyczny: fontanna kodów, a nie sekwencja

Plik jest pakowany w kopertę (nazwa, typ MIME, rozmiar, SHA-256), kompresowany gzipem, jeśli wyjdzie mniejszy, a potem przepuszczany przez RaptorQ (RFC 6330). Każda ramka ma stały nagłówek 20 bajtów i jeden lub więcej pakietów. Nie ma znaczenia, które ramki przechwycisz, liczy się ile: dowolny wystarczająco duży podzbiór rekonstruuje plik. Mierzone przez faktycznie renderowane piksele, narzut RaptorQ wynosi 1,000x — kody LT używane przez projekty referencyjne wymagają 1,15x.

04

Karuzela: publiczny ekran, na którym nikt niczego nie naciska

Drugi tryb wysyłania to stała tura, która powtarza się bez końca, bez sesji i bez osoby naciskającej start. Długość tury podróżuje w każdej ramce, więc przechodzień kierujący kamerę wie z pierwszego przechwyconego kodu, jak długo to trwa, zamiast widzieć kółko. Konfiguracja referencyjna to 36 ramek przy 12 na sekundę — tura trwająca trzy sekundy, która przenosi 25 KB z jednego prostego czarno-białego kodu. Całe menu albo pełny rozkład jazdy stacji.

05

Dopasowuje się do kamery, która patrzy, w trzech osobnych osiach

Liczba kodów na ekranie, kolor i wersja QR to trzy różne ograniczenia i reguluje się je osobno. Skala gęstości ma 29 stopni, od v10 na jednym paśmie (7 KB/s przy 30 klatkach na sekundę) do v39 na czterech pasmach w kolorze (959 KB/s). Istnieje też pełna skala bez koloru, do 320 KB/s, ponieważ kamera, której ginie chrominancja, nie powinna utknąć na jednym paśmie.

Dane i działanie

Co trafia do systemu. Co trzeba sprawdzić.

Nic nie opuszcza urządzenia
Generator buduje kod na stronie. Transfer rekonstruuje plik w przeglądarce odbiorcy. Strony nie wysyłają żądań do osób trzecich, a binaria WebAssembly (raptorq dla kodu fontanny, zxing-wasm do dekodowania) są serwowane lokalnie. Nie ma konta, nie ma sesji na serwerze, nie ma rejestru tego, co zostało wysłane.
QR nie jest sekretem
Każda osoba, która widzi kod wystarczająco wyraźnie, może go zeskanować. To dotyczy także transferu optycznego: ekran wyświetlający ramki jest widoczny dla każdej kamery w pomieszczeniu. Izolowane środowisko sieciowe nie oznacza automatycznie, że transfer optyczny jest dozwolony — decyduje polityka organizacji, nie topologia sieci.
Integralność jest weryfikowana, nie zakładana
Koperta zawiera pełny SHA-256 oryginalnego pliku, a nagłówek zawiera jego pierwsze cztery bajty jako szybką sumę kontrolną. Po rekonstrukcji odbiorca ponownie oblicza cały hash i zgłasza błąd niezgodności, jeśli się różni. Plik wychodzący z transferu jest albo bit w bit taki sam jak na wejściu, albo jest deklarowaną awarią. Nie ma trzeciej opcji.
Limit 32 MB i jego powód
Powyżej 32 MB odrzucamy plik przy wyborze. Koder RaptorQ materializuje wszystkie pakiety naraz i działa synchronicznie na głównym wątku — zmierzone 2,5 sekundy dla 32 MB na komputerze, kilka razy więcej na telefonie. W tym czasie przycisk Stop jest narysowany i nie można go nacisnąć. Wczesna odmowa jest uczciwsza niż karta, która umiera przy 80%.

Od eksploracji do wdrożenia

Jak przygotowujemy projekt z MEGA QR.

01

Wybieramy, które z dwóch narzędzi jest odpowiedzią

Kod QR prowadzi do krótkiej treści i, jeśli jest linkiem, do strony, którą można później zmienić — wydrukowany kod sam nie zmienia swojego celu. Transfer optyczny przenosi plik między dwoma urządzeniami, które nie mogą albo nie mają prawa komunikować się przez sieć. To są różne zadania i pomylenie ich jest najczęstsze.

02

Ustalamy warunki fizyczne

Do druku: kontrast, końcowy rozmiar, wolna strefa wokół, przetestowane w rozmiarze, w jakim będzie naklejone. Do transferu: jak duży moduł przypada na sensor kamery. Pod twardym modelem obiektywu (przesunięta o jeden piksel siatka chrominancji plus rozmycie 3x3) kolor zwraca wszystkie trzy kody przy 4 pikselach urządzenia na moduł i absolutnie nic przy 2. To jest prawdziwa granica i dlatego kolor jest wyborem osoby, a nie kontrolera.

03

Testujemy na urządzeniach, które będą faktycznie używane

Nasz zestaw przechodzi przez prawdziwy łańcuch kamer — klatki są zapisywane jako YUV 4:2:0 i podawane do Chrome jako fałszywa kamera internetowa, więc próbkowanie chrominancji jest realne. Czego nie ma: obiektywu, odbić, ruchu, migawki rolkowej. Dziesięć minut z prawdziwym telefonem daje pierwszą uczciwą liczbę i jest następnym krokiem z naszej listy prac, a nie detalem.

Pytania, które warto wyjaśnić.

Jak szybko faktycznie przechodzi plik?

Przez symulowany łańcuch kamery, przy 10 klatkach na sekundę, z kodami wypełniającymi większość obrazu przy 3-5 pikselach urządzenia na moduł, wszystkie cztery konfiguracje wyszły z potwierdzonym hashem: czarno-białe na jednym pasie 15,8 KB/s, czarno-białe na czterech pasach 37,7 KB/s, kolor na jednym pasie 40,1 KB/s, kolor na czterech pasach 115,7 KB/s. Kolor na jednym pasie bije czarno-białe na czterech. Współczynnik utraty był wszędzie zerowy. Pamiętaj, skąd pochodzą te liczby: idealne geometrycznie klatki, bez obiektywu i bez ruchu. Prawdziwy telefon nie został jeszcze postawiony przed nimi.

Czego wymaga od kamery i od światła?

Kamera jest wymagana w 1920x1080 przy 30 klatkach na sekundę, z preferencją dla tylnej; jeśli Android odrzuci ograniczenie, przechodzimy na dowolną kamerę. Każda przechwycona klatka jest zmniejszana do 1280 px po dłuższym boku przed dekodowaniem. To, co naprawdę się liczy, to nie rozdzielczość, lecz liczba pikseli sensora przypadających na moduł: czarno-białe potrzebuje około trzech, kolor około dwa razy więcej, ponieważ łańcuch wideo telefonu zwykle dostarcza 4:2:0 i połówkuje oba plany koloru w obu kierunkach. Drobny detal koloru to pierwsza rzecz, którą prawdziwa kamera niszczy.

Dlaczego tryb automatyczny jest wolniejszy, niż może maszyna?

Bo jedyna rzecz, którą urządzenie wysyłające może zmierzyć, to ile symboli wyprodukowały jego własne kodery względem tego, ile zostało zażądane — stwierdzenie o procesorze, nie o kamerze oddalonej o dwie dłonie. Laptop nigdy nie gubi kroku, więc kontroler, który odczytuje „zero utrat” jako „można dalej”, dochodzi do samej góry i pokazuje na ekranie cztery kody zmieniające się trzydzieści razy na sekundę, których nic nie może zeskanować. To rzeczywiście zostało kiedyś dostarczone i człowiek znalazł to w minutę. Teraz tryb automatyczny jest ograniczony do jednego pasa, czarno-białego, wersji 26 i 15 klatek na sekundę. 15 nie jest okrągłą liczbą: kamera telefonu nagrywa przy 30 i nie jest zsynchronizowana z ekranem, więc jedna klatka musi być wyświetlana przez dwie kolejne ekspozycje — 67 ms — aby została złapana w całości.

Co się dzieje, jeśli odbiornik gubi klatki?

Nic szczególnego i właśnie o to chodzi. Nie ma numerów porządkowych do odzyskania. Koder produkuje pakiety naprawcze w proporcji 2x względem symboli źródłowych — zmierzone na tym kodzie: przy 60% utraty klatek zestaw około 2x K odzyskuje 2 MB bez ponownego odtwarzania listy. Absolutny limit to 60.000 pakietów; powyżej niego nadawca po prostu częściej rozpoczyna listę od nowa, co kosztuje czas, nie pamięć. Jeśli mimo to coś pójdzie źle, hash SHA-256 to wychwyci i transfer zostanie jawnie nieudany zamiast dostarczyć uszkodzony plik.

Czy nadawca wie, kiedy plik dotarł?

Nie, i to nie jest przeoczenie. Nie istnieje kanał zwrotny — ekran emituje światło, a światło nie wraca z potwierdzeniami. Zakończenie widać na urządzeniu odbierającym. Każdy interfejs, który twierdziłby coś innego, kłamałby, a mieliśmy już raz test, który oferował dokładnie ten dowód, którego produkt nigdy nie ma: symulacja obliczała swój współczynnik chybienia na podstawie tego, co symulowana kamera była w stanie odczytać. To jest kanał zwrotny. Kiedy test i dostarczony kod nie zgadzają się co do tego, co można wiedzieć, to test kłamie.

Jaki jest maksymalny rozmiar pliku i dlaczego właśnie taki?

32 MB, odrzucane przy wyborze, jeśli jest większy. Limit nie wynika z protokołu, lecz z pamięci karty przeglądarki: RaptorQ materializuje wszystkie pakiety naraz, a plik 50 MB przy współczynniku 2x oznaczałby 150 MB żywych tablic, wystarczająco dużo, by zabić kartę telefonu. Kodowanie działa synchronicznie na głównym wątku, zmierzone na 2,5 sekundy dla 32 MB na komputerze. To, co faktycznie podróżuje, nie jest rozmiarem pliku: koperta jest kompresowana gzip przed RaptorQ, więc tabela 1 MB to kilka kilobajtów pakietów, a fotografia 1 MB to megabajt pakietów.

Czy potrzebuję konta lub internetu?

Ani jedno, ani drugie. Nie istnieje konto i nie istnieje subskrypcja. Po pierwszej wizycie strony działają bez sieci, ponieważ wszystko — w tym oba binaria WebAssembly — jest serwowane z własnej domeny. Warto też powiedzieć, czego nauczyliśmy się po drodze: zarejestrowany service worker nie oznacza obsługi offline. Przy pierwszym wczytaniu strona i jej zasoby są pobierane, zanim worker przejmie kontrolę, więc jego handler nigdy ich nie widzi. Strona raportuje własne zasoby przez Performance API zamiast zakładać.

Przykład ilustracyjny

Rozkład jazdy stacji na ekranie, którego nikt nie dotyka

Scenariusz użycia, bez danych klienta ani przypisanych wyników handlowych.

Sytuacja początkowa

Ekran w stacji lub witrynie powinien dać przechodniom plik — pełny rozkład jazdy, menu, formularz — bez publicznego WiFi, bez konta i bez naciskania czegokolwiek.

Jak to działa

Ekran uruchamia karuzelę: 36 klatek przy 12 na sekundę, trzysekundową pętlę powtarzaną bez końca. Gęstość jest stała przez czas trwania karuzeli, bo pętla jest obietnicą tylko wtedy, gdy jej długość się zgadza. Długość pętli podróżuje w każdej klatce, więc telefon, który przechwyci pierwszy kod, od razu wie, ile to trwa.

Rezultatul

Przechodząca osoba filmuje trzy sekundy i otrzymuje 25 KB odtworzone w swojej przeglądarce, sprawdzone SHA-256, z jednego prostego czarno-białego kodu. Ekran nie wie, że został odczytany, i nie ma jak się o tym dowiedzieć.

Ce este necesar:Un ecran care poate ține un cadru afișat 83 ms fără sfâșiere, lumină în care codul nu e spălat de reflexii, și o cameră care rezolvă aproximativ trei pixeli de senzor per modul. Cifra de 25 KB e derivată din aceleași funcții pe care le folosește expeditorul, nu tastată de mână alături de ele.

Możliwości współpracy

MEGA QR, w kontekście organizacji.

Punkty dostępu i lokalny transfer

Kody do dostępu do informacji publicznych, instrukcji lub kontaktów; optyczny transfer plików między kompatybilnymi urządzeniami, z oceną polityk bezpieczeństwa instytucji.

Firmy prywatne

Definiujemy pilotaż wokół realnego procesu: użytkownicy, dane, integracje, koszty i kryteria akceptacji. Rozszerzenie następuje po ocenie wyniku.

Instytucje i spółki państwowe

Ustalamy wymagania dotyczące dostępności, hostingu, ochrony danych i interoperacyjności. Każde połączenie z usługami AGE lub STISC wymaga walidacji kwalifikowalności, dostępu i zatwierdzeń.

To są scenariusze adaptacji, a nie oświadczenia o istniejących umowach lub partnerstwach. Proponowane funkcje są potwierdzane w zakresie pracy projektu.

Discută un pilot

Część ekosystemu.

Co chcesz, żeby działało lepiej?

Opowiedz nam o swoim procesie. Wspólnie ustalimy, co warto zbudować, co da się połączyć i jak sprawdzimy wynik.

Porozmawiajmy