Logo

Kako QR kod zaista funkcionira? Tehnika iza mozaika piksela

29.08.2026 9 min Vrijeme čitanja
Kako QR kod zaista funkcionira? Tehnika iza mozaika piksela

Dovoljan je kratak pokret kamerom pametnog telefona – i već se otvara web stranica, povezuje Wi-Fi ili se vCard sprema u imenik. Ono što u svakodnevici djeluje kao čarolija iznimno je promišljena kombinacija informatike, matematike i optike.

No kako iz duge internetske adrese ili teksta uopće nastaje taj karakterističan crno-bijeli uzorak? Gdje su podaci skriveni u kodu i zašto kamera prepoznaje sadržaj čak i kada je QR kod ukošen ili lagano oštećen?

U ovom članku korak po korak rastavljamo način rada koda za brzi odgovor (QR koda).

1. Osnovno načelo je jednostavno: znakovi postaju nule i jedinice.

Računala govore binarnim jezikom, tj. razumiju isključivo 0 i 1. Prije nego što se informacija može prikazati kao uzorak u QR kodu, mora se stoga najprije pretvoriti u bitove.Kako bi uštedio prostor, softver za QR kodove koristi različite načine kodiranja:

  1. Numerički način: za same znamenke (0–9). Vrlo učinkovit jer se po tri znamenke objedinjuju u deset bitova.
  2. Alfanumerički način: za znamenke, velika slova i odabrane posebne znakove.
  3. Bajtni način: za opće tekstove, mala slova, dijakritičke znakove (UTF-8) i URL-ove.
  4. Kanji način: posebno sažet za japanske znakove.

Pogled iza kulisa pokazuje kako „QR” postaje binarni kod.

Da bismo razumjeli koliko QR kod štedi prostor, pogledajmo alfanumerički način. Svaki znak pritom dobiva fiksnu brojčanu vrijednost (A = 10, B = 11, ..., Q = 26, R = 27).

Kako se svako slovo ne bi moralo pohranjivati zasebno, algoritam uvijek objedinjuje dva znaka.

  1. Vrijednosti Q (26) i R (27) se preračunavaju: $26 \times 45 + 27 = 1197$.
  2. Broj 1197 prikazuje se kao 11-bitni binarni broj: 10010101101.

Tako od dva slova QR nastaje točno 11 bitova od nula i jedinica. Ako na kraju niza ostane jedno slovo, kodira se sa 6 bitova (npr. $Q \rightarrow 26 \rightarrow 011010$).

2. Put od binarnog koda do gotovog slikovnog uzorka

Čim je vaš tekst preveden u niz nula i jedinica, on prolazi kroz nekoliko tehničkih koraka obrade:

[ Vaš unos ] (npr. "https://qrown.io")
│
▼
[ Analiza načina & binarno kodiranje ] (znakovi postaju 0 & 1)
│
▼
[ Zaglavlje & metapodaci ] (dodaje se informacija o duljini podataka & načinu)
│
▼
[ Izračun ispravljanja pogrešaka ] (generiraju se Reed-Solomon kodovi)
│
▼
[ Smještanje u mrežu ] (bitovi se raspoređuju odozdo desno prema gore)
│
▼
[ Maskiranje ] (matematički filtar sprječava ometajuće uzorke)
│
▼
[ Gotov QR kod ] (crno = 1, bijelo = 0)

Korak A: tehnički dodatni podaci i ispravljanje pogrešaka

Niz nula i jedinica koji sadrži vaš sadržaj ne sastoji se samo od njega. Ispred korisnih podataka postavlja se zaglavlje. Ono skeneru otkriva: „Pozor, sada slijedi tekst u bajtnom načinu duljine 25 znakova!”

Zatim matematički postupak, takozvano Reed-Solomon ispravljanje pogrešaka, izračunava dodatne zaštitne bitove. Oni osiguravaju da se kod može pročitati čak i kada je do otprilike 30 % podataka (razina H) prekriveno ili oštećeno (npr. logotipom tvrtke postavljenim u sredinu).

Korak B: raspodjela u mreži (moduli)

Pojedinačni kvadratići u QR kodu zovu se moduli. Načelno vrijedi:

  1. 0 = bijeli modul
  2. 1 = crni modul

