JPEG vs PNG vs BMP vs GIF vs SVG


40

Vorrei sapere quale di questi formati richiede meno memoria per la stessa qualità dell'immagine e quali sono le principali differenze tra questi formati.


15
Btw, JPG e JPEG si riferiscono entrambi alla stessa cosa (vedi ad esempio en.wikipedia.org/wiki/JPEG ), quindi il titolo potrebbe essere semplificato un po '.
Jonik,

1
Non sei sicuro di come la mia risposta non risponda alla tua domanda originale e in che modo la tua risposta scelta ... : - /
Django Reinhardt,

4
> quale di questi formati richiede meno memoria. Um, definire "meno memoria". Vuoi dire che occupa meno spazio su disco? (JPEG per foto, PNG e / o GIF per schermate.) Vuoi dire che il file compresso occupa meno spazio in memoria? (Come lo spazio su disco.) Vuoi dire che l'immagine decodificata occupa meno spazio in memoria ( Nessuna ; sono essenzialmente tutte uguali se decodificata in raw.)
Synetech

Risposte:


54

Da Qual è la differenza tra TIFF, GIF, JPG, JPEG, PNG e un file BMP?

BMP - Bitmap. Questo è stato probabilmente il primo tipo di formato di immagine digitale che posso ricordare. Ogni immagine su un computer sembrava quei giorni essere un BMP. In Windows XP il programma Paint salva automaticamente le sue immagini in BMP. Tuttavia, in Windows Vista e le immagini successive vengono ora salvate in JPEG. BMP è la piattaforma di base per molti altri tipi di file.

JPG / JPEG - (Joint Photographic Experts Group) Il formato jpeg viene utilizzato per fotografie a colori o immagini con molte sfumature o sfumature. Non va bene con bordi taglienti e tende a sfuocarli un po 'a meno che non siano conservati in alta qualità. Questo formato è diventato popolare con l'invenzione della fotocamera digitale. La maggior parte, se non tutte, le fotocamere digitali scaricano le foto sul tuo computer come file Jpeg. Ovviamente i produttori di fotocamere digitali vedono il valore nelle immagini di alta qualità che alla fine occupano meno spazio.

GIF - (Graphics Interchange Format) Il formato GIF è meglio utilizzato per testo, disegni al tratto, schermate, cartoni animati e animazioni. Gif è limitato a un numero totale di 256 colori o meno, quindi le immagini Gif sono relativamente piccole. Viene comunemente utilizzato per il caricamento rapido di pagine Web. È anche un ottimo banner o logo per la tua pagina web. Le immagini animate possono anche essere salvate in formato GIF come una sequenza di immagini statiche. Ad esempio, un banner lampeggiante verrebbe salvato come file Gif.

PNG - (Portable Networks Graphic) Questo formato senza perdita di dati è uno dei migliori formati di immagine. Non era sempre compatibile con tutti i browser Web o software di immagine, ma al giorno d'oggi è il miglior formato di immagine da utilizzare per il sito Web. Uso .png per loghi e schermate. Una delle sue abilità più sorprendenti è quella di essere in grado di comprimere le immagini senza perdita (senza perdita di pixel), anche se la dimensione finale compressa varia tra gli editor di immagini.

TIFF - (Tagged Image File Format) Questo formato di file non è stato aggiornato dal 1992 ed è ora di proprietà di Adobe. Può memorizzare un'immagine e i dati (tag) in un unico file. TIFF può essere compresso, ma è piuttosto la sua capacità di archiviare i dati di immagine in un formato senza perdita che rende un file TIFF un utile archivio di immagini, perché a differenza dei file JPEG standard, un file TIFF che utilizza la compressione senza perdita (o nessuno) può essere modificato e ri salvato senza perdere la qualità dell'immagine. Questo file viene comunemente utilizzato per la scansione, l'invio di fax, l'elaborazione di testi e così via. Non è più un formato di file comune da utilizzare con le tue foto digitali, poiché jpeg è di grande qualità e occupa meno spazio.


1
Ricorda che senza una sorta di "hack", IE6 non supporta ancora la trasparenza alfa nei file PNG, ovvero le aree di trasparenza semi opache
Josh Comley,

