Base64 Image Decoder

Avkoda Base64 data URI:er tillbaka till bilder

Base64 inmatning

Vad är Base64 bildavkodning?

Base64 bildavkodning är motsatsen till Base64 bildkodning: det tar en Base64-sträng eller data URI som representerar en bild och konverterar den tillbaka till synlig binär pixeldata. När du mottar en sträng som data:image/png;base64,iVBORw0KGgo..., tar avkodning bort data URI-prefixet, återför Base64-kodningen som definieras i RFC 4648 och rekonstruerar de ursprungliga bildbytena. Webbläsaren kan sedan återge de avkodade bytena som en synlig bild.

Data URI (RFC 2397) paketerar MIME-typ och Base64-kodad innehål i en enda sträng. De förekommer ofta i API-svar, HTML-e-postkällkod, CSS-stilmallar och databasposter där bilder lagras som text istället för binära filer. Avkodning av dessa strängar är nödvändig för att förhandsgranska bilden, verifiera dess innehål eller spara den som en fristående fil. Eftersom Base64 använder 4 ASCII-tecken för att representera varje 3 byte binär data är den kodade strängen alltid cirka 33% större än originalbilden.

Det här verktyget tolkar både fullständiga data URI (data:image/png;base64,...) och råa Base64-strängar utan data:-prefixet. För råa strängar detekteras bildformatet automatiskt genom att inspektera de första Base64-tecknen, som motsvarar filens magiska bytes — till exempel indikerar iVBORw0KGgo alltid en PNG-fil. Den avkodade bilden återges direkt i webbläsaren och kan laddas ner som en fil.

Ett vanligt utvecklarscenario är att arbeta med ett REST API som returnerar ett profilfoto eller dokumentminiatyr som en Base64-sträng inuti ett JSON-fält — till exempel {} med bild. För att använda bilden extraherar du fältvärdet, tar bort data URI-prefixet upp till och inklusive kommat, och matar sedan de återstående Base64-tecknen genom en avkodare såsom atob() i JavaScript eller base64.b64decode() i Python för att återhämta de råa bytena. Att klistra in hela värdet i det här verktyget hoppar över alla dessa manuella steg och återger bilden omedelbar.

Varför använda denna Base64 bildavkodare?

Det här verktyget konverterar Base64 bilddata helt i webbläsaren till en synlig, nedladdningsbar bild — utan uppladdning, utan serverbearbetning, inget konto krävs.

Omedelbar förhandsvisning
Klistra in en Base64-sträng eller data URI och se den avkodade bilden omedelbar. Vänta inte på serversidbearbetning — webbläsaren avkodar och återger resultatet lokalt.
🔒
Sekretessprioriterad bearbetning
Dina bilddata lämnar aldrig din enhet. Avkodning körs helt i webbläsaren med inbyggda JavaScript API. Inga Base64-strängar skickas till någon server.
🖼️
Automatisk formatdetektering
Stöder PNG, JPEG, SVG, WebP, GIF, BMP och ICO. MIME-typen extraheras från data URI-prefixet eller detekteras automatiskt från Base64 magiska bytes när inget prefixet finns.
📋
Ladda ner resultatet
Spara den avkodade bilden som en fil med rätt tillägg. Nedladdningen använder det detekterade formatet — ingen manuell namnändring från .txt till .png krävs.

Base64 bildavkodningsfall

Frontend-felsökning
Granska Base64-kodade bilder som är inbäddade i HTML-, CSS- eller JavaScript-källkod. Klistra in data URI för att verifiera att rätt bild återges före distribution.
API-svarsinspektion
REST och GraphQL API returnerar ofta bilder som Base64-strängar i JSON-nyttolaster — användarens avatarer, dokumentminiatyr eller QR-koder. Avkoda dem för att verifiera att innehållet matchar förväntningarna.
Utveckling av e-postmallar
HTML-e-post bäddar ofta in bilder som data URI för att kringgå extern bildblockering. Avkoda Base64 för att förhandsgranska vad mottagarna kommer att se utan att skicka ett testmail.
Verifiering av databasposter
När bilder lagras som Base64-text i databaskolumner (MongoDB, PostgreSQL-textfält), avkoda sampelposter för att bekräfta dataintegritet efter migreringar eller importer.
Säkerhetanalys
Inspektera misstänkta Base64 bildnyttolaster i loggar, e-post eller webbtrafik. Avkodning avslöjar det faktiska bildinnehållet och formatet, hjälper till att identifiera spårningspixlar eller oväntad inbäddad data.
Lärande och utbildning
Förstå hur Base64-kodning fungerar genom att koda en bild och sedan avkoda den tillbaka. Jämför originalfilen med det tur-och-retur resultatet för att verifiera att Base64 är förlustfri kodning.

