Base64 Image Decoder

Dekóduj Base64 data URI zpět na obrázky

Vstup Base64

Co je dekódování Base64 obrázků?

Dekódování Base64 obrázků je opakem kódování Base64 obrázků: vezme řetězec Base64 nebo data URI, který představuje obrázek, a převede jej zpět na viditelná binární data pixelů. Když obdržíte řetězec jako data:image/png;base64,iVBORw0KGgo..., dekódování odstraní předponu data URI, vrátí kódování Base64 definované v RFC 4648 a rekonstruuje původní bajty obrázku. Prohlížeč pak může vykreslit dekódované bajty jako viditelný obrázek.

Data URI (RFC 2397) spojují typ MIME a obsah zakódovaný Base64 do jednoho řetězce. Často se vyskytují v odpovědích API, zdrojovém kódu HTML e-mailů, stylech CSS a záznamech databází, kde jsou obrázky uloženy jako text místo binárních souborů. Dekódování těchto řetězců je nutné k zobrazení náhledu obrázku, ověření jeho obsahu nebo uložení jako samostatného souboru. Protože Base64 používá 4 znaky ASCII k reprezentaci každých 3 bajtů binárních dat, kódovaný řetězec je vždy přibližně o 33% větší než původní obrázek.

Tento nástroj analyzuje jak úplné data URI (data:image/png;base64,...), tak surové řetězce Base64 bez předpony data:. U syrových řetězců je formát obrázku detekován automaticky kontrolou prvních několika znaků Base64, které odpovídají magickým bajtům souboru — například iVBORw0KGgo vždy označuje soubor PNG. Dekódovaný obrázek je vykreslen přímo v prohlížeči a lze jej stáhnout jako soubor.

Běžný scénář vývojáře je práce s REST API, která vrací fotografie profilu nebo miniatury dokumentů jako řetězec Base64 uvnitř pole JSON — například {} nebo {}. Chcete-li obrázek použít, extrahujete hodnotu pole, odstraníte předponu data URI až do čárky (včetně), a poté zbývající znaky Base64 proveďte přes dekodér, jako je atob() v JavaScriptu nebo base64.b64decode() v Pythonu, abyste obnovili surové bajty. Vložení celé hodnoty do tohoto nástroje přeskočí všechny tyto ruční kroky a obrázek se vykreslí ihned.

Proč používat tento dekodér Base64 obrázků?

Tento nástroj převede data Base64 obrázků zcela v prohlížeči na viditelný obrázek ke stažení — bez nahrávání, bez zpracování na serveru, bez potřeby účtu.

Okamžitý náhled
Vložte řetězec Base64 nebo data URI a hned uvidíte dekódovaný obrázek. Nečekejte na zpracování na serveru — prohlížeč lokálně dekóduje a vykreslí výsledek.
🔒
Zpracování zaměřené na soukromí
Vaše data obrázku nikdy neopustí vaše zařízení. Dekódování se provádí zcela v prohlížeči pomocí nativních rozhraní API JavaScriptu. Žádné řetězce Base64 se neposílají na žádný server.
🖼️
Automatická detekce formátu
Podporuje PNG, JPEG, SVG, WebP, GIF, BMP a ICO. Typ MIME je extrahován z předpony data URI nebo automaticky detekován z magických bajtů Base64, pokud není přítomna žádná předpona.
📋
Stáhněte si výsledek
Uložte dekódovaný obrázek jako soubor se správnou příponou. Stahování používá zjištěný formát — není potřeba ručně přejmenovat z .txt na .png.

Případy použití dekódování Base64 obrázků

Ladění front-endu
Kontrolujte obrázky kódované Base64 vložené do zdrojového kódu HTML, CSS nebo JavaScriptu. Vložte data URI a ověřte, že se správný obrázek vykresluje před nasazením.
Kontrola odpovědi API
Rozhraní REST a GraphQL API často vrací obrázky jako řetězce Base64 v nástrojích JSON — uživatelské avatary, miniatury dokumentů nebo QR kódy. Dekódujte je a ověřte, že obsah odpovídá očekáváním.
Vývoj šablon e-mailů
HTML e-maily často vkládají obrázky jako data URI, aby se vyhly blokování externích obrázků. Dekódujte Base64 a zobrazte náhled toho, co budou příjemci vidět bez odeslání zkušebního e-mailu.
Ověření záznamů databáze
Když jsou obrázky uloženy jako text Base64 v sloupcích databází (MongoDB, pole textu PostgreSQL), dekódujte vzorové záznamy, abyste po migracích nebo importech potvrdili integritu dat.
Bezpečnostní analýza
Zkontrolujte podezřelé datové části Base64 obrázků v protokolech, e-mailech nebo síťovém provozu. Dekódování odhalí skutečný obsah a formát obrázku, pomáhá identifikovat sledovací pixely nebo neočekávaná vložená data.
Učení a vzdělání
Pochopit, jak kódování Base64 funguje, kódováním obrázku a jeho dekódováním zpět. Porovnejte původní soubor s výsledkem zpátečního cesty a ověřte, že Base64 je bez ztrát.