2
... e un numero sorprendente di persone usa ancora IE6 ( tinyurl.com/56kp ). E MS vuole supportarlo fino al 2014! :( ( tinyurl.com/qvdyn5 )
Josh Comley,

9
BMP: questa non è la base per altri formati di file. Per quanto ne so, l'intestazione BMP e la struttura dei file non sono condivise con altri formati (contrariamente a TIFF, ad esempio). JPEG: È stato creato ed esisteva sul web molto prima che le fotocamere digitali diventassero prevalenti. Inoltre, molte fotocamere digitali consentono di salvare un formato "grezzo" che di solito è un TIFF, anche se con contenuti specifici del fornitore. GIF: non limitato a 256 colori per immagine, ma solo a 256 colori per fotogramma (vedi en.wikipedia.org/wiki/Graphics_Interchange_Format#True_color ).
Joey,

4
TIFF: il formato prevalente di file e container per le immagini non elaborate da fotocamere digitali (quelle non point-and-shoot). TIFF consente dati quasi arbitrari (quindi taggati ) al suo interno, il che significa anche che supporta metodi di compressione arbitrari da LZW (GIF), LZ77 (PNG) a JPEG e altri. Inoltre TIFF consente più immagini (pagine) in un file.
Joey,

4
Mentre la risposta è buona nel rispondere alla differenza dei formati di immagine in termini di storia e uso generale, la risposta originale chiedeva anche su dimensioni e qualità relative ...
camster342

76

In stile xkcd da lbrandy.com :

testo alternativo


4
Illustra bene il punto :) (anche se non ho mai visto nessuno sostenere tale politica "Sempre JPEG!")
Jonik,

7
+1 Poiché questa immagine illustra così bene il problema del jpeg ...
Johan,

5
Vorrei poter raddoppiare il voto! Lo mando a tutti quelli che mi mandano jpeg scadenti!
Tim Büthe

3
© 2008 Louis Brandy. Tutti i diritti riservati....?
Arjan,

3
Facebook ha ad esempio questa politica "Sempre JPEG". Carico una bella immagine PNG lossless da 99 KB e Facebook la converte in un brutto JPEG da 175 KB.
Paolo

63

Dovresti essere consapevole di alcuni fattori chiave ...

Innanzitutto, esistono due tipi di compressione: Lossless e Lossy .

  • Senza perdita di dati significa che l'immagine viene ridotta, ma senza compromettere la qualità.
  • Perdita significa che l'immagine viene resa (anche) più piccola, ma a scapito della qualità. Se si salvasse ripetutamente un'immagine in un formato Lossy, la qualità dell'immagine peggiorerebbe progressivamente.

Esistono anche diverse profondità di colore (palette): Colore indicizzato e Colore diretto .

  • Indicizzato significa che l'immagine può memorizzare solo un numero limitato di colori (di solito 256), controllato dall'autore, in qualcosa chiamato Mappa dei colori
  • Diretto significa che è possibile memorizzare molte migliaia di colori che non sono stati scelti direttamente dall'autore

BMP : senza perdita / indicizzato e diretto

Questo è un vecchio formato. È senza perdita di dati (al momento del salvataggio non vengono persi dati sulle immagini), ma la compressione è minima o nulla, il che significa salvare poiché BMP comporta file di dimensioni MOLTO grandi. Può avere tavolozze sia indicizzate che dirette, ma questa è una piccola consolazione. Le dimensioni dei file sono così inutilmente grandi che nessuno usa mai questo formato.

Buono per: niente di veramente. Non c'è nulla che ecceda BMP o che non sia migliorato da altri formati.

BMP vs GIF


GIF - Solo senza perdita / indicizzato

GIF utilizza la compressione senza perdita di dati, il che significa che è possibile salvare l'immagine più e più volte e non perdere mai alcun dato. Le dimensioni del file sono molto più piccole di BMP, poiché in realtà viene utilizzata una buona compressione, ma può solo memorizzare una tavolozza indicizzata. Ciò significa che per la maggior parte dei casi d'uso , nel file possono essere presenti al massimo 256 colori diversi. Sembra una piccola quantità, e lo è.

Le immagini GIF possono anche essere animate e avere trasparenza.

Buono per: loghi, disegni al tratto e altre immagini semplici che devono essere di piccole dimensioni. Utilizzato davvero solo per i siti Web.

GIF vs JPEG


JPEG - Perdita / diretta

Le immagini JPEG sono state progettate per ridurre al minimo le immagini fotografiche dettagliate rimuovendo le informazioni che l'occhio umano non noterà. Di conseguenza è un formato Lossy e il salvataggio ripetuto dello stesso file comporta la perdita di più dati nel tempo. Ha una tavolozza di migliaia di colori ed è quindi ottimo per le fotografie, ma la compressione con perdita di dati significa che è dannosa per i loghi e i disegni a tratteggio: non solo appariranno sfocati, ma tali immagini avranno anche una dimensione del file più grande rispetto alle GIF!

