Black Friday-veckorna: alla abonnemang 40 % billigare! 40 % rabatt på alla betalda planer · gäller till 30.11.2026 Se priser →
Logo

Hur fungerar en QR-kod egentligen? Tekniken bakom pixelmosaiken

29.08.2026 9 min Lästid
Hur fungerar en QR-kod egentligen? Tekniken bakom pixelmosaiken

En snabb skanning med mobilkameran räcker – och en webbplats öppnas, wifi-nätverket ansluts eller en vCard sparas i adressboken. Det som verkar vara magi i vardagen är i själva verket en extremt genomtänkt kombination av datavetenskap, matematik och optik.

Men hur blir en lång webbadress eller en textsnutt egentligen till detta karakteristiska svartvita mönster? Var i koden döljer sig data, och varför känner kameran igen innehållet även när QR-koden är lutad eller lätt skadad?

I den här artikeln går vi steg för steg igenom hur Quick Response-koden (QR-koden) fungerar.

1. Grundprincipen är enkel: Tecken omvandlas till nollor och ettor.

Datorer talar binärt, det vill säga de förstår bara 0 och 1. Innan information kan visas som ett mönster i QR-koden måste den därför först omvandlas till bitar. För att spara lagringsutrymme använder QR-programvaran olika kodningslägen:

  1. Numeriskt läge: Endast för siffror (0–9). Mycket effektivt, eftersom tre siffror slås ihop till tio bitar.
  2. Alfanumeriskt läge: För siffror, versaler och utvalda specialtecken.
  3. Byteläge: För allmän text, gemener, å, ä, ö och andra specialtecken (UTF-8) samt URL:er.
  4. Kanjiläge: Särskilt komprimerat för japanska tecken.

En titt bakom kulisserna visar hur ”QR” blir binär kod.

För att förstå hur utrymmessnål en QR-kod är tittar vi på det alfanumeriska läget. Där tilldelas varje tecken ett fast talvärde (A = 10, B = 11, ..., Q = 26, R = 27).

För att slippa lagra varje bokstav för sig slår algoritmen alltid ihop två tecken.

  1. Värdena för Q (26) och R (27) räknas ut: $26 \times 45 + 27 = 1197$.
  2. Talet 1197 skrivs som ett binärt tal med 11 bitar: 10010101101.

De två bokstäverna QR blir alltså exakt 11 bitar av nollor och ettor. Om en enda bokstav blir kvar i slutet av en sträng kodas den med 6 bitar (t.ex. $Q \rightarrow 26 \rightarrow 011010$).

2. Vägen från binär kod till det färdiga bildmönstret

När din text har översatts till en sträng av nollor och ettor går den igenom flera tekniska bearbetningssteg:

