Miten QR-koodi toimii ja mitä siihen oikeasti mahtuu
QR-koodi on tapa kirjoittaa tekstiä ruutuina, ja siinä on aina mukana korjausdataa vaurioiden varalle. Käymme läpi kuvion osat, kapasiteetit merkkeinä sekä valintasäännön, jolla päätät printtikoon ja virheenkorjaustason ilman arvailua.
Lyhyt vastaus: QR-koodi on kaksiulotteinen tapa kirjoittaa tekstiä ruutuina. Puhelin ei "tunnista" koodia kuvana vaan etsii siitä kolme isoa neliötä, päättelee niiden perusteella kuvion asennon ja koon, lukee ruudut biteiksi ja purkaa bitit merkeiksi. Koodissa on aina mukana ylimääräistä korjausdataa, joten osa kuviosta saa olla likainen, naarmuinen tai peitossa ja koodi lukeutuu silti.
Tässä käydään läpi kaksi asiaa, jotka ratkaisevat käytännössä: paljonko koodiin mahtuu ja miten paljon vahinkoa se kestää. Lopussa on valintasääntö, jolla päätät printtikoon ja virheenkorjaustason ilman arvailua.
Mistä QR-koodin kuvio koostuu?
QR-koodin kuvio koostuu kuudesta osasta, joilla on kullakin oma tehtävänsä: kolmesta hakukuviosta kulmissa, kohdistuskuvioista, ajoitusviivoista, muotoilutiedosta, itse datasta korjauskoodeineen sekä tyhjästä reunuksesta kuvion ympärillä. Kuvio ei siis ole satunnainen ruudukko vaan rakenne, jossa jokainen alue tekee eri asian lukuhetkellä. Osat kannattaa tunnistaa, koska ne selittävät suoraan sen, miksi koodia ei saa rajata, venyttää eikä painaa kiinni muuhun sisältöön: yhden osan vahingoittuminen estää lukemisen kokonaan, vaikka data-alue olisi täysin ehjä. Alla jokainen osa erikseen ja se, mitä sen rikkoutumisesta seuraa käytännössä.
Kolme hakukuviota. Isot neliöt kolmessa kulmassa. Lukija etsii ne ensimmäisenä. Niistä se päättelee, missä koodi on, kuinka iso se on ja miten päin se on. Tämän takia koodin voi skannata ylösalaisin ja vinosta kulmasta.
Kohdistuskuviot. Pienemmät neliöt, joita on versiosta 2 alkaen. Ne korjaavat vääristymää, kun koodi on kaarevalla pinnalla tai kuvattu kulmasta.
Ajoitusviivat. Vuorottelevat mustat ja valkoiset ruudut kahden hakukuvion välillä. Niistä lukija laskee, kuinka monta ruutua koodissa on eli minkä version koodi on.
Muotoilutieto. Hakukuvioiden vieressä on kaistale, joka kertoo käytetyn virheenkorjaustason ja maskin. Se luetaan ennen varsinaista dataa.
Data ja virheenkorjaus. Loput ruudut. Näissä on sekä itse sisältö että korjauskoodi, jolla vaurioitunut sisältö palautetaan.
Maskaus on osa, jota ei näe mutta joka vaikuttaa. Koodia luodessa datalle kokeillaan kahdeksaa eri kuviointia ja valitaan se, jossa mustaa ja valkoista on tasaisimmin eikä synny suuria yhtenäisiä laikkuja tai hakukuvioiden näköisiä alueita. Tämän takia kaksi koodia, joissa on täsmälleen sama sisältö, voivat näyttää täysin erilaisilta eri työkaluilla tehtynä. Molemmat ovat oikein.
Tyhjä reunus. Koodin ympärille kuuluu jäädä tyhjää tilaa, standardin mukaan neljän ruudun verran. Tämä on yleisin syy siihen, että muuten oikein tehty koodi ei lukeudu. Taittaja rajaa koodin tiukasti kuvan reunaan tai laittaa sen kiinni tekstiin, ja lukija ei enää löydä kuvion rajaa.
Versiot ja moduulit: kuinka iso koodi on?
QR-koodin koko ilmoitetaan versionumerona 1–40, ja versio kertoo montako moduulia eli ruutua koodissa on sivullaan. Yhden moduulin fyysinen koko ei siis ole kiinteä: sama versio voi olla senttimetrin tai metrin levyinen. Versio 1 on 21 × 21 moduulia, ja jokainen seuraava versio lisää neljä moduulia sivulle, joten versio 40 on 177 × 177 moduulia. Käytännön seuraus on tärkeä ja usein yllättävä: kun lisäät sisältöä koodiin, koodi ei kasva paperilla vaan sen ruudut pienenevät. Siksi sisällön pituus on paperikoon ohella se toinen säädin, joka ratkaisee lukuvarmuuden.
Versio 1 on 21 × 21 moduulia. Jokainen seuraava versio lisää neljä moduulia sivulle, joten versio 2 on 25 × 25, versio 3 on 29 × 29 ja niin edelleen. Versio 40 on 177 × 177 moduulia.
Tästä seuraa käytännön asia, joka yllättää. Kun lisäät sisältöä koodiin, koodi ei kasva paperilla vaan sen ruudut pienenevät. Sama viiden sentin tarra, jossa on pitkä osoite, sisältää paljon pienempiä ruutuja kuin sama tarra lyhyellä osoitteella. Pienemmät ruudut vaativat tarkemman painojäljen ja lähempää skannaamisen.
Siksi lyhyt osoite ei ole kosmeettinen valinta. Se on suoraan lukuvarmuutta.
Kannattaa myös huomata, että versio valitaan automaattisesti. Et yleensä valitse sitä itse, vaan työkalu ottaa pienimmän version, johon sisältö ja valittu virheenkorjaustaso mahtuvat. Käytännössä siis sinä säädät kahta asiaa — sisällön pituutta ja virheenkorjaustasoa — ja versio seuraa niistä.
Neljä tallennustapaa: mitä koodiin mahtuu?
QR-standardi määrittelee useita tapoja pakata merkit biteiksi, ja neljä niistä on yleisessä käytössä: numeerinen, alfanumeerinen, tavu- ja kanji-tila. Ne eroavat tehokkuudeltaan huomattavasti, eli sama merkkimäärä vie eri määrän tilaa sen mukaan, mihin tilaan sisältö mahtuu. Numeerinen tila on tiivein ja osaa vain numerot. Alfanumeerinen osaa 45 merkkiä, tavutila mitä tahansa mutta suurimmalla tilankulutuksella, ja kanji-tila japanilaisia merkkejä. Valinta tapahtuu automaattisesti sen mukaan, mitä koodiin kirjoitat — ja juuri siksi sisällön kirjoitusasu vaikuttaa koodin tiheyteen. Alla tilat tarkemmin sekä kapasiteetit ja yksi temppu, jolla osoitteen saa mahtumaan tiiviimpään tilaan.
Numeerinen tila osaa vain merkit 0–9 ja on tiivein. Alfanumeerinen tila osaa 45 merkkiä: numerot, ISOT kirjaimet A–Z, välilyönnin ja merkit $ % * + - . / :. Tavutila osaa mitä tahansa, myös ääkköset ja pienet kirjaimet, mutta vie eniten tilaa merkkiä kohti. Kanji-tila on japanilaisille merkeille.
Suurimmat kapasiteetit saavutetaan versiolla 40 matalimmalla virheenkorjauksella. Numeerisessa tilassa mahtuu 7 089 numeroa, alfanumeerisessa 4 296 merkkiä, tavutilassa 2 953 tavua ja kanji-tilassa 1 817 merkkiä. Pienimmässä versiossa 1 vastaavat luvut ovat 41, 25 ja 17.
Tästä seuraa hyödyllinen temppu, jota harva käyttää. Verkko-osoite kirjoitettuna ISOILLA kirjaimilla mahtuu alfanumeeriseen tilaan, joka on selvästi tiiviimpi kuin tavutila. Pienet kirjaimet pakottavat tavutilaan. Käytännössä HTTPS://ESIMERKKI.FI/MENU tuottaa pienemmän ja siten helpommin luettavan koodin kuin sama osoite pienillä kirjaimilla.
Varaus tähän: verkkotunnus ei ole kirjainkoosta riippuvainen, mutta polku palvelimella voi olla. Jos palvelimesi erottelee ison ja pienen kirjaimen polussa, tee osoitteesta sellainen että se toimii isoilla kirjaimilla, tai ohjaa isokirjaiminen versio oikeaan. Testaa aina ennen painatusta.
Virheenkorjaus: miksi likainen koodi lukeutuu?
Likainen tai osittain peittynyt QR-koodi lukeutuu siksi, että koodiin kirjoitetaan sisällön lisäksi korjausdataa. Jos osa koodista on vaurioitunut, lukija laskee puuttuvat bitit takaisin tuosta korjausdatasta eikä lukeminen keskeydy. Tasoja on neljä — L, M, Q ja H — ja ne valitaan koodia luotaessa. Mitä korkeampi taso, sitä enemmän vahinkoa koodi kestää ja sitä vähemmän tilaa jää itse sisällölle samassa koodissa. Vaihtokauppa on siis suora, ja se ratkaisee sekä koodin tiheyden että sen, mahtuuko keskelle logo. Alla taulukko tasoista ja sen jälkeen se, mitä virheenkorjaus ei korjaa.
| Taso | Kestää vaurioita noin | Kapasiteetti tavutilassa, versio 40 | Mihin sopii |
|---|---|---|---|
| L | 7 % | 2 953 tavua | Näyttö, suojattu pinta, mahdollisimman pieni koodi |
| M | 15 % | 2 331 tavua | Yleiskäyttö: esitteet, käyntikortit, ruokalistat |
| Q | 25 % | 1 663 tavua | Kuluva pinta, pöytäteline, tarra tiskillä |
| H | 30 % | 1 273 tavua | Ulkokäyttö, teollinen ympäristö, koodi jossa on logo |
Vaihtokauppa on suora. Mitä enemmän korjausdataa, sitä vähemmän tilaa sisällölle samassa koodissa. Sama sisältö korkeammalla tasolla tarkoittaa isompaa versiota eli tiheämpiä ruutuja samalla paperikoolla.
Tämä on syy siihen, että logon lisääminen keskelle vaatii tason nostoa. Logo peittää dataa, ja virheenkorjaus paikkaa sen vain rajaan asti. Jos peität yli kymmenen prosenttia pinta-alasta ja käytät tasoa L, koodi ei lukeudu. Sama logo tasolla H lukeutuu yleensä hyvin. Prosenttiluvut eivät myöskään ole tarkkoja peittoprosentteja vaan koodisanoista laskettuja, joten ainoa luotettava tapa on kokeilla oikealla laitteella.
Kannattaa vielä erottaa kaksi asiaa toisistaan. Virheenkorjaus auttaa silloin, kun osa ruuduista luetaan väärin: koodi on naarmuinen, siinä on kahvitahra tai sen päällä on tarra. Se ei auta lainkaan silloin, kun lukija ei löydä koodia ollenkaan. Puuttuva tyhjä reunus, katkaistu hakukuvio tai liian vähäinen kontrasti kaatavat lukemisen ennen kuin korjausdataa ehditään edes käyttää. Siksi taso H ei korvaa huolimatonta taittoa.
Valintasääntö: printtikoko ja virheenkorjaustaso
Printtikoon ja virheenkorjaustason voi valita säännöllä ilman arvailua, ja tämä on se osa sivusta, jonka voi ottaa käyttöön suoraan. Sääntö perustuu kahteen kysymykseen: mistä etäisyydeltä koodi luetaan ja kuluuko pinta, jolla se on. Ensimmäinen antaa vähimmäiskoon suhteella yksi kymmenesosa lukuetäisyydestä, toinen antaa virheenkorjaustason. Niiden päälle tulee neljä tarkennusta: logo tai värillinen tausta nostaa tasoa, osoitteen lyhentäminen kannattaa aina ennen koon kasvattamista, testaus tehdään useammalla laitteella ja valaistuksella, ja painoon menee vektori eikä pikselikuva. Alla kaikki kuusi kohtaa peräkkäin.
- Mistä etäisyydeltä koodi luetaan?Yleinen nyrkkisääntö alalla on suhde 1:10. Jaa suunniteltu lukuetäisyys kymmenellä ja tee koodista vähintään sen kokoinen. Puolen metrin päästä luettava koodi on siis vähintään 5 cm leveä. Kolmen metrin päästä luettava kyltti tarvitsee 30 cm koodin. Tämä on lähtökohta, ei laki — testaa lopputulos.
- Kuluuko pinta?Näyttö tai suojassa oleva paperi: taso M riittää. Pöytäteline, tiskitarra, ovitarra sisällä: taso Q. Ulkona, kosteassa, likaisessa tai kuluvassa paikassa: taso H.
- Onko koodissa logo tai värillinen tausta?Nosta taso vähintään yhtä pykälää ylemmäs kuin edellinen kohta antoi. Pidä kontrasti korkeana: tumma kuvio vaalealla pohjalla, ei päinvastoin, koska osa lukijoista olettaa tumman kuvion.
- Lyhennä osoite ennen kuin nostat kokoa.Sisällön lyhentäminen kasvattaa ruutuja tehokkaammin kuin paperin kasvattaminen. Lyhyt osoite omassa domainissa on paras yksittäinen keino tehdä koodista lukuvarma.
- Testaa kolmella laitteella ja kahdella valaistuksella.Uusi iPhone, uusi Android ja yksi vanha puhelin. Kirkas valo ja hämärä. Skannaa myös vinosta kulmasta, koska asiakas tekee niin.
- Ota painoon vektori.SVG tai PDF, ei pikselikuvaa. Pikselikuva sumenee suurennettaessa ja sumentunut moduulireuna on virhelähde, jota virheenkorjaus joutuu paikkaamaan turhaan.
Jos noudatat näitä kuutta kohtaa, käytännössä kaikki tavalliset lukuvirheet katoavat. Koodin voi luoda millä tahansa työkalulla, myös meidän QR-koodigeneraattorillamme, joka tekee koodin selaimessa eikä lähetä sisältöä minnekään.
Mitä QR-koodi ei tee?
QR-koodi ei ole linkki, sillä ei ole omistajaa eikä se ole turvallisuusominaisuus — se on pelkkä kirjoitusasu, ja kaikki merkitys on siinä, mitä siihen on kirjoitettu. Koodin sisältöä ei ole allekirjoitettu eikä salattu, ja kuka tahansa voi tehdä koodin, jossa lukee mitä tahansa. Koodi ei myöskään kerro sinulle mitään skannausten määrästä, ellet järjestä mittausta erikseen, koska skannaus on tavallinen sivulataus siinä missä mikä tahansa muu. Nämä kolme rajoitusta kannattaa tietää ennen kuin koodi päätyy julkiseen tilaan tai kampanjan mittariksi. Alla jokainen erikseen ja se, mitä niistä seuraa käytännössä.
Koodi ei myöskään ole turvallisuusominaisuus. Sen sisältöä ei ole allekirjoitettu eikä salattu, ja kuka tahansa voi tehdä koodin, jossa lukee mitä tahansa. Tämän takia puhelimet näyttävät osoitteen ennen avaamista. Jos koodi on julkisessa tilassa, kannattaa käyttää omaa verkkotunnusta, jotta asiakas näkee tutun osoitteen ennen kuin painaa.
Koodi ei myöskään kerro sinulle mitään, ellet järjestä mittausta erikseen. Skannaus on tavallinen sivulataus. Jos haluat tietää montako kertaa koodia luettiin, laita osoitteeseen kampanjatunniste tai käytä omaa uudelleenohjausta, jonka lokit näet itse.
Milloin QR-koodia EI kannata käyttää?
QR-koodia ei kannata käyttää viidessä tilanteessa, ja väärässä paikassa se on pelkkä tyhjä ruutu materiaalissa. Ne ovat: sisältö mahtuisi kirjoitettuna koodin viereen, koodi on liikkuvassa kohteessa tai näkyy vain hetken, kohdesivu ei toimi puhelimella, koodi on painettu jonkun toisen omistamaan osoitteeseen, tai koodin toisessa päässä ei ole vielä mitään valmista. Kolme ensimmäistä ovat käytännön esteitä, joissa asiakas ei ehdi tai jaksa skannata. Kaksi viimeistä ovat omistajuus- ja sisältökysymyksiä, jotka eivät korjaannu tekniikalla. Käy viisi kohtaa läpi ennen kuin lisäät koodin painomateriaaliin.
Kun sisältö mahtuu itse koodin viereen. Puhelinnumero, aukioloaika tai kolmen sanan ohje kannattaa kirjoittaa tekstinä. Skannaus on aina hitaampi kuin lukeminen.
Kun koodi on liikkuvassa kohteessa tai näkyy vain hetken. Ohiajavan auton kyljessä tai muutaman sekunnin videoruudussa oleva koodi jää skannaamatta lähes aina.
Kun kohdesivu ei toimi puhelimella. Jos koodi vie raskaalle sivulle, joka latautuu hitaasti tai vaatii sisäänkirjautumisen, koodi tuottaa pettymyksiä. Korjaa ensin kohdesivu, sitten vasta painata koodi.
Kun kohde vaihtuu usein ja koodi on painettu jonkun toisen osoitteeseen. Silloin ongelma ei ole tekninen vaan omistajuuskysymys. Se on käsitelty erikseen jutussa domainin omistajuudesta.
Kun tavoite on kanta-asiakkuus mutta mitään ei ole toisessa päässä. Koodi tiskillä ilman toimivaa leimakorttia on vain ruutu, joka avaa sivun. Rakenna sisältö ensin. Mitä toteutus maksaa, lukee hinnastossa.
Usein kysyttyä
Kuinka paljon tekstiä QR-koodiin mahtuu?
Enimmillään 7 089 numeroa, 4 296 alfanumeerista merkkiä tai 2 953 tavua, kun käytetään suurinta versiota 40 ja matalinta virheenkorjaustasoa. Käytännön koodeissa määrä on paljon pienempi, koska iso versio tarkoittaa hyvin tiheitä ruutuja. Verkko-osoitteelle sopiva pituus on muutamia kymmeniä merkkejä.
Miksi koodi ei lukeudu, vaikka se näyttää oikealta?
Kolme yleisintä syytä ovat liian pieni tyhjä reunus, liian pieni koodi lukuetäisyyteen nähden ja liian matala kontrasti. Neljäs on logo, joka peittää dataa enemmän kuin valittu virheenkorjaustaso kestää. Tarkista nämä tässä järjestyksessä.
Voiko QR-koodin värittää?
Voi, mutta kontrastin pitää säilyä korkeana ja kuvion pitää olla taustaa tummempi. Vaalea kuvio tummalla pohjalla eli käänteinen koodi toimii osalla lukijoista ja epäonnistuu toisilla. Gradientit ja kuviolliset taustat ovat yleisin syy siihen, että koodi toimii suunnittelijan näytöllä mutta ei painettuna.
Mikä virheenkorjaustaso kannattaa valita?
Taso M on hyvä oletus painetulle materiaalille. Nosta tasoon Q, jos koodi on kuluvalla pinnalla kuten pöytätelineessä tai tiskillä, ja tasoon H, jos koodi on ulkona tai siinä on logo. Muista että korkeampi taso vie tilaa sisällöltä.
Toimiiko QR-koodi ilman nettiyhteyttä?
Koodin lukeminen toimii aina, koska sisältö on koodissa itsessään. Nettiyhteyttä tarvitaan vain, jos sisältö on verkko-osoite ja se halutaan avata. Koodiin voi kirjoittaa myös pelkkää tekstiä, yhteystiedot tai wifi-tunnukset, jolloin mitään yhteyttä ei tarvita.
Lue seuraavaksi
- Aktivoi QR-koodi kampanjassa — näin näet skannaukset kanavittain
- Luo QR-koodi yrityskäyttöön: staattinen vai dynaaminen koodi
- QR-koodi-generaattorin valinta: miten teet koodin, joka kestää vuosia
- Ilmainen QR-koodi: mitä siinä oikeasti voi mennä pieleen
- QR-koodi ravintolan pöydässä — oikea koko, kontrasti ja paikka
- QR-koodi yrityksen markkinoinnissa — neljä toimivaa käyttöä ja kolme turhaa
Lue myös: ajanvarausjärjestelmien hinnat · verkkosivut yritykselle · sovelluskehitys iOS ja Android · ohjelmistokehitys · CRM-järjestelmä · IT-palvelut yrityksille · toiminnanohjausjärjestelmä · iOS-sovellus App Storeen