Consigliato per: fotografie. Inoltre, gradienti.

JPEG vs GIF


PNG-8 - Senza perdita / indicizzato

PNG è un formato più recente e PNG-8 (la versione indicizzata di PNG) è davvero un buon sostituto delle GIF. Purtroppo, ha alcuni inconvenienti: in primo luogo non può supportare l'animazione come GIF può (beh può, ma solo Firefox sembra supportarla, a differenza dell'animazione GIF che è supportata da ogni browser). In secondo luogo, presenta alcuni problemi di supporto con browser meno recenti come IE6. In terzo luogo, software importanti come Photoshop hanno un'implementazione molto scarsa del formato. (Accidenti a te, Adobe!) PNG-8 può memorizzare solo 256 colori, come le GIF.

Buono per: la cosa principale che PNG-8 fa meglio delle GIF è avere il supporto per Alpha Transparency.

PNG-8 vs GIF

Nota importante: Photoshop non supporta la trasparenza Alpha per i file PNG-8. (Maledizione a Photoshop!) Tuttavia, ci sono modi per convertire Photoshop PNG-24 in file PNG-8 mantenendo la loro trasparenza. Un metodo è PNGQuant , un altro è quello di salvare i file con Fireworks .


PNG-24 - Lossless / Direct

PNG-24 è un formato eccezionale che combina la codifica Lossless con il colore diretto (migliaia di colori, proprio come JPEG). È molto simile a BMP a questo proposito, tranne per il fatto che PNG comprime effettivamente le immagini, quindi risulta in file molto più piccoli. Sfortunatamente i file PNG-24 saranno ancora molto più grandi di JPEG, GIF e PNG-8, quindi devi ancora considerare se vuoi davvero usarne uno.

Anche se i PNG-24 consentono migliaia di colori pur avendo compressione, non sono destinati a sostituire le immagini JPEG. Una foto salvata come PNG-24 sarà probabilmente almeno 5 volte più grande di un'immagine JPEG equivalente, con un miglioramento molto piccolo della qualità visibile. (Naturalmente, questo potrebbe essere un risultato desiderabile se non sei preoccupato per le dimensioni del file e vuoi ottenere la migliore qualità dell'immagine che puoi.)

Proprio come PNG-8, PNG-24 supporta anche la trasparenza alfa.


SVG - Lossless / Vector

Un tipo di file che sta attualmente crescendo in popolarità è SVG, che è diverso da tutto quanto sopra in quanto è un formato di file vettoriale (i precedenti sono tutti raster ). Ciò significa che in realtà comprende linee e curve anziché pixel. Quando ingrandisci un'immagine vettoriale, vedi ancora una curva o una linea. Quando ingrandisci un'immagine raster, vedrai i pixel.

Per esempio:

PNG vs SVG

SVG vs PNG

Ciò significa che SVG è perfetto per i loghi e le icone che si desidera mantenere la nitidezza sugli schermi Retina o con dimensioni diverse.

Inoltre, i file SVG sono scritti in XML e quindi possono essere aperti e modificati in un editor di testo, che può essere manipolato al volo, se lo si desidera. Ad esempio, è possibile utilizzare JavaScript per modificare il colore di un'icona SVG su un sito Web proprio come si farebbe con un po 'di testo (cioè non è necessaria una seconda immagine).

Spero che aiuti!


Buona illustrazione Fai attenzione agli artefatti causati dalla compressione. Penso che JPEG come i formati di compressione video abbia il problema che le zone rosse solide tenderanno a "sanguinare" sui bordi.
James P.

1
Ti sbagli su PNG che non supporta l'animazione. PNG può farlo bene, molti visualizzatori e browser non lo supportano. Sembra che en.wikipedia.org/wiki/APNG Firefox lo supporti abbastanza bene. people.mozilla.com/~dolske/apng/demo.html
Rob,

1
@DjangoReinhardt So che hai incluso un esempio nella tua risposta, ma per quanto riguarda SVG vs PNG, in quali circostanze potremmo vedere un SVG più grande (nella dimensione del file) rispetto a un PNG?
Hanna,

