> base64 | decode | JPG <
// Afkod Base64-strenge og data-URI'er tilbage til JPG-/JPEG-fotos — EXIF bevaret, øjeblikkelig forhåndsvisning, download med ét klik
Afkodet JPEG vises her
Ingen genkomprimering
De JPEG-bytes, der kommer ud af afkoderen, er bit-identiske med det, der blev kodet — samme kvalitet, samme EXIF, samme DCT-koefficienter.
Lokal afkodning
Din Base64-streng afkodes med atob() udelukkende i browseren. Ingen upload. Ingen server. Ingen analyse af payloaden.
Live forhåndsvisning
Se det afkodede foto og dets dimensioner med det samme — download som .jpg med ét klik.
// OM BASE64 TIL JPG
Hvad dette værktøj accepterer
- >Data-URI: data:image/jpeg;base64,/9j/4AAQSkZ…
- >Rå JPEG-Base64-payload (begynder med /9j/)
- >Base64 med indlejrede mellemrum / linjeombrydninger
- >Standard RFC 4648-alfabet (+/, valgfri =-udfyldning)
- >URL-sikker Base64 (-_) — normaliseres automatisk ved afkodning
- >Flerdelte JPEG'er (JFIF-, EXIF-, Adobe-, SPIFF-markører)
Almindelige anvendelser
- >Gendannelse af et foto fra et JSON-API-svar
- >Udtrækning af en profilavatar fra en TEXT-databasekolonne
- >Afkodning af et CMS-billedfelt gemt som en data-URI
- >Genopbygning af et foto fra en e-mail-MIME-del
- >Visning af et kamera-snapshot sendt over WebSocket
- >Fejlfinding af et defekt <img src="data:image/jpeg;base64,…">-tag
- >Offline-first-apps, der cacher fotos som Base64
Sådan fungerer Base64 → JPG-afkodning
Afkoderen fjerner ethvert data-URI-præfiks, normaliserer mellemrum og URL-sikre tegn og kalder derefter atob() for at konvertere hver Base64-gruppe på 4 tegn tilbage til 3 binære bytes. Resultatet pakkes ind i en Blob med MIME-typen image/jpeg og vises med et <img>-tag. Fordi Base64 er en bijektiv binær-til-tekst-transformation, er det udsendte JPEG bit-identisk med originalen — dets SHA-256-hash matcher, og ingen kvalitet går tabt.
Eksempel på JPEG-data-URI:
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/wAALCAABAAEBAREA/8QAFQABAQAAAAAAAAAAAAAAAAAAAAv/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAA/AKp//9k=
Ydelse og kompatibilitet
- >Afkodning er O(n) i forhold til payloadlængden — håndterer 100 MB+ uden problemer
- >Bruger native atob() + Uint8Array — ingen tredjepartsbiblioteker
- >Understøtter EXIF-rige JPEG'er fra alle store kameraproducenter
- >Virker i Chrome, Firefox, Safari, Edge og mobilbrowsere
- >Knib-til-zoom-forhåndsvisning på mobile enheder
- >Download via Blob-URL — ingen tur-retur til serveren
// SÅDAN AFKODER DU BASE64 TIL JPG
Trin 1: Indsæt
Indsæt Base64-strengen eller den fulde data-URI i inputfeltet
Trin 2: Afkod
Klik på [DECODE] — JPEG'en gengives med det samme
Trin 3: Inspicér
Tjek fotoet, dets dimensioner og filstørrelse, før du gemmer
Trin 4: Download
Klik på [DOWNLOAD .jpg] for at gemme et bit-identisk JPEG på disken
// KODEEKSEMPLER — BASE64 TIL JPG
JavaScript (Browser)
// Decode Base64 → JPEG Blob → preview
const b64 = '/9j/4AAQSkZJRgAB...';
const bin = atob(b64);
const arr = new Uint8Array(bin.length);
for (let i = 0; i < bin.length; i++) arr[i] = bin.charCodeAt(i);
const blob = new Blob([arr], { type: 'image/jpeg' });
document.getElementById('preview').src = URL.createObjectURL(blob);
Afkod en rå Base64-JPEG-payload, pak den ind i en Blob, og gengiv med <img>. Data-URI'er kan sættes direkte på src.
Node.js
const fs = require('fs');
const b64 = '/9j/4AAQSkZJRgAB...';
fs.writeFileSync('out.jpg', Buffer.from(b64, 'base64'));
Afkod Base64-tekst til en JPEG-fil med Nodes indbyggede Buffer.
Python
import base64
with open('out.jpg', 'wb') as f:
f.write(base64.b64decode('/9j/4AAQSkZJRgAB...'))
Kun standardbibliotek — Base64 → JPEG-bytes → fil.
PHP
<?php
file_put_contents('out.jpg', base64_decode('/9j/4AAQSkZJRgAB...'));
Énlinjer med base64_decode() og file_put_contents().
Shell (macOS / Linux)
echo '/9j/4AAQSkZJRgAB...' | base64 -d > out.jpg
POSIX base64 -d læser strengen fra stdin og skriver JPEG'en til disken.
// FAQ — BASE64 TIL JPG
Sp: Hvad er Base64-til-JPG-afkodning?
Sv: Den vender et Base64-kodet JPEG tilbage til dets oprindelige binære form. Afkoderen læser 4 ASCII-tegn ad gangen fra Base64-strengen, slår dem op i RFC 4648-alfabetet og udsender 3 binære bytes pr. gruppe. Den resulterende byte-array er en komplet, gyldig JPEG-fil — samme DCT-koefficienter, samme Huffman-tabeller, samme EXIF-metadata, samme kvalitet som før kodningen.
Sp: Hvordan kan jeg se, at Base64-strengen virkelig er et JPEG?
Sv: Hvert JPEG begynder med de to magiske bytes FF D8 (Start-Of-Image). Når disse bytes Base64-kodes, er de første 4 tegn altid /9j/. Så enhver Base64-streng, der begynder med /9j/4AAQ (JFIF-header) eller /9j/2wC (mange smartphone-kameraer, der bruger Adobe APP14), er et JPEG. Andre formater har forskellige præfikser: iVBORw0KGgo for PNG, R0lGOD for GIF, UklGR for WebP.
Sp: Kan jeg afkode en data-URI direkte?
Sv: Ja. Hvis din streng begynder med data:image/jpeg;base64,, fjerner afkoderen det præfiks automatisk og behandler payloaden. Hvis du kun har den rå Base64-del, registrerer vores værktøj JPEG-magic-nummeret (/9j/) og pakker de afkodede bytes som image/jpeg til forhåndsvisningen. Mellemrum, linjeskift og tabulatorer fjernes alle før afkodning, så du kan indsætte en pænt formateret JSON-værdi direkte.
Sp: Reducerer afkodning kvaliteten af mit JPEG?
Sv: Nej. Base64-afkodning er en ren binær transformation — hvert Base64-tegn afbildes deterministisk til 6 bit, og 4 tegn afkoder til 3 bytes. De JPEG-bytes, der kommer ud, er bit-identiske med det, der blev kodet, så kvaliteten er, hvad det oprindelige JPEG blev gemt i. En SHA-256-hash af den afkodede fil vil matche hashen af originalen. Hvis dit afkodede foto ser dårligere ud end forventet, skete kvalitetstabet, da JPEG'en først blev gemt, ikke under Base64-tur-retur.
Sp: Den afkodede JPG er ødelagt — hvad kan være galt?
Sv: Typiske årsager:
• Afkortet streng — Base64 blev klippet et sted. Et komplet JPEG slutter med FF D9 (End-Of-Image), som koder til /9k= eller 2Q== i Base64. Hvis din streng ikke slutter med et af disse mønstre plus valgfri udfyldning, er den ufuldstændig.
• Dobbeltkodet — JPEG'en blev Base64-kodet to gange. Afkod den igen.
• URL-sikkert alfabet — hvis strengen bruger -_ i stedet for +/, afviser nogle afkodere den. Vores værktøj normaliserer begge.
• Faktisk et andet format — payloaden er PNG eller WebP. Brug vores generiske Base64 → Billede-afkoder, som registrerer formatet automatisk.
Sp: Bevares mine EXIF-metadata efter afkodning?
Sv: Ja. EXIF-APP1-segmentet (kameramodel, GPS, dato/tid, objektiv, ISO, hvidbalance, orientering osv.) er en del af JPEG-byte-strømmen. Fordi Base64 er bit-for-bit reversibel, gendannes hver byte — inklusive EXIF. Hvis du har brug for EXIF-fri fotos af hensyn til privatlivet, så fjern metadataene efter afkodning med et værktøj som exiftool -all= out.jpg eller en canvas-baseret geneksport i browseren.
Sp: Kan jeg afkode Base64 til JPG i terminalen?
Sv: Ja. På macOS og Linux: echo '/9j/4AAQSkZJRgAB…' | base64 -d > out.jpg
(ældre macOS-base64 bruger -D.)
På Windows PowerShell: [IO.File]::WriteAllBytes('out.jpg', [Convert]::FromBase64String('/9j/4AAQSkZJRgAB…'))
Hvis dit input er en fuld data-URI, så send den først gennem sed 's|^data:.*base64,||' for at fjerne præfikset.
Sp: Hvor stort et Base64-JPG kan jeg afkode?
Sv: Op til hukommelsesgrænsen for din browser. Et 100 MB afkodet JPEG kræver ~135 MB Base64-tekst, hvilket moderne desktopbrowsere håndterer uden problemer. Mobilbrowsere er pålidelige op til ~40 MB. For ekstremt store fotos (RAW-konverterede JPEG-eksporter fra mellemformatkameraer) bør du overveje afkodning på serversiden: base64 -d photo.b64 > photo.jpg er langt hurtigere end en browser-tur-retur.
Sp: Virker afkoderen offline?
Sv: Ja, efter den indledende sideindlæsning. Al afkodning bruger indbyggede browser-API'er (atob(), Uint8Array, Blob, URL.createObjectURL()), hvoraf ingen kræver en netværksforbindelse. Du kan bekræfte dette ved at deaktivere dit netværk og fortsætte med at afkode — forhåndsvisningen og downloaden bliver begge ved med at virke.
Sp: Er Base64-JPEG'en krypteret eller privat?
Sv: Nej. Base64 er en kodning, ikke kryptering. Enhver med din Base64-streng kan afkode den tilbage til det oprindelige foto på millisekunder, og EXIF-data (inklusive GPS-koordinater) følger med. Hvis JPEG'en indeholder følsomme oplysninger, så krypter den (AES-GCM, age, PGP) før du anvender Base64, og transportér kun strengen over HTTPS.
Sp: Er afkodningen på klientsiden — uploades der noget?
Sv: Intet uploades. Hvert trin — fjern præfiks, normalisér mellemrum, kald atob(), byg Blob'en, gengiv <img>, udløs downloaden — sker i din browser. Åbn netværksfanen i din browsers dev-tools under afkodning, og du vil se nul udgående anmodninger for din Base64-payload. Dette værktøj er sikkert til fortrolige skærmbilleder, personlige fotos og reguleret data.
Sp: Hvordan afkoder jeg Base64 til JPG i produktionskode?
Sv: I Node.js: fs.writeFileSync('out.jpg', Buffer.from(b64, 'base64')). I Python: open('out.jpg','wb').write(base64.b64decode(b64)). I Go: b, _ := base64.StdEncoding.DecodeString(b64); os.WriteFile("out.jpg", b, 0644). I Java: Files.write(Path.of("out.jpg"), Base64.getDecoder().decode(b64)). I Rust: std::fs::write("out.jpg", base64::decode(b64)?)?. I Ruby: File.binwrite('out.jpg', Base64.decode64(b64)). I PHP: file_put_contents('out.jpg', base64_decode($b64)).
Sp: Base64 til JPG vs. Base64 til PNG — hvilken skal jeg bruge?
Sv: Kig på præfikset på Base64-strengen. Hvis den begynder med /9j/, er det JPEG — brug Base64 → JPG. Hvis den begynder med iVBORw0KGgo, er det PNG — brug Base64 → PNG. Du kan ikke tvinge en JPEG-afkoder til at udsende PNG (eller omvendt); de magiske bytes fortæller sandheden. Når du er i tvivl, så brug den generiske afkoder, som registrerer formatet automatisk og gemmer med den rette filendelse.