> base64 | decode | JPG <

// Afkod Base64-strenge og data-URI'er tilbage til JPG-/JPEG-fotos — EXIF bevaret, øjeblikkelig forhåndsvisning, download med ét klik

0 tegn
🖼️

Afkodet JPEG vises her

[FAITHFUL]

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.

[PRIVATE]

Lokal afkodning

Din Base64-streng afkodes med atob() udelukkende i browseren. Ingen upload. Ingen server. Ingen analyse af payloaden.

[INSTANT]

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.

// OTHER LANGUAGES