Geri qayıt
QR kodlarda ditherenmə: işləyən kodun içində fotoşəkil gizlətmək
SiTech Team2 წთ. საკითხავი

QR kodlarda ditherenmə: işləyən kodun içində fotoşəkil gizlətmək

Proqramçı Endryu Teylor izah edir ki, xətanın yayılması və iki mərhələli üsul QR koda birbitlik portret yerləşdirməyə imkan verir və kod skan olunmağa davam edir.

QR kod, içində gizlədilmiş fotoşəkillə belə skan oluna bilər — qaydaları necə əyməyi bilirsinizsə. Ditherenməli QR kod generatorunun arxasındakı proqramçı Endryu Teylor, adi kodları birbitlik portretlərə çevirən alətinin texnikasını izah edən bələdçi dərc edib; mənbə kodu Codeberg-də açıqdır.

QR kodun anatomiyası

QR kod iki hissəyə bölünən kvadratlar şəbəkəsidir: skanerin kodu tapmasına və oriyentasiyasını təyin etməsinə kömək edən qabarıq formalar — funksiya naxışları — və mesajla başlıq baytlarının saxlandığı data modulları. Data modulları yalnız skaner funksiya naxışlarına bağlandıqdan sonra oxunduğu üçün onları dəyişmək mümkündür — brendlərin fərqli QR kodlar çap etməsinin səbəbi budur — amma hər dəyişiklik oxunma etibarlılığından bir az güzəşt edir.

Səs-küyün içindəki fotoşəkil

Teylorun istinad etdiyi yazıda Deyv Riçesonun göstərdiyi üsul hər modulu kiçiltməkdir: hər pikseli 3×3 şəbəkəyə bölmək, kodlanmış biti ortadakı xanaya qoymaq, digər səkkiz xananı isə şəkilə ayırmaq. Nəticədə aşağı ayırdetməli birbitlik şəkil alınır və üzərində duz-istiot səs-küyü olur; çünki doqquz pikseldən biri yenə də data daşıyır.

Ditherenmə və xətanın yayılması

Yarımtərzlər adətən ditherenmə ilə yaradılır — məsələn, ara çalarları qara-ağ şahmat naxışı ilə təqlid edən Bayer naxışı. Xətanın yayılması daha irəli gedir: piksel hədlə müqayisə edilərkən yaranan xəta hələ qərarlaşdırılmamış qonşu piksellərə paylanır; beləliklə hər sahə adi ditherenmədən daha çox öz həqiqi parlaqlığına yaxınlaşır və daha nizamsız toxuma gözü daha az yorur. Teylorun nümunəsi Mikelancelonun «David» əsərinin Floyd-Ştaynberq alqoritmi ilə işlənmiş 147×147 birbitlik təsviridir.

Data modullarının parıldamaması üçün o, yayılmanı iki dəfə işlədir. Birinci mərhələdə modullara məcburi rənglər verilir və yaranan xəta ətrafdakı səkkiz pikselə yayılır — tünd sahədə piksel tam ağ olmalı olduqda xəta 95%-ə çata bilər — ikinci mərhələ isə adi qaydada keçir. Teylorun sözlərinə görə, təsviri oxunaqlı edən məhz bu ilk xətanın örtülməsidir.

Qiyməti: skan olunma qabiliyyəti

Görünüşlə etibarlılıq arasında güzəşt var. Noutbuk ekranından telefonunuzla oxunan kod, yad adamın telefonunda pis işıqda çapdan oxunmaya bilər. Generator ayrıca kənar boşluğu olmayan xırda təsvirlər verir; skanerlərə isə sakit zona lazımdır. Brauzerlər böyüdülmüş təsvirləri, CSS-də image-rendering təyin edilməsə, bulanıqlaşdırır. Kənar boşluğun rəngi tapıcı naxışların fonuna uyğun olmalıdır — adətən ağ, lakin tərs çevrilmiş QR kodlar qara tələb edir.

SSiTech

SiTech — AI ilə gücləndirilmiş veb hazırlanması

Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.