Data URI-struktur för bilder

En data URI paketerar bildtypen och kodad innehål i en enda sträng. Varje komponent är väsentlig för korrekt avkodning: schemat (data:) signalerar att URL:en är självinnehållen snarare än en referens till en extern resurs; MIME-typen (t.ex. image/png) talar om för renderaren vilket format som ska användas vid tolkning av råa bytes; markören ;base64, skiljer Base64-kodad innehål från data URI:er som använder procentkodning för vanlig text format. Base64 nyttolast själv kan sluta med en eller två = utfyllnadstecken — dessa krävs när inmatningsbytena inte är en multipel av tre, vilket garanterar att den kodade längden alltid är en multipel av fyra. Om du utelämnar eller trunkerar någon av dessa komponenter kan det orsaka avkodningsfel eller produkt en skadad bild.

KomponentBeskrivning
data:URI scheme identifier
image/pngMIME type declaring the image format
;base64,Encoding declaration (always base64 for binary)
iVBORw0KGgo...Base64-encoded pixel data

Detektera bildformat från Base64

När en Base64-sträng saknar data:-prefixet kan bildformatet identifieras genom att inspektera de första tecknen. Dessa tecken motsvarar filens magiska bytes — fasta byte-sekvenser vid början av varje bildfil som identifierar formatet:

FormatBase64 prefixHex signaturMIME-typ
PNGiVBORw0KGgo89 50 4E 47image/png
JPEG/9j/FF D8 FFimage/jpeg
GIFR0lGOD47 49 46 38image/gif
WebPUklGR52 49 46 46image/webp
SVGPHN2Zy3C 73 76 67 (text)image/svg+xml
BMPQk42 4Dimage/bmp
ICOAAABAA00 00 01 00image/x-icon

Kodexempel

Hur man avkodar Base64 bildsträngar tillbaka till bildfiler i populära språk och miljöer:

JavaScript (browser)
// Decode a Base64 data URI to a Blob and create a download link
const dataUri = 'data:image/png;base64,iVBORw0KGgo...'

// Method 1: fetch API (simplest)
const res  = await fetch(dataUri)
const blob = await res.blob()
// blob.type → "image/png", blob.size → 2048

// Method 2: manual decode for older environments
const [header, b64] = dataUri.split(',')
const mime    = header.match(/:(.*?);/)[1]   // → "image/png"
const binary  = atob(b64)
const bytes   = Uint8Array.from(binary, c => c.charCodeAt(0))
const blob2   = new Blob([bytes], { type: mime })

// Create a download link
const url = URL.createObjectURL(blob)
const a   = document.createElement('a')
a.href = url
a.download = 'decoded.png'
a.click()
URL.revokeObjectURL(url)
Python
import base64
import re

data_uri = 'data:image/png;base64,iVBORw0KGgo...'

# Parse the data URI
match = re.match(r'data:(image/[\w+.-]+);base64,(.+)', data_uri)
mime_type = match.group(1)    # → "image/png"
b64_data  = match.group(2)

# Decode and write to file
image_bytes = base64.b64decode(b64_data)
ext = mime_type.split('/')[1].replace('jpeg', 'jpg').replace('svg+xml', 'svg')

with open(f'output.{ext}', 'wb') as f:
    f.write(image_bytes)
# → writes output.png (byte-for-byte identical to the original)

# Decode raw Base64 (no data: prefix)
raw_b64 = 'iVBORw0KGgo...'
image_bytes = base64.b64decode(raw_b64)
Node.js
import { writeFileSync } from 'fs'

