Decodificatore di immagini Base64

Decodifica i data URI Base64 in immagini visibili

Input Base64

Cos'è la decodifica di immagini Base64?

La decodifica di immagini Base64 è l'opposto della codifica: prende una stringa Base64 o un data URI che rappresenta un'immagine e la converte nuovamente in dati binari visibili. Quando ricevi una stringa come data:image/png;base64,iVBORw0KGgo..., la decodifica rimuove il prefisso data URI, inverte la codifica Base64 definita in RFC 4648 e ricostruisce i byte originali dell'immagine. Il browser può quindi rendere i byte decodificati come un'immagine visibile.

I data URI (RFC 2397) raggruppano il tipo MIME e il contenuto codificato in Base64 in una singola stringa. Appaiono frequentemente nelle risposte API, nel codice sorgente delle e-mail HTML, nei fogli di stile CSS e nei record del database dove le immagini sono archiviate come testo anziché come file binari. Decodificare queste stringhe è necessario per visualizzare l'immagine, verificarne il contenuto o salvarla come file standalone. Poiché Base64 utilizza 4 caratteri ASCII per rappresentare ogni 3 byte di dati binari, la stringa codificata è sempre circa il 33% più grande dell'immagine originale.

Questo strumento analizza sia i data URI completi (data:image/png;base64,...) che le stringhe Base64 grezze senza il prefisso data:. Per le stringhe grezze, il formato dell'immagine viene rilevato automaticamente ispezionando i primi caratteri Base64, che corrispondono ai magic byte del file — ad esempio, iVBORw0KGgo indica sempre un file PNG. L'immagine decodificata viene resa direttamente nel browser e può essere scaricata come file.

Uno scenario comune è lavorare con un'API REST che restituisce una foto del profilo o una miniatura del documento come stringa Base64 all'interno di un campo JSON — ad esempio, {"avatar": "data:image/png;base64,iVBORw0KGgo..."}. Per utilizzare l'immagine, estrai il valore del campo, rimuovi il prefisso data URI fino alla virgola inclusa, quindi alimenta i caratteri Base64 rimanenti tramite un decodificatore come atob() in JavaScript o base64.b64decode() in Python per recuperare i byte grezzi. Incollare il valore completo in questo strumento salta tutti questi passaggi manuali e rende l'immagine istantaneamente.

Perché usare questo decodificatore di immagini Base64?

Questo strumento converte i dati dell'immagine Base64 di nuovo in un'immagine visualizzabile e scaricabile interamente nel tuo browser — nessun caricamento, nessuna elaborazione del server, nessun account richiesto.

Anteprima istantanea
Incolla una stringa Base64 o un data URI e vedi l'immagine decodificata immediatamente. Nessuna attesa di elaborazione lato server — il browser decodifica e rende il risultato localmente.
🔒
Elaborazione incentrata sulla privacy
I tuoi dati di immagine non lasciano mai il tuo dispositivo. La decodifica viene eseguita interamente nel browser utilizzando API JavaScript native. Nessuna stringa Base64 viene trasmessa a nessun server.
🖼️
Rilevamento automatico del formato
Supporta PNG, JPEG, SVG, WebP, GIF, BMP e ICO. Il tipo MIME viene estratto dal prefisso data URI o rilevato automaticamente dai magic byte Base64 quando nessun prefisso è presente.
📋
Scarica il risultato
Salva l'immagine decodificata come file con l'estensione corretta. Il download utilizza il formato rilevato — nessuna ridenominazione manuale da .txt a .png richiesta.

Casi d'uso della decodifica di immagini Base64

Debug del frontend
Ispeziona le immagini codificate in Base64 incorporate nel codice sorgente HTML, CSS o JavaScript. Incolla il data URI per verificare che l'immagine corretta venga renderizzata prima della distribuzione.
Ispezione della risposta API
Le API REST e GraphQL spesso restituiscono immagini come stringhe Base64 nei payload JSON — avatar utente, miniature di documenti o codici QR. Decodificali per verificare che il contenuto corrisponda alle aspettative.
Sviluppo di modelli di e-mail
Le e-mail HTML spesso incorporano immagini come data URI per aggirare il blocco delle immagini esterne. Decodifica Base64 per visualizzare l'anteprima di ciò che i destinatari vedranno senza inviare un'e-mail di prova.
Verifica del record del database
Quando le immagini vengono archiviate come testo Base64 in colonne di database (campi MongoDB, PostgreSQL text), decodifica i record di esempio per confermare l'integrità dei dati dopo le migrazioni o le importazioni.
Analisi della sicurezza
Ispeziona i payload dell'immagine Base64 sospetti nei log, e-mail o traffico web. La decodifica rivela il contenuto e il formato effettivi dell'immagine, aiutando a identificare i pixel di tracciamento o i dati incorporati inaspettati.
Apprendimento e istruzione
Comprendi come funziona la codifica Base64 codificando un'immagine e quindi decodificandola di nuovo. Confronta il file originale con il risultato convertito per verificare che Base64 sia una codifica senza perdita.