Bitovi se međutim ne upisuju jednostavno redak po redak odozgo lijevo prema dolje desno. Popunjavanje podacima počinje dolje desno i vijuga kroz mrežu u uskim stupcima od po dva modula, naizmjence prema gore i prema dolje. Pritom se rezervirana funkcijska područja (poput kutova) automatski preskaču.

Zato u gotovom QR kodu nikada ne možete pokazati na jedan crni kvadratić i reći: „Ovo je ‚h‘ u web adresi.“

Korak C: trik maskiranja (zašto 1 nije uvijek crno)

Kada bi se bitovi crtali izravno, slučajno bi mogli nastati veliki crni blokovi, duge bijele pruge ili zavaravajući uzorci koji zbunjuju softver kamere.

Zato softver preko matrice postavlja uzorak maske. Ukupno postoji osam standardiziranih maski. Matematičkom XOR operacijom maska obrće određene bitove:

  1. 0 postaje 1 (bijelo postaje crno)
  2. 1 postaje 0 (crno postaje bijelo)

Skener na temelju informacija o formatu pokraj kutnih kvadrata prepoznaje koja je maska korištena i pri očitavanju taj korak u djeliću sekunde ponovno poništava.

3. Anatomija QR koda: što znače pojedini uzorci?

Pogleda li se QR kod pobliže, djeluje kao nasumičan mozaik. U stvarnosti je svaki pojedini element smješten strogo prema ISO standardu. Građu možete zamisliti poput anatomije lica. Određena obilježja uvijek se nalaze na istom mjestu kako bi pametni telefon kod prepoznao na prvi pogled.

Klasični QR kod dijeli se na sljedeće glavne zone:

1. Tri velika kutna kvadrata (uzorci za određivanje položaja/Finder Patterns)

  1. Nalaze se gore lijevo, gore desno i dolje lijevo.
  2. Što rade: najupadljiviji su dio QR koda. Ove tri sidrišne točke kameri odmah signaliziraju: „Pozor, ovdje je QR kod!” Softveru munjevito otkrivaju položaj, veličinu i kut nagiba, tako da kamera prepoznaje drži li se pametni telefon ravno ili ukoso.

2. Isprekidane spojne linije (Timing Patterns)

  1. Protežu se između tri kutna kvadrata – vodoravno između gornjeg lijevog i gornjeg desnog, okomito između gornjeg lijevog i donjeg lijevog. Određuju mrežu (veličinu modula); orijentacija dolazi od tri kutna kvadrata.
  2. Što rade: te se linije sastoje od naizmjence crnih i bijelih modula. Djeluju kao ravnalo za skener: na temelju tih točaka softver prebrojava koliko je velik sustav mreže (od verzije 1 s 21 × 21 polja do verzije 40 sa 177 × 177 polja).

3. Mali unutarnji kvadrati (uzorci za poravnanje/Alignment Patterns)

  1. Nalaze se u donjem desnom području, a kod složenih kodova raspoređeni su po cijelom uzorku.
  2. Što rade: ti manji kvadrati služe kao digitalni nišani. Pomažu skeneru ispraviti izobličenja, primjerice kada je QR kod otisnut na zakrivljenoj limenci Cole ili je letak zgužvan.

4. Upravljačka zona (informacije o formatu)

  1. Nalaze se neposredno uz tri velika kutna kvadrata.
  2. Što rade: ovdje se nalaze tehničke upute za skener. U tih nekoliko piksela pohranjene su dvije ključne informacije: 1. koja se razina ispravljanja pogrešaka (L, M, Q ili H) koristi i koji je uzorak maske postavljen preko podataka.

5. Nevidljivi zaštitni okvir (tiha zona/Quiet Zone)

  1. To je potpuno bijeli, neotisnuti rub oko cijelog QR koda.
  2. Funkcija: kako bi kamera mogla čisto zahvatiti vanjske rubove koda, potreban joj je sigurnosni razmak od teksta, slika ili pozadinskih grafika. Taj rub mora biti debeo najmanje četiri modula (širine piksela). Ako tiha zona nedostaje, kamera često odbija skeniranje.

4. Što se događa pri skeniranju na vašem pametnom telefonu?