1
@Johannes Ottima domanda. Ci sono alcuni aspetti negativi di SVG, specialmente se sono particolarmente complicati (o mal salvati - ma è colpa dell'autore, non del formato del file). Proverò ad aggiungere qualcosa che risponda a questo - anche se sospetto che un SVG sarà sempre più piccolo (o di dimensioni uguali) a un PNG.
Django Reinhardt,

1
Un altro aspetto divertente: i file BMP hanno una dimensione simile a PNG se li comprimi.
jiggunjer,

28

Le risposte esistenti includono pochissimi dati tecnici, quindi li includerò qui.

  • JPEG : colore fino a 24 bit (forse di più?), Compressione variabile (generalmente alta), perdita, nessun supporto alfa
  • PNG : colore fino a 48 bit, compressione moderata, senza perdita, supporto alfa
  • BMP : colore fino a 24 bit, compressione molto ridotta, senza perdita, supporto alfa
  • GIF : colore fino a 8 bit, compressione ridotta, senza perdita, supporto trasparenza, supporto animazione

Profondità di colore

  • Colore a 8 bit == 256 colori
  • Colore a 24 bit == 16.777.216 colori
  • Colore a 48 bit == 281.474.976.710.656 colori

La maggior parte dei monitor per computer funziona a profondità di colore a 24 bit. L'occhio umano può distinguere su così tanti colori. Una profondità di colore aggiuntiva è principalmente in grado di conservare le informazioni di un sensore in modo che la manipolazione di una fotografia abbia più dati su cui lavorare. Cercare di rappresentare una fotografia a colori a 8 bit si tradurrà in granulosità.

Compressione

Questo in sostanza si riferisce alla dimensione del file finale. Più compressione equivale a un file più piccolo. Tuttavia, JPEG ottiene file di piccole dimensioni eliminando i dati. Questa operazione viene definita compressione "con perdita", poiché non è possibile ripristinare i dati non compressi originali. La sua compressione è inoltre ottimizzata per le fotografie in cui i bordi ad alto contrasto sono rari. Come indicato in altre risposte, è una cattiva scelta per qualsiasi cosa diversa dalle fotografie.

Alpha / trasparenza

Alpha si riferisce alla trasparenza, ma implica che esiste più di un livello di trasparenza. GIF ha la capacità di definire pixel trasparenti, ma è opaco o trasparente al 100% e "trasparente" viene utilizzato come uno dei 256 colori. PNG e BMP hanno la capacità di contrassegnare ogni pixel come opaco, trasparente o parzialmente trasparente, come un pezzo di vetro colorato. Più comunemente, ci sono 256 livelli di trasparenza, sebbene PNG possa effettivamente avere fino a 65.536 livelli. JPEG non supporta la trasparenza.

Animazione

In effetti, di questi formati, solo GIF ha alcun supporto per l'animazione. Esistono specifiche per l'animazione con PNG (MNG, APNG) e JPEG (MJPEG), ma non sono ampiamente supportate. (APNG funziona nelle versioni recenti di Firefox e Opera.) In pratica, la maggior parte delle animazioni che vedi sulle pagine Web sono implementate in Flash.


APNG sta guadagnando molto supporto.
Phoshi,

Abbastanza sicuro. Non me ne ero accorto.
wfaulk,

Bene, la maggior parte dei browser moderni lo supporta, ma è poco noto. IE8 non lo supporta, non credo (ma può leggerlo come PNG, quindi visualizza il primo fotogramma)
Phoshi,

Ottima elaborazione del pensiero ..
InfantPro'Aravind '

25
  • Usa GIF se l'immagine ha pochi colori (come le icone). Può essere utilizzato anche per immagini animate (come banner pubblicitari).
  • Usa JPG se l'immagine ha molti colori (come le foto). JPEG è la stessa cosa.
  • Utilizzare BMP se si desidera salvare l'immagine senza compressione. Dimensione file molto più grande!
  • Usa PNG se vuoi pubblicare l'immagine sul web ed essere aggiornato sugli standard moderni. Pro: adatto come moderno sostituto di GIF e JPG, è uno standard aperto e consente la trasparenza. Contro: non supportato da software meno recenti e la dimensione del file può essere maggiore di GIF o JPG comparabili.

3
+1 per considerazioni pratiche su quando usarli.
Andrew Coleson,

4
Fai attenzione all'uso dei PNG. Come formato senza perdita di dati, sono generalmente inadatti alle fotografie e simili, a causa delle dimensioni del file. Sicuramente non un "rimpiazzo moderno" a tutti gli effetti. La transcodifica da JPG a PNG sarebbe davvero stupida.
Paul McMillan,

@Paul - Sono d'accordo, non è certamente utile per tutti gli scopi e in particolare non per le foto, ma quando viene utilizzato per la grafica web sostituisce JPG.
Torben Gundtofte-Bruun,

2
Non penso che ci sia mai bisogno di BPM al giorno d'oggi.
Arjan,

1
PNG è quasi sempre più piccolo di GIF. Ha uno schema di compressione superiore. Quando è più grande della stessa GIF, di solito è colpa di software scadente (ad esempio Photoshop prima di CS2). Usa il PNG con palette (non a 24 bit!) E correggili con l'ottimizzatore PNG: imageoptim.pornel.net e non vorrai mai perdere di nuovo la larghezza di banda sulle GIF.
Kornel,

13

inserisci qui la descrizione dell'immagine


BMP:

  • Vecchio formato. Nessuna perdita di dati.
  • Non compresso: memorizza il valore di ciascun pixel. Quindi le immagini delle stesse dimensioni hanno le stesse dimensioni di file (kilobyte / megabyte). Ad esempio, le immagini BMP 800 × 600 sono sempre 1,37 MiB come la famosa carta da parati "Bliss" delle colline di WinXP.
  • Trasparenza / traslucenza non supportate
  • Non raccomandato per niente

JPG:

  • Compressione in perdita.
  • La quantità di perdita può essere impostata, ad esempio, durante la creazione di una grafica e il salvataggio in Photoshop.
  • Salvare come qualità superiore significa meno perdita di colori / profondità e dimensioni file elevate e viceversa.
  • Trasparenza / traslucenza non supportate
  • Consigliato per fotografie, non per grafica / icone

PNG:

  • Compressione senza perdita (sì, meglio di entrambe le PAROLE / mondi)
  • Supporta trasparenza e traslucenza, entrambi sono diversi
  • Consigliato per grafica / icone statiche, non per fotografie

GIF:

  • Supporta la trasparenza ma non la traslucenza
  • Consigliato solo per grafica / icone ANIMATE
  • Forse le fotografie in movimento in cornici in Harry Potter sono GIF: D

1
Bella panoramica. Ma perché BMP è contrassegnato come "lossless: false" nella tabella? Nel testo dichiari correttamente IMHO che BMP è davvero senza perdite .
MP

2
So che questo è un vecchio thread, e grazie per la risposta, ma nota che BMP è facoltativamente compresso con una compressione RLE molto semplicistica, senza perdita di dati.
ysap

Qualche altro motivo per cui PNG NON ​​è raccomandato per le fotografie, a parte le dimensioni del file più grandi rispetto a JPEG? Prima ho scansionato le mie vecchie foto in formato JPEG, poi le ho scansionate nuovamente in PNG dopo aver realizzato che stavo scansionando una foto che sarebbe stata archiviata in un formato con perdita.
JAT86,

4

BMP utilizza bit non elaborati con un'intestazione piccola o codifica run-length . JPEG utilizza la trasformazione discreta del coseno . Vedi il blocco in fondo agli articoli di Wikipedia per altri algoritmi di compressione / codifica.


Mi piace il PCX. Molto tempo fa quando decisi di imparare l'assemblatore, per il mio primo programma, ho scritto un visualizzatore PCX. È stato abbastanza educativo. (Ho non scrivo un visualizzatore JPG). :-D
Synetech,

3

Guida semplice:

  • Per le fotografie, utilizzare:
    • Formati non elaborati specifici della fotocamera se si dispone di attrezzature professionali e si desidera eseguire molte operazioni di post-elaborazione
    • JPEG altrimenti (per pubblicare foto sul Web, dovrai convertire anche i formati raw in JPEG)
  • Per qualsiasi cosa con spigoli vivi, linee sottili e pochi colori (come schermate o loghi) usare:
    • GIF se stai realizzando una pagina web che deve supportare browser molto vecchi (principalmente IE 6) o se vuoi realizzare animazioni semplici
    • PNG altrimenti
  • Non ci sono buoni motivi per usare BMP, a meno che un programma specifico non accetti altri formati.

1
IE supporta PNG da qualche versione 4.x (5 su Mac), ma PNG non è trasparente.
Arjan,

1
IE6 in realtà supporta anche PNG trasparente se ha una trasparenza simile a GIF. Non è supportato solo PNG con alpha completo.
Kornel,

1
In realtà Alpha Transparency È supportato, a condizione che sia un PNG a 8 bit. Strano, ma vero.
Django Reinhardt,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.