QR-kode-generator

Skriv inn en lenke, en tekst eller et Wi-Fi-passord, så tegnes QR-koden med det samme. Alt regnes ut i nettleseren din — ingenting sendes til noen server.

 
Versjon
Moduler
Byte brukt
Feilnivå M · byte-modus · alt genereres lokalt i nettleseren

Ingenting forlater maskinen din. Teksten du skriver blir kodet til datakodeord, feilkorreksjonen regnes ut og mønsteret tegnes på et canvas-element — alt sammen i JavaScript på din egen enhet. PNG-filen lages også lokalt når du klikker last ned. Det betyr at du trygt kan lage koder for interne lenker, Wi-Fi-passord og annet du ikke vil sende til en ukjent nettjeneste.

Slik er en QR-kode bygget opp

En QR-kode er ikke et bilde av teksten din — den er et rutenett av moduler, små kvadrater som er enten mørke eller lyse. Hver modul er én bit. Rutenettet finnes i 40 størrelser, kalt versjoner: versjon 1 er 21 × 21 moduler, og hver ny versjon legger til fire moduler i hver retning. Denne generatoren bruker versjon 1 til 10, altså opp til 57 × 57 moduler.

Bare en del av rutenettet er data. Resten er faste mønstre som gjør at kameraet finner koden, retter opp perspektivet og vet hvordan resten skal leses.

Skjematisk QR-kode der søkemønstre, tidsmønster, justeringsmønster, formatinformasjon og dataområde er markert Søkemønster finner koden Formatinfo nivå + maske Lys ramme 4 moduler rundt Tidsmønster annenhver modul Justering retter perspektiv Data + retting alt det øvrige
De tre store kvadratene i hjørnene gjør at kameraet finner koden uansett hvilken vei du holder telefonen. Alt grått er data og feilkorreksjon.

Søkemønstrene

De tre kvadratene i hjørnene har forholdet 1:1:3:1:1 mellom mørke og lyse felt langs en hvilken som helst linje gjennom midten. Det forholdet finnes nesten aldri tilfeldig i naturlige bilder, og det er derfor en telefon kan finne en QR-kode på et sekund midt i en rotete scene. Tre hjørner er nok til å regne ut rotasjon: det fjerde hjørnet mangler med vilje, så leseren vet hvilken vei koden står.

Tidsmønster og justering

Den stiplede raden og kolonnen mellom søkemønstrene veksler mørk-lys-mørk og forteller leseren nøyaktig hvor bred én modul er. De små kvadratene inne i koden — justeringsmønstrene — brukes til å rette opp bøyninger og skrå vinkler. Versjon 1 har ingen; fra versjon 2 kommer det ett, og antallet øker med størrelsen.

Maskering

Store flater med samme farge gjør koden vanskelig å lese, og mønstre som ligner på søkemønsteret kan lure kameraet. Derfor legges det et av åtte faste sjakkmønstre oppe på dataene før koden tegnes. Generatoren prøver alle åtte, gir hver av dem en straffepoengsum etter reglene i ISO/IEC 18004, og beholder den beste. Hvilken maske som ble valgt står i formatinformasjonen ved siden av søkemønstrene, så leseren kan fjerne masken igjen.

Feilkorreksjon: derfor virker en skitten kode

Dataene i en QR-kode deles i kodeord på åtte bit. Til dem legges det ekstra kodeord som regnes ut med Reed-Solomon-koding — den samme matematikken som brukes på CD-plater og i romsonder. Leseren kan bruke de ekstra kodeordene til både å finne og rette feil, uten å vite på forhånd hvor feilene er.

Standarden har fire nivåer. Denne generatoren bruker nivå M, som er kompromisset nesten alle profesjonelle verktøy velger.

Søylediagram over de fire feilkorreksjonsnivåene L, M, Q og H med hvor stor andel av koden som kan ødelegges L 7 % mest plass M 15 % brukes her Q 25 % H 30 % tåler mest andel som kan ødelegges
Høyere nivå betyr flere rettekodeord og dermed mindre plass til data. Samme tekst på nivå H krever ofte to versjoner større kode enn på nivå M.

Feilkorreksjonen er også grunnen til at logo midt i koden fungerer. Dekker du under omtrent 10 prosent av flaten på nivå M, klarer leseren fortsatt å rekonstruere dataene — men marginen din mot skitt, refleks og dårlig trykk krymper tilsvarende. Skal du legge inn logo, bør du bruke nivå Q eller H og teste med flere telefoner.

Hvor mye får du plass til?

Kapasiteten avhenger av versjon, feilnivå og hva slags tegn du bruker. Rene tall pakkes tettest, store bokstaver og tall i alfanumerisk modus litt mindre tett, og alt annet går i byte-modus. Denne generatoren bruker byte-modus med UTF-8, som håndterer norske tegn — men merk at æ, ø og å tar to byte hver.

VersjonModulerTegn (byte, nivå M)Typisk innhold
121 × 2114Kort kode eller kortnummer
225 × 2526skriving.no/qr-kode
329 × 2942Vanlig kort nettadresse
433 × 3362Adresse med undermappe
641 × 41106Lenke med sporingsparametre
849 × 49152Kort tekstmelding
1057 × 57213Wi-Fi-oppsett eller kontaktkort