Kada kameru usmjerite na QR kod, u pozadini se odvijaju sljedeći koraci:

  1. Pretraživanje: kamera u video slici traži tri velika Finder Patterns.
  2. Transformacija: softver izračunava perspektivu i digitalno "ispravlja" sliku koja je eventualno snimljena ukoso.
  3. Uklanjanje maske: sustav mreže očitava informacije o formatu, prepoznaje uzorak maske i poništava masku.
  4. Primjena ispravljanja pogrešaka: eventualne ogrebotine, zamućenja ili prekrivena mjesta matematički se popravljaju.
  5. Dekodiranje: nule i jedinice prema pravilima načina ponovno se pretvaraju u čitljiv tekst, brojeve ili upravljačke naredbe.
  6. Izvršavanje radnje: pametni telefon prepoznaje vrstu podataka (npr. https:// za URL, WIFI: za pristupne podatke ili BEGIN:VCARD za kontakte) i predlaže odgovarajuću aplikaciju.

Tehnički detaljno: objašnjenje najvažnijih pitanja

Treba li za skeniranje QR koda internet?

Ne, za sam postupak skeniranja ne. Pretvaranje piksela u tekst odvija se lokalno na vašem pametnom telefonu. Ako je sadržaj običan tekst, vCard ili Wi-Fi pristupni podaci, sve radi potpuno izvan mreže. Tek kada kod sadrži internetsku adresu (URL) koju želite otvoriti, potrebna vam je podatkovna veza.

Je li QR kod šifriran?

Ne. QR kod je samo kodiran, ali ne i šifriran. Svaki univerzalni skener QR kodova može očitati podatke koje sadrži. Povjerljive informacije poput lozinki, bankovnih podataka ili osobnih PIN-ova stoga nikada ne bi trebale biti nezaštićeno pohranjene u standardnom QR kodu.

Zašto neki QR kodovi izgledaju mnogo sitnije i gušće od drugih?

Što se više podataka pohranjuje izravno u kodu – primjerice dugačak tekst u usporedbi s kratkom poveznicom – to je potrebno više modula. Kod tada prelazi u višu verziju (od verzije 1 s 21 × 21 modula do verzije 40 sa 177 × 177 modula).

Statički vs. dinamički: zašto dinamički kodovi ostaju kompaktniji

  1. Statički QR kodovi: izravno pohranjuju konačno odredište (npr. URL dug 150 znakova). Uzorak postaje vrlo gust i teže se skenira.
  2. Dinamički QR kodovi: pohranjuju samo iznimno kratku poveznicu za preusmjeravanje (npr. qron.ch/12da7). Kod vizualno ostaje krajnje jednostavan i lako se skenira, a stvarno odredište može se na poslužitelju zamijeniti u bilo kojem trenutku, bez ponovnog tiskanja koda.

Kontrolni popis za QR kodove koji rade

Kada izrađujete ili dajete oblikovati vlastite QR kodove, pazite na sljedeće osnove:

  1. Koristite kratke poveznice: koristite dinamičke QR kodove kako bi gustoća modula ostala mala.
  2. Održavajte kontrast: odaberite tamni uzorak na svijetloj podlozi (invertirani kodovi nekim starijim kamerama stvaraju probleme).
  3. Poštujte tihu zonu: ostavite najmanje 4 modula razmaka od teksta, rubova reza ili grafika.
  4. Prilagodite ispravljanje pogrešaka: logotip troši rezervu za ispravljanje pogrešaka – što je logotip veći, to bi razina trebala biti viša. Kod dinamičkih kodova QRown određuje razinu i nakon oblikovanja provjerava mogućnost skeniranja.

Česta pitanja (FAQ)

Od koliko se modula sastoji QR kod?

Najmanji QR kodovi (verzija 1) sastoje se od 21 × 21 modula, dakle 441 polja. Najveća varijanta (verzija 40) ima mrežu od 177 × 177 modula, dakle 31.329 polja.

Može li QR kod sadržavati viruse ili zlonamjerni softver?

Sam QR kod sadrži samo tekst i ne može izravno izvršiti štetni programski kod. Može međutim voditi do pripremljene phishing web stranice ili štetnog preuzimanja. Zato prije otvaranja uvijek provjerite pregled domene na svom pametnom telefonu!

Koji način štedi najviše prostora u QR kodu?

Najučinkovitiji je numerički način (samo brojevi), a slijedi ga alfanumerički način. Bajtni način (za opće URL-ove i posebne znakove) naprotiv zahtijeva najviše prostora po znaku.

Više objava