const dataUri = 'data:image/png;base64,iVBORw0KGgo...'

// Extract MIME type and Base64 payload
const [meta, b64] = dataUri.split(',')
const mime = meta.match(/:(.*?);/)[1]  // → "image/png"

// Decode to Buffer and save
const buffer = Buffer.from(b64, 'base64')
writeFileSync('output.png', buffer)
// → output.png (identical to the original file)

// Validate by checking magic bytes
console.log(buffer.subarray(0, 4))
// PNG → <Buffer 89 50 4e 47>  (\x89PNG)
// JPEG → <Buffer ff d8 ff e0>
CLI (bash)
# Decode a raw Base64 string to an image file (Linux)
echo 'iVBORw0KGgo...' | base64 -d > output.png

# Decode a raw Base64 string to an image file (macOS)
echo 'iVBORw0KGgo...' | base64 -D > output.png

# Extract Base64 from a data URI and decode
echo 'data:image/png;base64,iVBORw0KGgo...' | \
  sed 's/^data:.*base64,//' | base64 -d > output.png

# Identify the image format from the decoded file
file output.png
# → output.png: PNG image data, 64 x 64, 8-bit/color RGBA

Vanliga frågor

Vad är skillnaden mellan en data URI och en råa Base64-sträng?
En data URI innehåller ett prefixet som deklarerar MIME-typen och kodningen: data:image/png;base64,iVBORw0KGgo.... En råa Base64-sträng innehåller bara de kodade bytena (iVBORw0KGgo...) utan metadata. Det här verktyget accepterar båda formaten. När du klistrar in en råa sträng detekterar den automatiskt bildformatet från Base64 magiska bytes.
Förändrar avkodning Base64 bildkvaliteten?
Nej. Base64 är en förlustfri kodning som konverterar binär data till ASCII-text och tillbaka utan att ändra ett enda byte. Den avkodade bilden är byte-för-byte identisk med originalfilen. Eventuella kvalitetsskillnader du märker kommer från själva bildformatet (t.ex. JPEG-kompression tillämpad före kodning), inte från Base64 avkodningssteget.
Hur kan jag tala om vilket format en Base64 bild är i?
Om strängen börjar med data:image/png;base64, deklareras formatet i MIME-typen. För råa Base64-strängar inspektera de första tecknen: iVBORw0KGgo indikerar PNG, /9j/ indikerar JPEG, R0lGOD indikerar GIF och UklGR indikerar WebP. Dessa prefix motsvarar de magiska bytena för varje format.
Varför misslyckas min Base64-sträng att avkodas?
Vanliga orsaker inkluderar trunkerade data (strängen klipptes under copy-paste), felaktiga tecken (Base64 använder A-Z, a-z, 0-9, +, / och = för utfyllnad), inbäddade blanksteg eller radbrytningar och saknade eller felaktig data URI-prefixet. Det här verktyget tar automatiskt bort blanksteg, men trunkerad eller skadad data kan inte återhämtas.
Är det säkert att avkoda Base64 bilder från opålitliga källor?
Det här verktyget avkodar och återger bilder i webbläsarens sandlåda, som isolerar dem från ditt system. SVG-bilder kan dock innehålla inbäddad JavaScript. Moderna webbläsare blockerar skriptexekvering i SVG som återges via img-taggar eller data URI, men var försiktig med SVG från opålitliga källor. Verktyget kör inga skript från avkodade bilder.
Kan jag avkoda Base64 bilder utan internetanslutning?
Ja, när sidan har lästs in. All avkodning körs lokalt i webbläsaren med hjälp av inbyggda JavaScript API (atob, Uint8Array, Blob). Inga nätverksbegäranden görs under avkodningsprocessen. Verktyget fungerar identisk offline.
Vad är den maximala längden på Base64-strängen som det här verktyget kan hantera?
Den praktiska gränsen beror på webbläsarens minne. De flesta moderna webbläsare hanterar data URI på flera megabyte utan problem. För mycket stora bilder (10 MB+ kodad) kan du få långsammare rendering. Vid den storleken är det mer effektivt att avkoda programmatisk med Node.js eller Python och skriva direkt till en fil än att använda ett webbaserat verktyg.