Immagine PNG (.png)
Raccomandazione StandardPortable Network Graphics (PNG) è un formato di file grafico raster privo di restrizioni che supporta la compressione dei dati senza perdita, colori indicizzati e trasparenza del canale alfa variabile.
Converti da PNG a JPG
Convertitore gratuito da PNG a JPG nel browser. Converti i file istantaneamente sul tuo dispositivo.
Comprimi PNG online
Privato - i file non lasciano mai il tuo dispositivo
Ispezione e metadati
I sistemi operativi e gli analizzatori di file identificano i file PNG ispezionando la sequenza di byte binari iniziale:
Firma dell'intestazione a livello di byte (Magic Bytes)
I sistemi operativi e gli analizzatori di file identificano i file PNG ispezionando la sequenza di byte binari iniziale:
FIRMA ESADECIMALE (OFFSET 0):
89 50 4E 47 0D 0A 1A 0ARAPPRESENTAZIONE ASCII: .PNG....
Standardizzazione: Raccomandazione W3C (1996) / ISO/IEC 15948:2004
Specifiche tecniche
| Architettura del contenitore | Contenitore binario basato su blocchi (chunk) con verifica CRC32 a 4 byte per blocco |
| Compressione | Deflate (codifica LZ77 + Huffman) con 5 filtri predittivi per riga di scansione (None, Sub, Up, Average, Paeth) |
| Endianness dei byte | Big-Endian (ordine dei byte di rete) per lunghezze dei chunk, dimensioni e CRC |
| Spazi colore | sRGB, Display P3, Palette indicizzata (1-8 bit), Scala di grigi, Colori spot (Pantone) |
| Canali e struttura | RGB + Alpha (fino a 16 bit per canale / RGBA a 64 bit) |
| Dimensioni massime | 2.147.483.647 x 2.147.483.647 pixel (interi senza segno a 4 byte) |
| Trasparenza | Canale alfa con trasparenza variabile completa a 8 bit / 16 bit |
| Streaming e progressivo | L'algoritmo di interlacciamento a 7 passaggi Adam7 consente il rendering progressivo 2D delle righe di scansione |
Matrice di confronto tecnico: PNG vs Concorrenti
| Attributo tecnico | PNG (Attuale) | WebP | AVIF | JPEG |
|---|---|---|---|---|
| Tipo di compressione | Strettamente senza perdita (Deflate + filtri predittivi 2D) | Con perdita (VP8) e senza perdita (VP8L) | Con perdita (AV1 intra) e senza perdita | Strettamente con perdita (trasformata coseno discreta) |
| Trasparenza alfa | Canale alfa con profondità variabile di 8 bit / 16 bit | Canale alfa a 8 bit supportato | Alfa a 8 bit / 10 bit / 12 bit supportato | Nessun supporto per il canale di trasparenza |
| Dimensione file (fotografie) | Spesso più grande dei formati con perdita per le fotografie; le dimensioni relative variano in base all’immagine e all’encoder | Può essere più piccolo di JPEG; i risultati variano in base all’immagine e all’encoder | Può essere più piccolo di JPEG; i risultati variano in base all’immagine e all’encoder | Valore di riferimento medio |
| Dimensione file (grafica/UI) | Estremamente compatto per schermate, grafica al tratto e testo | Eccellente modalità senza perdita | Buono, ma più lento da codificare | Scarsa (produce artefatti di ringing lungo i bordi taglienti) |
| Compatibilità browser | 100% universale su tutti i browser dal 1998 | Supporto browser moderni al 97%+ | Supporto browser moderni al 93%+ | 100% universale |
Modalità di corruzione comuni e guida al recupero esadecimale
Il visualizzatore di immagini mostra 'Errore irreversibile: File PNG non valido' oppure non riesce ad aprire il file.
Causa principale: I primi 8 byte sono stati alterati da una modalità di trasferimento ASCII (trasformando 0x0D 0x0A in 0x0A o 0x0D 0x0D 0x0A).
Ripristino: Apri il file in un editor esadecimale e verifica che i primi 8 byte corrispondano a '89 50 4E 47 0D 0A 1A 0A'. Il ripristino di questi 8 byte esatti dell'intestazione consente spesso di recuperare l'immagine.
pngcheck segnala 'Errore CRC nel blocco IDAT' o l'immagine si carica parzialmente con le righe di scansione inferiori danneggiate.
Causa principale: Corruzione di bit nel flusso di dati zlib compresso o checksum CRC32 non valido in un blocco IDAT.
Ripristino: Usa pngcheck -f o utilità di recupero del flusso Deflate per ricalcolare valori CRC32 validi, o decomprimi le righe di scansione superstiti fino al blocco corrotto.
L'immagine viene visualizzata correttamente nei visualizzatori desktop ma non nelle applicazioni iOS.
Causa principale: iOS si aspetta il formato proprietario con byte scambiati CgBI di Apple, o blocchi dello spazio colore non standard.
Ripristino: Normalizza l'immagine usando 'pngcrush -revert-iphone-optimizations' per ripristinare l'ordine RGBA standard W3C.
Analisi di sicurezza e vettori di attacco del parser
PNG è supportato da molti sistemi operativi e applicazioni. I rischi per la sicurezza includono l’esaurimento della memoria del decodificatore e blocchi ausiliari dannosi.
Vettori di attacco noti
- Blocchi di metadati tEXt e zTXt di grandi dimensioni che attivano la negazione del servizio per esaurimento di memoria (OOM) nei decodificatori non isolati in sandbox.
- Vulnerabilità di buffer overflow dell'heap nelle versioni legacy di libpng (es. CVE-2015-8126 in png_set_PLTE).
- Attacchi di decompressione a inondazione di pixel in cui un'immagine con dimensioni di file ridotte dichiara dimensioni enormi (es. 100.000 x 100.000 pixel).
- Esfiltrazione steganografica che nasconde payload crittografati in blocchi privati ausiliari (es. eXIf o tipi di blocchi personalizzati).
Migliori pratiche difensive: Valida sempre le dimensioni dell’immagine prima di allocare i buffer dei pixel in memoria. Rimuovi i blocchi ausiliari non essenziali (eXIf, tEXt) dai file caricati dagli utenti con un sanitizzatore che gestisca la memoria in modo sicuro.
Origini storiche e tappe fondamentali
Vantaggi principali
- PNG usa una compressione senza perdita, quindi codificare un’immagine invariata non introduce perdite dovute alla compressione; modifiche o conversioni del colore possono comunque cambiare i valori dei pixel.
- La trasparenza alfa graduale a 8 bit consente una fusione pulita su sfondi complessi.
- I blocchi di correzione gamma e cromaticità garantiscono un rendering coerente su diversi monitor.
Limiti tecnici e svantaggi
- Dimensioni dei file significativamente superiori rispetto ai moderni formati con perdita come WebP o AVIF per contenuti fotografici.
- Nessuna animazione multi-frame nativa nel PNG standard (richiede l'estensione APNG).
- L'elevata profondità di bit (16 bit per canale) crea enormi buffer di decodifica in memoria non compressi.
Curiosità tecniche
- L'intestazione magica a 8 byte è stata progettata specificamente per rilevare la corruzione della fine linea CR/LF nei trasferimenti FTP.
- L'acronimo ricorsivo non ufficiale per PNG era 'PNG's Not GIF'.
- Apple utilizza un blocco proprietario CgBI nei PNG delle app iOS che riordina i canali da RGBA a BGRA per il rendering diretto sulla GPU.
Domande tecniche frequenti
Perché la dimensione di un file PNG a volte aumenta quando viene salvato negli editor di immagini?
Le diverse suite software utilizzano livelli di compressione Deflate e euristiche differenti per i filtri predittivi delle righe di scansione. Programmi come Photoshop aggiungono frequentemente profili colore non compressi, blocchi di metadati XMP e dimensioni di blocchi IDAT non ottimizzati. Strumenti dedicati come File2File.app Compressor rivalutano tutti e 5 i filtri delle righe di scansione per ottenere la dimensione minima del file.
Qual è la differenza tra PNG-8 e PNG-24?
PNG-8 utilizza una tavolozza di colori indicizzata fino a 256 colori (simile a GIF), producendo file molto piccoli adatti a icone semplici. PNG-24 supporta 16,7 milioni di colori (Truecolor 8 bit per canale), con PNG-32 che aggiunge un canale di trasparenza alfa a 8 bit.
Perché PNG ha 5 filtri predittivi per le righe di scansione?
Deflate comprime i pattern di byte ripetuti. Poiché i valori dei pixel fotografici o sfumati cambiano gradualmente, PNG filtra ciascuna riga di scansione (None, Sub, Up, Average, Paeth) calcolando le differenze tra pixel adiacenti. Questo trasforma i dati delle sfumature in stringhe di byte prossimi allo zero che si comprimono drasticamente meglio sotto Deflate.
PNG supporta gli spazi colore CMYK per la stampa commerciale?
No. La specifica ufficiale W3C PNG limita deliberatamente i tipi di colore a Scala di grigi, Indicizzato e RGB. I flussi di lavoro di stampa professionali che richiedono CMYK devono utilizzare contenitori TIFF o PDF.
Coppie di conversione per PNG correlate
La conversione di immagini raster PNG in formato JPEG riduce le dimensioni del file applicando una compressione con perdita, rendendo le immagini più veloci da caricare sui siti Web e riducendo lo spazio di archiviazione.
La conversione di un’immagine raster JPEG con perdita in un’immagine raster PNG senza perdita evita ulteriori perdite di qualità e aggiunge il supporto alla trasparenza tramite canale alfa.
Convertire immagini PNG in WebP può ridurre le dimensioni mantenendo la trasparenza; il risultato dipende dall’uso di codifica lossy o lossless e dal contenuto dell’immagine.
Convertire WebP in PNG crea un’immagine statica per i software compatibili con PNG; l’animazione WebP non viene mantenuta e i dettagli persi nella sorgente lossy non possono essere recuperati.
La conversione da HEIC a PNG trasforma foto compresse HEVC con perdita in file grafici senza perdita ampiamente supportati.
La conversione di file vettoriali SVG in immagini raster PNG trasforma la grafica scalabile basata su codice in griglie a pixel fissi per garantire la compatibilità con tutte le applicazioni.
Incapsula le immagini raster PNG all'interno di un contenitore vettoriale SVG XML per il ridimensionamento adattivo sul Web e l'integrazione in layout compatibili con la grafica vettoriale.
Converti la grafica PSD di Adobe Photoshop in immagini PNG senza perdita di dati, con trasparenza completa del canale alfa, direttamente nel browser e senza trasmettere dati al server.