Pregătești
Kodun içeriğini veya aktarmak istediğiniz dosyayı seçersiniz.
Tarayıcıda araçlar Instrument public
MEGA QR bir kod üreticisi ve optik aktarım aracı içerir. Bir bağlantı, Wi-Fi veya kişi için kod oluşturursunuz; aktarım için bir ekran, diğer cihazın kamerasının dosya olarak yeniden oluşturduğu bir kod dizisi gösterir.

MEGA QR
Kodun içeriğini veya aktarmak istediğiniz dosyayı seçersiniz.
Üretici QR görüntüsünü oluşturur. Optik aktarım ardışık kareler gösterir.
Kamera kodu okur veya dosyayı yeniden oluşturabilene kadar kareleri toplar.
Bağlantı, Wi-Fi, kişi ve diğer içerik türleri; PNG veya SVG dışa aktarma.
Cihazlar arasında ağ bağlantısı olmadan, ekran ve kamera arasında aktarılan veriler.
Oluşturma ve yeniden kurma tarayıcıda, kullanıcı hesabı olmadan yapılır.
Optik aktarım kamera, ışık, mesafe ve ekrana bağlıdır. Gönderen cihaz alım onayı almaz. Herkese açık gösterilen bir kod, onu görenler tarafından okunabilir.
MEGA QR ayrıntılı
MEGA QR aynı alan adı üzerinde iki araçtır ve ikincisi birincisine hiç benzemez. Üretici, sekiz tür içerik için QR kodları oluşturur: bağlantı, metin, WiFi, kartvizit, WhatsApp, e-posta, SMS, telefon ve koordinatlar. Optik aktarım, bir dosyanın tamamını bir ekrandan bir kameraya kablosuz, Bluetooth’suz, iki cihaz arasında ağ olmadan taşır.
İkisi de tamamen tarayıcıda çalışır. Sayfalar üçüncü taraflara hiçbir istek göndermez ve aktarımın bağlı olduğu iki WebAssembly ikilisi public/wasm/ üzerinden sunulur, bir CDN’den değil — aksi halde hiçbir şeyin cihazdan çıkmadığı vaadi yanlış olurdu. Üreticide yazılan bir WiFi parolası hiçbir zaman bir sunucuya ulaşmaz.
Aktarım hakkında bilmeye değer fikir şudur: bir ekran ışık yayar, bir kamera onu okur ve alıcının geri bir şey isteme imkânı yoktur. Geri dönüş kanalı yoktur. Bu olgudan geriye kalan her şey çıkar — kareler kendi kendini tanımlar, sıraları önemli değildir, yeterince büyük herhangi bir altküme dosyayı yeniden oluşturur ve gönderen hiçbir zaman bir şeyin ulaşıp ulaşmadığını bilemez.
Link, text, WiFi, vCard, WhatsApp, email, SMS, telefon ve coğrafi konum. Bir logo eklediğinizde hata düzeltme seviyesi zorla H’ye, en yükseğe çıkar — bir logo veri alanında bir delik açar ve kod başka türlü hayatta kalmaz. Logo yüzeyin %35’i ile sınırlandırılır, %30’dan itibaren uyarı verilir. Dışa aktarma, ekrandakini bozmaması için önizlemeden ayrı olarak işlenir; böylece 4096 px bir PNG ekrandaki görüntüyü etkilemez.
Üretim kütüphanesi, qr-code-styling 1.9.2, metni charCodeAt(i) & 0xFF ile dönüştürür ve her Türkçe diakritik işareti ile tüm Kiril alfabesini sessizce keser: „Ștefan Țurcanu” geriye „tefan urcanu” olarak taranırdı. Biz, onu görmeden önce UTF-8 ile kodluyoruz; böylece onun kırpmasının kesecek bir şeyi kalmıyor. WiFi ve vCard yükleri de kaçırılıyor — bir paroladaki „;” ya da bir şirket adındaki bir virgül aksi halde kodu, hiçbir işaret vermeden bozardı.
Dosya, bir zarfa paketlenir (ad, MIME türü, boyut, SHA-256), daha küçük çıkarsa gzip ile sıkıştırılır, ardından RaptorQ’ya (RFC 6330) verilir. Her kare sabit bir 20 baytlık başlık ve bir veya daha fazla paket taşır. Hangi kareleri yakaladığınız önemli değildir, kaç tane olduğu önemlidir: yeterince büyük herhangi bir altküme dosyayı yeniden oluşturur. Gerçekte işlenen piksel üzerinden ölçüldüğünde, RaptorQ ek yükü 1,000x’tir — referans projelerin kullandığı LT kodları 1,15x ister.
İkinci gönderim modu, oturum olmadan ve birinin start’a basmasına gerek kalmadan sonsuza kadar tekrarlanan sabit bir turdur. Tur uzunluğu her karede taşınır; böylece kamerayı çeviren bir geçici, ilk yakalanan koddan bütün sürenin ne kadar olduğunu, bir döner simge görmek yerine, bilir. Referans yapılandırma saniyede 12 karede 36 karedir — siyah-beyaz tek bir basit koddan 25 KB taşıyan üç saniyelik bir tur. Tam bir menü ya da bir istasyonun tam tarifesi.
Ekrandaki kod sayısı, renk ve QR sürümü üç ayrı sınırlamadır ve ayrı ayrı ayarlanır. Yoğunluk ölçeği, tek şeritli v10’dan (saniyede 30 karede 7 KB/s) renkli dört şeritli v39’a (959 KB/s) kadar 29 basamaktan oluşur. Renk olmadan, krominanstan düşen bir kameranın tek şeritte takılı kalmaması için saniyede 320 KB/s’ye kadar tam bir ölçek de vardır.
Veri ve çalışma
Keşiften uygulamaya
Bir QR kodu kısa içeriğe ve, eğer bir bağlantıysa, sonradan değiştirebileceğiniz bir sayfaya götürür — basılı kod kendi hedefini kendiliğinden değiştirmez. Optik aktarım, ağ üzerinden iletişim kurmalarına izin verilmeyen ya da kuramayan iki cihaz arasında bir dosyayı taşır. Bunlar farklı görevlerdir ve aralarındaki karışıklık en yaygınıdır.
Baskı için: kontrast, nihai boyut, etrafında boş alan, yapıştırılacağı boyutta test edilmiş. Aktarım için: bir modülün kamera sensörüne ne kadar büyük düştüğü. Bir piksel kaydırılmış krominans ızgarası artı 3x3 bulanıklık içeren sert bir lens modelinin altında renk, modül başına cihazdan 4 pikselde üç kodun hepsini geri döndürür ve 2’de kesinlikle hiçbir şey vermez. Gerçek sınır budur ve bu yüzden renk insanın, kontrolcünün değil, seçeneğidir.
Sistemimiz gerçek bir kamera zincirinden geçer — kareler YUV 4:2:0 olarak yazılır ve Chrome’a sahte webcam olarak verilir, yani krominans alt örneklemesi gerçektir. Eksik olanlar: objektif, yansımalar, hareket, rolling shutter. Gerçek bir telefonla on dakika, ilk dürüst sayıyı verir ve bu, çalışma listemizdeki bir sonraki adımdır, bir ayrıntı değil.
Sahte bir kamera zinciri üzerinden, saniyede 10 karede, kodların görüntünün büyük kısmını modül başına kameradan 3-5 piksel doldurduğu durumda, dört yapılandırmanın hepsi doğrulanmış hash ile çıktı: tek bant siyah-beyaz 15,8 KB/s, dört bant siyah-beyaz 37,7 KB/s, tek bant renkli 40,1 KB/s, dört bant renkli 115,7 KB/s. Tek bant renkli, dört bant siyah-beyazı geçti. Kaçırma oranı her yerde sıfırdı. Rakamların nereden geldiğini unutmayın: kusursuz geometrik kareler, objektifsiz ve hareketsiz. Gerçek bir telefon henüz bunların önüne konmadı.
Kameradan 1920x1080 çözünürlükte saniyede 30 kare istenir; arka kameraya öncelik verilir; Android bu kısıtı reddederse, herhangi bir kameraya düşeriz. Yakalanan her kare, kod çözmeden önce uzun kenarda 1280 px’e küçültülür. Gerçekte önemli olan çözünürlük değil, bir modüle kaç sensör pikselinin düştüğüdür: siyah-beyaz için yaklaşık üç, renk için yaklaşık iki katı gerekir; çünkü telefonun video zinciri genellikle 4:2:0 verir ve her iki renk düzlemini de her iki yönde yarıya indirir. İnce renk ayrıntısı, gerçek bir kameranın yok ettiği ilk şeydir.
Çünkü gönderen cihazın ölçebildiği tek şey, kendi kodlayıcılarının kaç sembol ürettiği ile kendisinden kaçının istendiği arasındaki farktır — iki karış ötede duran bir kamera hakkında değil, bir işlemci hakkında bir ifadedir. Bir dizüstü bilgisayar hiçbir zaman bir basamağı kaçırmaz, bu yüzden „sıfır kaçırma”yı „devam et” diye okuyan bir kontrolcü en üste kadar çıkar ve ekrana saniyede otuz kez değişen dört kod koyar; bunları hiçbir şey tarayamaz. Bu gerçekten bir kez teslim edildi ve bir kişi bunu bir dakikada buldu. Şimdi otomatik mod bir şeritle, siyah-beyaz, 26. sürüm ve saniyede 15 kareyle sınırlandırılmıştır. 15 yuvarlak bir sayı değildir: bir telefon kamerası 30’da kaydeder ve ekranla senkron değildir, bu yüzden bir kare tümüyle yakalanabilmesi için arka arkaya iki pozlama — 67 ms — boyunca gösterilmelidir.
Özel bir şey olmaz ve asıl amaç da budur. Kurtarma için sıra numarası yoktur. Kodlayıcı, kaynak sembollere göre 2x oranında onarım paketleri üretir — bu kodda ölçüldü: %60 kare kaybında yaklaşık 2x K’lik bir set, liste hiçbir zaman ikinci kez gösterilmeden 2 MB’ı kurtarır. Mutlak üst sınır 60.000 pakettir; bunun üstünde gönderen, listeyi daha sık yeniden başlatır; bu da belleğe değil, zamana mal olur. Yine de bir şey yanlış giderse, SHA-256 hash’i bunu yakalar ve aktarım bozuk bir dosya vermek yerine açıkça başarısız olur.
Hayır, ve bu bir eksiklik değildir. Geri dönüş kanalı yoktur — bir ekran ışık yayar ve ışık onayla geri dönmez. Tamamlanma, alıcı cihazda görülür. Başka bir şey iddia eden herhangi bir arayüz yalan söylerdi ve bizde zaten bir kez, ürünün asla sahip olmadığı tam da bu kanıtı sunan bir test oldu: simülasyon, simüle edilen kameranın çözmeyi başardığı şeyden kendi kaçırma oranını hesaplıyordu. İşte bu bir geri dönüş kanalıdır. Bir test ile teslim edilen kod, neyin bilinebileceği konusunda anlaşmıyorsa, yalan söyleyen testtir.
32 MB; daha büyükse seçimde reddedilir. Sınır protokolden gelmiyor, bir tarayıcı sekmesinin belleğinden geliyor: RaptorQ tüm paketleri aynı anda somutlaştırır ve 2x oranında 50 MB’lık bir dosya 150 MB canlı dizi anlamına gelir; bu da bir telefon sekmesini öldürmeye yeter. Kodlama ana iş parçacığında eşzamanlı çalışır; bilgisayarda 32 MB için 2,5 saniye ölçülmüştür. Fiilen taşınan şey dosyanın boyutu değildir: zarf RaptorQ’dan önce gzip ile sıkıştırılır, bu yüzden 1 MB’lık bir tablo birkaç kilobaytlık paketlerdir, 1 MB’lık bir fotoğraf ise bir megabaytlık paketlerdir.
Ne biri, ne öteki. Hesap yok ve abonelik yok. İlk ziyaretten sonra sayfalar ağ olmadan çalışır, çünkü her şey — iki WebAssembly ikili dosyası dahil — kendi alan adından sunulur. Yolda öğrendiğimiz bir şeyden de söz etmeye değer: kayıtlı bir service worker çevrimdışı destek anlamına gelmez. İlk yüklemede sayfa ve kaynakları worker denetimi devralmadan önce getirilir, dolayısıyla onun handler’ı onları hiç görmez. Sayfa kendi kaynaklarını varsaymak yerine Performance API aracılığıyla bildirir.
İllüstratif örnek
Müşteri verisi veya atfedilen ticari sonuçlar olmadan bir kullanım senaryosu.
Bir istasyondaki ya da bir vitrindeki ekran, yoldan geçenlere bir dosya vermelidir — tam sefer saatleri, menü, bir form — kamusal WiFi olmadan, hesap olmadan ve kimse bir şeye basmadan.
Ekran bir karusel çalıştırır: saniyede 12’de 36 kare, sonsuza dek tekrarlanan üç saniyelik bir tur. Yoğunluk karuselin süresi boyunca sabittir, çünkü bir turun uzunluğu korunuyorsa bir tur vaattir. Turun uzunluğu her karede taşınır; bu yüzden ilk kodu yakalayan bir telefon her şeyin ne kadar sürdüğünü hemen bilir.
Yoldan geçen kişi üç saniye çeker ve tarayıcısında SHA-256 ile doğrulanmış 25 KB geri elde eder; tek bir basit siyah-beyaz koddan. Ekran okunmuş olduğunu öğrenmez ve bunun yolu yoktur.
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.
İş birliği olanakları
Kamu bilgilerine, talimatlara veya iletişim bilgilerine erişim için kodlar; uyumlu cihazlar arasında dosyaların optik aktarımı, kurumun güvenlik politikalarının değerlendirilmesiyle birlikte.
Gerçek bir süreç etrafında bir pilot tanımlıyoruz: kullanıcılar, veriler, entegrasyonlar, maliyetler ve kabul kriterleri. Sonucun değerlendirilmesinden sonra genişleme gelir.
Erişilebilirlik, barındırma, veri koruması ve birlikte çalışabilirlik gereksinimlerini belirliyoruz. AGE veya STISC hizmetleriyle herhangi bir bağlantı, uygunluk, erişim ve onayların doğrulanmasını gerektirir.
Bunlar uyarlama senaryolarıdır, mevcut sözleşmeler veya ortaklıklar hakkında beyanlar değildir. Önerilen işlevler projenin çalışma alanında doğrulanır.
Bir pilotu konuşalımonGDPR.md bir web sitesinin kamuya açık yüzeyini denetler: çerezler, izleyiciler, formlar ve bilgilendirme belgeleri.
Kamuya açık platformMegaforms, sesli yanıt ve transkripsiyon dâhil, sohbet biçimli formlarla yanıt toplamayı araştırır.
Geliştirme ve gösterimlerDijital menüler ve QR ile erişilen işlemler için bir platform kuruyoruz.
Geliştirme ve gösterimlerBize sürecinizi anlatın. Neyin kurulmaya değer olduğuna, neyi bağlayabileceğimize ve sonucu nasıl doğrulayacağımıza birlikte karar verelim.