[ Din inmatning ] (t.ex. ”https://qrown.io”)
│
▼
[ Lägesanalys & binär kodning ] (Tecken omvandlas till 0 och 1)
│
▼
[ Header & metadata ] (Information om datalängd och läge läggs till)
│
▼
[ Beräkning av felkorrigering ] (Reed-Solomon-koder genereras)
│
▼
[ Placering i rutnätet ] (Bitarna fördelas från nedre högra hörnet och uppåt)
│
▼
[ Maskering ] (Ett matematiskt filter förhindrar störande mönster)
│
▼
[ Färdig QR-kod ] (Svart = 1, vitt = 0)

Steg A: Extra tekniska data och felkorrigering

Strängen av nollor och ettor med ditt innehåll är inte den enda delen av koden. Före nyttolasten placeras en header. Den säger till skannern: ”Obs, här kommer en text i byteläge med en längd på 25 tecken!”

Därefter beräknar en matematisk metod – så kallad Reed-Solomon-felkorrigering – extra paritetsbitar. De ser till att koden fortfarande kan läsas även om upp till ungefär 30 % av data (nivå H) är täckt eller skadad (t.ex. av en företagslogga i mitten).

Steg B: Fördelning i rutnätet (moduler)

De enskilda rutorna i QR-koden kallas moduler. Som grundregel gäller:

  1. 0 = vit modul
  2. 1 = svart modul

Bitarna skrivs dock inte bara in rad för rad från övre vänstra till nedre högra hörnet. Datakodningen börjar i nedre högra hörnet och slingrar sig genom rutnätet i smala kolumner om två, omväxlande uppåt och nedåt. Reserverade funktionsområden (som hörnen) hoppas automatiskt över.

Därför kan du aldrig peka på en enskild svart ruta i den färdiga QR-koden och säga: ”Det här är ’h’ i webbadressen.”

Steg C: Maskeringstricket (varför 1 inte alltid är svart)

Om bitarna ritades direkt skulle stora svarta block, långa vita ränder eller vilseledande mönster kunna uppstå av en slump och förvirra kameran.

Därför lägger programvaran ett maskeringsmönster över matrisen. Det finns totalt åtta standardiserade masker. Med en matematisk XOR-operation inverterar masken vissa bitar:

  1. 0 blir 1 (vitt blir svart)
  2. 1 blir 0 (svart blir vitt)

Skannern använder formatinformationen bredvid hörnkvadraterna för att se vilken mask som användes, och vänder på det steget på en bråkdel av en sekund vid avkodningen.

3. En QR-kods anatomi: Vad betyder de olika mönstren?

Tittar du närmare på en QR-kod ser den ut som en slumpmässig mosaik. I verkligheten är dock varje enskilt element placerat strikt enligt ISO-standarden. Du kan tänka på uppbyggnaden som ett ansiktes anatomi. Vissa drag sitter alltid på samma ställe, så att en smartphone känner igen koden med en blick.

En klassisk QR-kod är indelad i följande huvudzoner:

1. De tre stora hörnkvadraterna (position detection patterns/finder patterns)

  1. De sitter uppe till vänster, uppe till höger och nere till vänster.
  2. Vad de gör: De är QR-kodens mest iögonfallande kännetecken. De tre ankarpunkterna signalerar direkt till kameran: ”Obs, här finns en QR-kod!” De talar omedelbart om position, storlek och lutningsvinkel för programvaran, så att kameran kan avgöra om mobilen hålls rakt eller snett.

2. De prickade förbindelselinjerna (timing patterns)

  1. De löper mellan de tre hörnkvadraterna – vågrätt mellan uppe till vänster och uppe till höger, lodrätt mellan uppe till vänster och nere till vänster. De definierar rutnätet (modulstorleken); orienteringen kommer från de tre hörnkvadraterna.
  2. Vad de gör: Linjerna består av omväxlande svarta och vita moduler. De fungerar som en linjal för skannern: Med hjälp av dessa punkter räknar programvaran ut rutnätets storlek (från version 1 med 21 × 21 celler till version 40 med 177 × 177 celler).

3. De små inre kvadraterna (alignment patterns)

  1. De sitter i det nedre högra området och, i komplexa koder, utspridda över hela mönstret.
  2. Vad de gör: De mindre kvadraterna fungerar som digitala hårkors. De hjälper skannern att kompensera för förvrängningar, till exempel när QR-koden är tryckt på en böjd läskburk eller flygbladet har skrynklats ihop.

4. Kontrollzonen (formatinformation)

  1. Den ligger direkt intill de tre stora hörnkvadraterna.
  2. Vad den gör: Här lagras de tekniska instruktionerna till skannern. I dessa få pixlar är två avgörande uppgifter kodade: 1. Vilken felkorrigeringsnivå (L, M, Q eller H) som används och vilket maskeringsmönster som tillämpades på data.

5. Den osynliga skyddskanten (quiet zone)

  1. Det är den helt vita, otryckta kanten runt hela QR-koden.
  2. Funktion: För att kameran ska kunna fånga kodens ytterkanter exakt behöver den ett säkerhetsavstånd till text, bilder eller bakgrundsgrafik. Kanten måste vara minst fyra moduler (pixelbredder) bred. Saknas quiet zone vägrar kameran ofta att skanna.

4. Vad händer när du skannar en QR-kod med mobilen?

När du riktar kameran mot en QR-kod sker följande steg i bakgrunden:

  1. Sökning: Kameran söker igenom videobilden efter de tre stora finder patterns.
  2. Transformation: Programvaran beräknar perspektivet och ”rätar ut” digitalt en bild som kanske fotograferats snett.
  3. Avmaskering: Rutnätet läser formatinformationen, känner igen maskeringsmönstret och tar bort masken.
  4. Felkorrigering: Eventuella repor, oskärpa eller skymda partier korrigeras matematiskt.
  5. Avkodning: Nollorna och ettorna omvandlas tillbaka till läsbar text, siffror eller styrkommandon enligt lägesreglerna.
  6. Utföra åtgärd: Mobilen känner igen datatypen (t.ex. https:// för en URL, WIFI: för inloggningsuppgifter eller BEGIN:VCARD för kontakter) och föreslår rätt app.

Teknisk fördjupning: De viktigaste frågorna förklarade

Behöver man internetanslutning för att skanna en QR-kod?

Nej, inte för själva skanningen. Omvandlingen av pixlar till text sker lokalt i mobilen. Om innehållet är ren text, en vCard eller inloggningsuppgifter till wifi fungerar allt helt offline. Först när koden innehåller en webbadress (URL) som du vill öppna behöver du en dataanslutning.

Är en QR-kod krypterad?

Nej. En QR-kod är bara kodad, inte krypterad. Vilken QR-skanner som helst kan läsa innehållet. Konfidentiell information som lösenord, bankuppgifter eller personliga PIN-koder ska därför aldrig lagras oskyddat i en vanlig QR-kod.

Varför ser vissa QR-koder mycket finare och tätare ut än andra?

Ju mer data som lagras direkt i koden – till exempel en lång text jämfört med en kort länk – desto fler moduler krävs. Koden går då upp till en högre version (från version 1 med 21 × 21 moduler upp till version 40 med 177 × 177 moduler).

Statisk eller dynamisk: Varför dynamiska koder förblir kompaktare

  1. Statiska QR-koder: Lagrar slutmålet (t.ex. en 150 tecken lång URL) direkt. Mönstret blir mycket tätt och svårare att skanna.
  2. Dynamiska QR-koder: Lagrar bara en ultrakort vidarebefordringslänk (t.ex. qron.ch/12da7). Koden förblir visuellt mycket enkel och lätt att skanna, och det egentliga målet kan ändras på servern när som helst utan att koden behöver tryckas om.

Checklista för fungerande QR-koder

Om du skapar egna QR-koder eller låter designa dem, tänk på följande grunder:

  1. Använd korta länkar: Använd dynamiska QR-koder för att hålla modultätheten låg.
  2. Behåll kontrasten: Välj ett mörkt mönster på ljus bakgrund (inverterade koder kan ställa till problem för vissa äldre kameror).
  3. Respektera marginalen: Lämna en marginal på minst 4 moduler till text, skärkanter eller grafik.
  4. Anpassa felkorrigeringen: En logga förbrukar felkorrigeringsreserv – ju större logga, desto högre bör nivån vara. För dynamiska koder ställer QRown in nivån själv och kontrollerar skannbarheten när du har designat koden.

Vanliga frågor (FAQ)

Hur många moduler består en QR-kod av?

De minsta QR-koderna (version 1) består av 21 × 21 moduler, alltså 441 celler. Den största versionen (version 40) har ett rutnät på 177 × 177 moduler, alltså 31 329 celler.

Kan en QR-kod innehålla virus eller skadlig kod?

En QR-kod innehåller i sig bara text och kan inte direkt köra skadlig programkod. Den kan däremot leda till en manipulerad nätfiskesida eller en skadlig nedladdning. Kontrollera därför alltid förhandsvisningen av domänen i mobilen innan du öppnar den!

Vilket läge sparar mest utrymme i en QR-kod?

Det mest effektiva läget är det numeriska läget (bara siffror), följt av det alfanumeriska läget. Byteläget (för vanliga URL:er och specialtecken) kräver däremot mest lagringsutrymme per tecken.

Fler inlägg