Struktura data URI pro obrázky

Data URI balí typ obrázku a zakódovaný obsah do jednoho řetězce. Každá komponenta je zásadní pro správné dekódování: schéma (data:) signalizuje, že URL je samo-obsažený, spíše než odkaz na externí prostředek; typ MIME (např. image/png) říká rendereru, který formát použít při interpretaci syrových bajtů; značka ;base64, rozlišuje obsah zakódovaný Base64 od dat URI, která pro formáty prostého textu používají procenta-kódování. Datová část Base64 se sama může končit jedním nebo dvěma znaky = odsazení — ty jsou povinné, když počet vstupních bajtů není násobkem tří, což zajišťuje, že kódovaná délka je vždy násobkem čtyř. Vynechání nebo zkrácení kteréhokoli z těchto komponent způsobí selhání dekódování nebo vytvoření poškozeného obrázku.

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

Detekce formátu obrázku z Base64

Pokud řetězci Base64 chybí předpona data:, lze formát obrázku identifikovat kontrolou prvních několika znaků. Tyto znaky odpovídají magickým bajtům souboru — pevné sekvence bajtů na začátku každého souboru obrázku, které identifikují formát:

FormátPředpona Base64Hex podpisTyp MIME
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

Příklady kódu

Jak dekódovat řetězce Base64 obrázků zpět do souborů obrázků v oblíbených jazycích a prostředích:

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

Často kladené otázky

Jaký je rozdíl mezi data URI a syrým řetězcem Base64?
Data URI zahrnuje předponu, která deklaruje typ MIME a kódování: data:image/png;base64,iVBORw0KGgo.... Surový řetězec Base64 obsahuje pouze kódované bajty (iVBORw0KGgo...) bez metadat. Tento nástroj přijímá oba formáty. Když vložíte surový řetězec, automaticky detekuje formát obrázku z magických bajtů Base64.
Změní dekódování Base64 kvalitu obrázku?
Ne. Base64 je bezeztrátové kódování, které převádí binární data na ASCII text a zpět beze změny jediného bajtu. Dekódovaný obrázek je bajtově identický s původním souborem. Jakékoli rozdíly v kvalitě, které si všimnete, pocházejí ze samotného formátu obrázku (např. komprese JPEG aplikovaná před kódováním), ne z kroku dekódování Base64.
Jak mohu zjistit, jaký formát má Base64 obrázek?
Pokud řetězec začíná na data:image/png;base64, formát je deklarován v typu MIME. U syrých řetězců Base64 zkontrolujte prvních pár znaků: iVBORw0KGgo znamená PNG, /9j/ znamená JPEG, R0lGOD znamená GIF a UklGR znamená WebP. Tyto předpony odpovídají magickým bajtům každého formátu.
Proč se mi nepodařilo dekódovat řetězec Base64?
Běžné příčiny zahrnují zkrácená data (řetězec byl zkrácen během kopírování-vkládání), nesprávné znaky (Base64 používá A-Z, a-z, 0-9, +, / a = pro vycpávku), vložené mezery nebo konce řádků a chybějící nebo neformátované předpona data URI. Tento nástroj automaticky odstraňuje mezery, ale zkrácená nebo poškozená data nelze obnovit.
Je bezpečné dekódovat Base64 obrázky z nedůvěryhodných zdrojů?
Tento nástroj dekóduje a vykresluje obrázky v sandboxu prohlížeče, který je izoluje od vašeho systému. SVG obrázky však mohou obsahovat vložený JavaScript. Moderní prohlížeče blokují provádění skriptů v SVG vykreslených prostřednictvím značek img nebo data URI, ale buďte opatrní s SVG z nedůvěryhodných zdrojů. Nástroj nespouští žádné skripty z dekódovaných obrázků.
Mohu dekódovat Base64 obrázky bez připojení k internetu?
Ano, jakmile se stránka načte. Veškeré dekódování běží lokálně v prohlížeči pomocí nativních rozhraní API JavaScriptu (atob, Uint8Array, Blob). Během procesu dekódování nejsou prováděny žádné síťové požadavky. Nástroj funguje offline stejně.
Jaká je maximální délka řetězce Base64, kterou může tento nástroj zvládnout?
Praktický limit závisí na paměti vašeho prohlížeče. Většina moderních prohlížečů bez problémů zvládne data URI o velikosti několika megabajtů. Pro velmi velké obrázky (10 MB+ kódováno) může dojít k pomalejšímu vykreslování. V takové velikosti je dekódování programově pomocí Node.js nebo Pythonu a zápis přímo do souboru efektivnější než používání webového nástroje.