> base64 | decode | PNG <
// Decodifica stringhe Base64 e data URI di nuovo in immagini PNG — alfa preservato, anteprima istantanea, download con un clic
Il PNG decodificato apparirà qui
Bit-perfetto
Il PNG decodificato è byte-identico all'originale — alfa, palette e profilo colore sopravvivono intatti al round-trip.
Decodifica locale
Il payload Base64 viene decodificato nel tuo browser con atob(). Nessun upload sul server, nessun logging dei tuoi byte PNG.
Anteprima dal vivo
Visualizza l'immagine decodificata, le sue dimensioni e la dimensione approssimativa del file istantaneamente prima di scaricare.
// INFORMAZIONI SU BASE64 A PNG
Cosa accetta questo strumento
- >Data URI: data:image/png;base64,iVBORw0KGgo…
- >Payload PNG Base64 grezzo (inizia con iVBORw0KGgo)
- >Base64 con spazi bianchi / a capo incorporati
- >Alfabeto standard RFC 4648 (+/, padding = opzionale)
- >Base64 URL-safe (-_) — normalizzato automaticamente alla decodifica
- >Incollaggio Unicode-aware — i BOM vengono rimossi
Casi d'uso comuni
- >Salvare uno screenshot dal data URI di un ispettore DOM
- >Estrarre un logo da uno sfondo CSS data-uri
- >Recuperare un'immagine da una risposta API JSON
- >Ripristinare un'immagine da una colonna TEXT di un database
- >Recuperare un PNG da una parte MIME di un'email
- >Ispezionare un'icona incorporata in un SVG inline
- >Eseguire il debug di un tag <img src="data:image/png;base64,…"> danneggiato
Come funziona la decodifica Base64 → PNG
Il decoder rimuove qualsiasi prefisso data URI, normalizza gli spazi bianchi e i caratteri URL-safe, poi chiama atob() per convertire ogni gruppo di 4 caratteri di nuovo in 3 byte binari. L'array di byte viene avvolto in un Blob con tipo MIME image/png, riceve un object URL e viene renderizzato in un elemento <img>. Poiché Base64 è biiettivo con il binario, l'output è bit-identico al PNG originale — uno SHA-256 del file decodificato corrisponde all'originale.
Esempio di data URI PNG:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==
Prestazioni e compatibilità
- >La decodifica è O(n) sulla lunghezza del payload — gestisce 100 MB+ senza problemi
- >Usa l'atob() nativo del browser — nessuno shim JS pesante
- >Supporta APNG multi-frame quando il visualizzatore lo supporta
- >Funziona in tutti i browser moderni (Chrome, Firefox, Safari, Edge)
- >Anteprima responsive su mobile con pinch-to-zoom
- >Il download usa un Blob URL — nessun round-trip intermedio al server
// COME DECODIFICARE BASE64 IN PNG
Passo 1: Incolla
Incolla la stringa Base64 o il data URI completo nel campo di input
Passo 2: Decodifica
Clicca su [DECODE] — il PNG viene renderizzato istantaneamente nell'anteprima
Passo 3: Ispeziona
Controlla dimensioni, dimensione del file e canale alfa prima di salvare
Passo 4: Scarica
Clicca su [DOWNLOAD .png] per salvare su disco un PNG bit-identico
// ESEMPI DI CODICE — DA BASE64 A PNG
JavaScript (Browser)
// Decode Base64 → PNG Blob → download link
const b64 = 'iVBORw0KGgoAAAANSUhEUg...';
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/png' });
const url = URL.createObjectURL(blob);
window.open(url);
Decodifica un payload Base64 grezzo in un Blob e aprilo. Per un data URI completo, il tag <img> lo accetta direttamente.
Node.js
const fs = require('fs');
const b64 = 'iVBORw0KGgoAAAANSUhEUg...';
fs.writeFileSync('out.png', Buffer.from(b64, 'base64'));
Una riga usando il Buffer integrato di Node per decodificare Base64 e scrivere un file PNG.
Python
import base64
with open('out.png', 'wb') as f:
f.write(base64.b64decode('iVBORw0KGgoAAAANSUhEUg...'))
Solo libreria standard — decodifica il testo Base64 di nuovo in byte PNG.
PHP
<?php
file_put_contents('out.png', base64_decode('iVBORw0KGgoAAAANSUhEUg...'));
Una riga usando i nativi base64_decode() e file_put_contents().
Shell (macOS / Linux)
echo 'iVBORw0KGgoAAAANSUhEUg...' | base64 -d > out.png
POSIX base64 -d / -D legge il testo da stdin e scrive il PNG decodificato su stdout.
// FAQ — DA BASE64 A PNG
D: Cos'è la decodifica da Base64 a PNG?
R: Inverte un PNG codificato in Base64 riportandolo alla sua forma binaria originale. La stringa che incolli è composta da 4 caratteri ASCII per 3 byte binari; il decoder legge 4 caratteri alla volta, applica la ricerca nell'alfabeto RFC 4648 e scrive 3 byte per gruppo finché la stringa non è esaurita. L'array di byte risultante è un file PNG completo e valido che puoi visualizzare in anteprima, salvare o inviare ovunque sia accettato un normale PNG.
D: Come faccio a sapere che la stringa Base64 è davvero un PNG?
R: I primi 8 byte di ogni PNG sono la firma magica 89 50 4E 47 0D 0A 1A 0A. Codificati in Base64, questi 8 byte iniziano sempre con iVBORw0KGgo. Quindi qualsiasi stringa Base64 che inizia con iVBORw0KGgo è un PNG. Altri formati hanno prefissi diversi: /9j/ è JPEG, R0lGOD è GIF, UklGR è WebP. Il nostro decoder rileva automaticamente i PNG da questo prefisso magico e ricorre al tipo MIME nel data URI se presente.
D: Posso incollare un data URI o solo Base64 grezzo?
R: Entrambi. Se la tua stringa inizia con data:image/png;base64,, il decoder rimuove automaticamente il prefisso. Se incolli solo la parte del payload, deduciamo il tipo MIME PNG dai byte magici. Spazi bianchi, a capo, ritorni a capo e tabulazioni vengono normalizzati prima della decodifica, così puoi incollare una risposta JSON formattata in modo leggibile senza rompere nulla.
D: Il PNG decodificato è danneggiato — perché?
R: Cause comuni:
• Stringa troncata — il Base64 è stato tagliato da qualche parte (ad es. da un limite di riga nella tua fonte di copia). Un Base64 PNG completo termina con RU5ErkJggg== (il chunk IEND); se manca, il file è incompleto.
• Alfabeto URL-safe — se la stringa usa -_ invece di +/ (base64url), il nostro strumento lo normalizza; altri decoder potrebbero rifiutarlo.
• Doppia codifica — il PNG è stato codificato in Base64 due volte. Decodificalo di nuovo.
• Non è un PNG — il payload è in realtà JPEG o WebP. Usa il nostro decoder generico da Base64 a immagine che rileva automaticamente qualsiasi formato.
D: La decodifica di nuovo in PNG perde qualità o trasparenza?
R: No. Base64 è una trasformazione reversibile bit per bit. Il PNG decodificato è byte-identico all'originale: canale alfa, palette (PLTE), trasparenza (tRNS), profilo colore (iCCP/sRGB), gamma (gAMA) e dimensioni fisiche dei pixel (pHYs) sopravvivono tutti. Un hash SHA-256 del file decodificato corrisponde all'hash dell'originale. Se noti qualche differenza, la modifica è avvenuta prima della codifica, non durante il round-trip Base64.
D: Posso decodificare Base64 in PNG usando il terminale?
R: Sì. Su macOS e Linux: echo 'iVBORw0KGgo…' | base64 -d > out.png
(macOS usa -D nelle versioni più vecchie.)
Su Windows PowerShell: [IO.File]::WriteAllBytes('out.png', [Convert]::FromBase64String('iVBORw0KGgo…'))
Se la stringa è un data URI completo, rimuovi prima il prefisso data:image/png;base64, (la maggior parte delle shell accetta sed 's|^data:.*base64,||').
D: Quanto può essere grande l'input PNG Base64?
R: Decodifichiamo nel browser, quindi il limite è la memoria del tuo dispositivo — comodamente 100 MB+ su desktop. Un PNG decodificato da 100 MB richiederebbe ~135 MB di testo Base64, che la maggior parte dei browser incolla senza problemi. Se lavori con PNG scientifici o medici molto grandi, considera invece la decodifica lato server, perché le prestazioni di atob() nel browser degradano vicino al limite di memoria.
D: Questo decoder funziona offline?
R: Sì. Tutta la decodifica usa le API native atob() + Uint8Array + Blob, integrate in ogni browser moderno. Dopo che la pagina si è caricata una volta, puoi disconnetterti dalla rete e continuare a decodificare. Nessun servizio esterno, nessun round-trip al server, nessuna analitica sul tuo payload immagine.
D: Qual è la differenza tra un PNG Base64 e un normale file PNG?
R: Contengono esattamente gli stessi byte. Un normale file .png è il binario grezzo; una stringa PNG Base64 è quello stesso binario riscritto nell'alfabeto ASCII a 64 caratteri. La forma Base64 è più grande del 33% ma sicura da inserire in attributi HTML, stringhe JSON, url() CSS ed email. Non puoi inserire byte PNG grezzi in HTML — contengono byte null e caratteri high-bit che rompono i parser di testo. Base64 è la soluzione alternativa.
D: Un PNG Base64 si carica più velocemente di un file .png separato?
R: Solo per immagini minuscole. Base64 risparmia un round-trip HTTP, che può essere di 50–100 ms su una connessione nuova — utile per icone UI critiche sotto i 4 KB. Per qualsiasi cosa più grande, un file .png separato servito con header di cache a lunga durata vince quasi sempre perché (a) gzip comprime male il testo Base64, (b) i data URI non possono essere memorizzati nella cache in modo indipendente e (c) bloccano il parsing dell'HTML. Usa Base64 per micro-asset above-the-fold, non per immagini hero.
D: Posso decodificare Base64 in PNG senza caricare i dati da nessuna parte?
R: Sì — questo strumento funziona al 100% lato client. La tua stringa Base64 viene decodificata in JavaScript sul tuo dispositivo, avvolta in un Blob localmente e visualizzata tramite URL.createObjectURL(). Niente viene caricato. Puoi verificarlo aprendo la scheda Rete dei dev-tools del browser mentre decodifichi — non viene inviata alcuna richiesta. Eseguire l'intero flusso offline (modalità aereo) funziona anche dopo il caricamento iniziale della pagina.
D: Come decodifico Base64 in PNG nel codice di produzione?
R: In Node.js: fs.writeFileSync('out.png', Buffer.from(b64, 'base64')). In Python: open('out.png','wb').write(base64.b64decode(b64)). In Go: b, _ := base64.StdEncoding.DecodeString(b64); os.WriteFile("out.png", b, 0644). In Java: Files.write(Path.of("out.png"), Base64.getDecoder().decode(b64)). In Rust: std::fs::write("out.png", base64::decode(b64)?)?. In PHP: file_put_contents('out.png', base64_decode($b64)). La libreria standard di ogni runtime include un decoder Base64 — raramente serve una dipendenza di terze parti.
D: Base64 a PNG vs Base64 a JPG — quale decoder dovrei usare?
R: Usa Base64 → PNG quando la stringa Base64 inizia con iVBORw0KGgo (o il data URI dice data:image/png;base64,). Usa Base64 → JPG quando la stringa inizia con /9j/4AAQ o /9j/2wC. Se non sei sicuro, usa il nostro decoder generico da Base64 a immagine che ispeziona i byte magici e sceglie automaticamente il formato giusto. Non forzare mai un formato che non corrisponde al payload — il file decodificato sarà costituito da byte validi ma illeggibili.