Generatoren velger automatisk den minste versjonen som rommer teksten din. Det er verdt å merke seg hvor mye kortere lenker lønner seg: en adresse på 40 tegn gir en kode med 33 × 33 moduler, mens den samme adressen med et sporingsvedheng på 60 tegn ekstra dytter deg opp i 49 × 49. På et visittkort er forskjellen mellom «skanner på første forsøk» og «hold telefonen nærmere».

Hva kan du legge i koden?

En QR-kode inneholder ren tekst. Det er telefonen som tolker teksten og foreslår en handling når den kjenner igjen et format. Disse er støttet på både iPhone og Android:

FormålSlik skriver du detHva skjer
Nettsidehttps://www.skriving.noÅpner nettleseren
Telefontel:+4722334455Klart til å ringe
E-postmailto:post@eksempel.noNy e-post
SMSSMSTO:+4722334455:HeiFerdig utfylt melding
Wi-FiWIFI:T:WPA;S:Nettnavn;P:passord;;Kobler til nå uten å taste
Posisjongeo:59.9139,10.7522Åpner kartet
Ren tekstHva som helstVises som tekst

Wi-Fi-formatet er det mest undervurderte. En liten kode på kjøleskapet eller i resepsjonen sparer alle for å lese opp et passord med små og store bokstaver. Bruk T:WPA for vanlige passordbeskyttede nett og T:nopass for åpne gjestenett. Har navnet eller passordet semikolon, komma eller kolon i seg, må tegnet ha en omvendt skråstrek foran seg.

Statisk eller dynamisk QR-kode?

Koden du lager her er statisk: teksten ligger fysisk i mønsteret. Ingen kan slå den av, den koster ingenting, og den fungerer om ti år. Ulempen er at innholdet ikke kan endres etter at koden er trykket.

De fleste kommersielle QR-tjenester selger dynamiske koder. Da inneholder koden en kort lenke til leverandørens server, som sender brukeren videre. Det gir statistikk og mulighet til å endre målet — men det betyr også at hver eneste skanning går gjennom en tredjepart som logger tidspunkt, omtrentlig posisjon og enhetstype, og at koden slutter å virke den dagen abonnementet utløper eller selskapet legges ned. På plakater og produkter som skal leve lenge, er en statisk kode til din egen faste adresse som regel det tryggeste valget.

Om QR-svindel: klistrelapper med falske QR-koder over ekte koder på parkeringsautomater og ladestasjoner er blitt vanlig også i Norge. Sjekk alltid adressen som dukker opp før du trykker, og vær spesielt skeptisk hvis en kode ber om kortnummer eller BankID. Kjenn igjen omdirigeringstjenester: en QR-kode på en kommunal automat bør ikke sende deg til et ukjent domene.

Praktiske råd for trykk

Spørsmål og svar

Sendes teksten min til en server?

Nei. Hele kodingen skjer i JavaScript i nettleseren din: teksten blir til datakodeord, Reed-Solomon-koden regnes ut lokalt, og mønsteret tegnes på et canvas-element. Ingenting av det du skriver forlater maskinen, og PNG-filen lages også lokalt når du klikker last ned.

Utløper QR-koden min?

Nei. Dette er en statisk QR-kode: selve lenken eller teksten ligger fysisk i mønsteret. Den virker så lenge innholdet den peker på finnes. Tjenester som selger «dynamiske» QR-koder legger inn en kort omdirigeringslenke som de eier — da slutter koden å virke hvis abonnementet ditt løper ut.

Hvor mye tekst får plass i en QR-kode?

Denne generatoren bruker versjon 1 til 10 med feilkorreksjonsnivå M, som gir plass til 213 byte — rundt 213 vanlige tegn, eller færre hvis du bruker æ, ø og å, som tar to byte hver. En vanlig nettadresse på 30 til 60 tegn havner på versjon 3 eller 4 og blir en fin, lesbar kode.

Hvorfor blir koden tettere når jeg skriver mer?

Fordi generatoren automatisk velger den minste versjonen som rommer teksten. Versjon 1 er 21 × 21 moduler, versjon 10 er 57 × 57. Flere moduler på samme fysiske flate betyr mindre ruter, og da må kameraet nærmere. Korte lenker gir alltid en kode som er lettere å skanne.

Hvor stor må QR-koden være på trykk?

Tommelfingerregelen er at bredden bør være minst en tidel av skanneavstanden. Skal koden leses fra 30 cm, holder 3 cm. På en plakat som leses fra 3 meter trenger du minst 30 cm. Legg alltid inn den lyse rammen rundt koden — den er en del av standarden, ikke marg.

Hvorfor virker koden selv om den er skitten eller delvis dekket?

QR-koder inneholder Reed-Solomon-feilkorreksjon. På nivå M er omtrent 15 prosent av kodeordene reservert til retting, så leseren kan rekonstruere data selv om en del av mønsteret er ødelagt. Det er også derfor mange klarer å legge en liten logo midt i koden uten at den slutter å virke.

Andre verktøy