Struttura data URI per immagini

Un data URI raggruppa il tipo di immagine e il contenuto codificato in una singola stringa. Ogni componente è essenziale per una decodifica corretta: lo schema (data:) segnala che l'URL è autonomo piuttosto che un riferimento a una risorsa esterna; il tipo MIME (ad esempio, image/png) indica al renderer quale formato utilizzare quando si interpretano i byte grezzi; il marcatore ;base64, distingue il contenuto codificato in Base64 dai data URI che utilizzano la codifica percentuale per i formati di testo semplice. Il payload Base64 stesso può terminare con uno o due caratteri di riempimento = — questi sono necessari quando il numero di byte di input non è un multiplo di tre, garantendo che la lunghezza codificata sia sempre un multiplo di quattro. L'omissione o il troncamento di uno di questi componenti causa l'errore di decodifica o produce un'immagine corrotta.

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

Rilevamento del formato immagine da Base64

Quando una stringa Base64 manca di un prefisso data:, il formato dell'immagine può essere identificato ispezionando i primi caratteri. Questi caratteri corrispondono ai magic byte del file — sequenze di byte fisse all'inizio di ogni file immagine che identificano il formato:

FormatoPrefisso Base64Firma esadecimaleTipo 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

Esempi di codice

Come decodificare le stringhe dell'immagine Base64 nuovamente ai file immagine nei linguaggi e ambienti popolari:

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

Domande frequenti

Qual è la differenza tra un data URI e una stringa Base64 grezza?
Un data URI include un prefisso che dichiara il tipo MIME e la codifica: data:image/png;base64,iVBORw0KGgo.... Una stringa Base64 grezza contiene solo i byte codificati (iVBORw0KGgo...) senza metadati. Questo strumento accetta entrambi i formati. Quando incolla una stringa grezza, rileva automaticamente il formato dell'immagine dai magic byte Base64.
La decodifica di Base64 cambia la qualità dell'immagine?
No. Base64 è una codifica senza perdita che converte i dati binari in testo ASCII e viceversa senza alterare un singolo byte. L'immagine decodificata è identica byte per byte al file originale. Qualsiasi differenza di qualità che noti proviene dal formato dell'immagine stesso (ad esempio, compressione JPEG applicata prima della codifica), non dal passaggio di decodifica Base64.
Come posso dire quale formato è un'immagine Base64?
Se la stringa inizia con data:image/png;base64, il formato è dichiarato nel tipo MIME. Per le stringhe Base64 grezze, ispeziona i primi caratteri: iVBORw0KGgo indica PNG, /9j/ indica JPEG, R0lGOD indica GIF e UklGR indica WebP. Questi prefissi corrispondono ai magic byte di ogni formato.
Perché la mia stringa Base64 non riesce a decodificarsi?
Le cause comuni includono dati troncati (la stringa è stata tagliata durante il copia-incolla), caratteri non corretti (Base64 utilizza A-Z, a-z, 0-9, +, / e = per il riempimento), spazi incorporati o interruzioni di riga e un prefisso data URI mancante o malformato. Questo strumento rimuove automaticamente gli spazi, ma i dati troncati o corrotti non possono essere recuperati.
È sicuro decodificare le immagini Base64 da fonti non affidabili?
Questo strumento decodifica e rende le immagini nella sandbox del browser, che le isola dal tuo sistema. Tuttavia, le immagini SVG possono contenere JavaScript incorporato. I browser moderni bloccano l'esecuzione di script in SVG renderizzati tramite tag img o data URI, ma fai attenzione con gli SVG da fonti non affidabili. Lo strumento non esegue alcuno script dalle immagini decodificate.
Posso decodificare le immagini Base64 senza una connessione Internet?
Sì, una volta caricata la pagina. Tutta la decodifica viene eseguita localmente nel tuo browser utilizzando le API JavaScript native (atob, Uint8Array, Blob). Nessuna richiesta di rete viene effettuata durante il processo di decodifica. Lo strumento funziona in modo identico offline.
Qual è la lunghezza massima della stringa Base64 che questo strumento può gestire?
Il limite pratico dipende dalla memoria del tuo browser. La maggior parte dei browser moderni gestisce data URI di diversi megabyte senza problemi. Per immagini molto grandi (10 MB+ codificati), potresti riscontrare un rendering più lento. A questa dimensione, decodificare programmaticamente con Node.js o Python e scrivere direttamente in un file è più efficiente che utilizzare uno strumento basato su browser.