Qual è la differenza tra "JPG" / "JPEG" / "PNG" / "BMP" / "GIF" / "TIFF"?


102

Ho visto molti tipi di estensioni di immagine ma non ho mai capito le reali differenze tra loro. Ci sono collegamenti là fuori che spiegano chiaramente le loro differenze?

Esistono standard da considerare quando si sceglie un particolare tipo di immagine da utilizzare in un'applicazione? Cosa usiamo per le applicazioni web?


Qualcuno con una reputazione migliore di me dovrebbe esaminare queste risposte e consolidarle.
Dana Robinson,


Quella domanda è chiusa e potrebbe finire per essere cancellata. La stessa risposta è sotto e dovrebbe essere accettata come risposta IMO.
toxalot

Risposte:


91

Sì. Sono formati di file diversi (e le loro estensioni di file).

Le voci di Wikipedia per ciascuno dei formati ti forniranno un bel po 'di informazioni:

  • JPEG (o JPG, per l'estensione del file; Joint Photographic Experts Group)
  • PNG (Portable Network Graphics)
  • BMP (bitmap)
  • GIF (Graphics Interchange Format)
  • TIFF (o TIF, per l'estensione del file; formato file immagine con tag)

I formati delle immagini possono essere suddivisi in tre grandi categorie:

  • compressione con perdita,
  • compressione senza perdite,
  • non compresso,

I formati non compressi occupano la maggior parte dei dati, ma sono rappresentazioni esatte dell'immagine. I formati bitmap come BMP generalmente non sono compressi, sebbene ci siano anche file BMP compressi.

I formati di compressione lossy sono generalmente adatti per le fotografie. Non è adatto per illustrazioni, disegni e testo, poiché gli artefatti di compressione derivanti dalla compressione dell'immagine risulteranno evidenti. La compressione lossy, come suggerisce il nome, non codifica tutte le informazioni del file, quindi quando viene ripristinata in un'immagine, non sarà una rappresentazione esatta dell'originale. Tuttavia, è in grado di comprimere le immagini in modo molto efficace rispetto ai formati senza perdita di dati, poiché elimina determinate informazioni. Un ottimo esempio di un formato di compressione con perdita di dati è JPEG.

I formati di compressione senza perdita sono adatti per illustrazioni, disegni, testo e altro materiale che non avrebbe un bell'aspetto se compresso con compressione con perdita. Come suggerisce il nome, la compressione senza perdita codificherà tutte le informazioni dall'originale, quindi quando l'immagine viene decompressa, sarà una rappresentazione esatta dell'originale. Poiché non vi è alcuna perdita di informazioni nella compressione senza perdita, nella maggior parte dei casi non è in grado di ottenere una compressione tanto elevata quanto quella con perdita. Esempi di compressione di immagini senza perdita di dati sono PNG e GIF. (GIF consente solo immagini a 8 bit.)

TIFF e BMP sono entrambi formati "wrapper", poiché i dati all'interno possono dipendere dalla tecnica di compressione utilizzata. Può contenere sia immagini compresse che non compresse.

Quando utilizzare un determinato formato di compressione delle immagini dipende davvero da cosa viene compresso.

Domanda correlata: compressione spietata di immagini di grandi dimensioni per il Web


Non penso che BMP sia un formato 'wrapper' nel modo in cui lo è TIFF (o PDF è per quell'amtter), né che possa essere compresso (voglio dire, puoi comprimerlo, ma non contiene dati compressi ).
ChrisW

2
@ChrisW: BMP consente di comprimere il contenuto del file. Ho appena dato un'occhiata alla pagina di Wikipedia a cui ho fatto riferimento e supporta RLE, PNG e JPEG. (Non sapevo che supportasse i contenuti PNG e JPEG - ho imparato qualcosa di nuovo!)
coobird

2
BMP generalmente soffre dello stesso problema di WAV, entrambi non sono mai standardizzati e come tali vengono abusati per quasi tutto ciò che puoi inventare.
Jasper Bekkers,

3
@PhilWhittington Stai confondendo l'oggetto bitmap con il formato del file. La classe Bitmap salva in molti formati diversi, inclusi BMP, TIFF e PNG, ma salva da un oggetto bitmap (cioè i dati pixel grezzi). Non esiste un PNG all'interno di un file BMP.
Chuck Le Butt

1
@Monk msdn.microsoft.com/en-us/library/windows/desktop/... e cercare "biCompression". Questa struttura C è memorizzata byte per byte in un file BMP, quindi anche i file BMP possono supportare questi tipi di compressione. Solo perché nessuno li usa non significa che non siano validi.
user253751

78

Dovresti essere consapevole di alcuni fattori chiave ...

Innanzitutto, ci sono due tipi di compressione: Lossless e Lossy .

Senza perdita significa che l'immagine viene rimpicciolita, ma senza pregiudicare la qualità. Lossy significa che l'immagine è ridotta (ancora), ma a scapito della qualità. Se si salvava più volte un'immagine in un formato Lossy, la qualità dell'immagine peggiorava progressivamente.

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

Con Indicizzato significa che l'immagine può memorizzare solo un numero limitato di colori (solitamente 256) che vengono scelti dall'autore dell'immagine, con Diretto significa che puoi memorizzare molte migliaia di colori che non sono stati scelti dall'autore.


BMP - Lossless / indicizzato e diretto

Questo è un vecchio formato. È senza perdita (nessun dato di immagine viene perso al salvataggio) ma c'è anche poca o nessuna compressione, il che significa che il salvataggio come BMP si traduce in 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 utilizza mai veramente questo formato.

Buono per: niente di veramente. Non c'è niente in cui BMP eccelle, o non è fatto meglio da altri formati.

BMP vs GIF


GIF - Solo senza perdita di dati / indicizzato

GIF utilizza la compressione senza perdita, il che significa che puoi salvare l'immagine più e più volte e non perdere mai alcun dato. Le dimensioni dei file sono molto inferiori rispetto a BMP, poiché viene effettivamente utilizzata una buona compressione, ma può memorizzare solo una tavolozza indicizzata. Ciò significa che nel file può essere presente solo un massimo di 256 colori diversi. Sembra una quantità piuttosto piccola, 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 piccole. Veramente utilizzato solo per i siti web.

GIF vs JPEG


JPEG - Lossy / Diretto

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 dello stesso file più e più volte comporterà la perdita di più dati nel tempo. Ha una tavolozza di migliaia di colori e quindi è ottimo per le fotografie, ma la compressione con perdita significa che è dannoso per loghi e disegni al tratto: non solo appariranno sfocati, ma tali immagini avranno anche una dimensione di file maggiore rispetto alle GIF!

Buono 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, tuttavia, ha alcuni inconvenienti: in primo luogo non può supportare l'animazione come può fare GIF (beh, può, ma solo Firefox sembra supportarla, a differenza dell'animazione GIF che è supportata da tutti i browser). In secondo luogo ha alcuni problemi di supporto con i browser meno recenti come IE6. In terzo luogo, software importanti come Photoshop hanno un'implementazione molto scarsa del formato. (Dannazione, 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 contro GIF

Nota importante: Photoshop non supporta la trasparenza alfa per i file PNG-8. (Accidenti a te, Photoshop!) Ci sono modi per convertire Photoshop PNG-24 in file PNG-8 mantenendo la loro trasparenza, però. Un metodo è PNGQuant , un altro è salvare i file con Fireworks .


PNG-24 - Lossless / Diretto

PNG-24 è un ottimo formato 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 si traduce 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 la compressione, non sono destinati a sostituire le immagini JPEG. Una fotografia salvata come PNG-24 sarà probabilmente almeno 5 volte più grande di un'immagine JPEG equivalente, con un miglioramento minimo della qualità visibile. (Ovviamente, questo potrebbe essere un risultato desiderabile se non sei preoccupato per la dimensione del file e desideri ottenere la migliore qualità di immagine possibile.)

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

Spero che aiuti!


8
+1 L'unica cosa che manca per rendere questa una risposta completa alla domanda di OP è una menzione per JPG (estensione file comune per JPEG) e una sezione per TIFF.
toxalot

2
Menzionerò anche che la compressione PNG lo rende buono in situazioni che potresti non aspettarti. Ad esempio, i gradienti sono altamente comprimibili con PNG.
Henry Merriam

27

Generalmente questi sono:

Compressione senza perdita Gli algoritmi di compressione senza perdita riducono le dimensioni del file senza perdere la qualità dell'immagine, sebbene non vengano compressi in un file così piccolo come un file di compressione con perdita. Quando la qualità dell'immagine è valutata al di sopra della dimensione del file, in genere vengono scelti algoritmi lossless.

Compressione lossy Gli algoritmi di compressione lossy sfruttano i limiti intrinseci dell'occhio umano e scartano le informazioni invisibili. La maggior parte degli algoritmi di compressione con perdita consente livelli di qualità variabili (compressione) e all'aumentare di questi livelli, la dimensione del file viene ridotta. Ai massimi livelli di compressione, il deterioramento dell'immagine diventa evidente come "artefatto da compressione". Le immagini sottostanti dimostrano il notevole artefatto degli algoritmi di compressione con perdita; selezionare l'immagine in miniatura per visualizzare la versione a grandezza naturale.

Ogni formato è diverso come descritto di seguito:

JPEG I file JPEG (Joint Photographic Experts Group) sono (nella maggior parte dei casi) un formato con perdita di dati; l'estensione del nome file DOS è JPG (altri sistemi operativi potrebbero utilizzare JPEG). Quasi tutte le fotocamere digitali possono salvare le immagini nel formato JPEG, che supporta 8 bit per colore (rosso, verde, blu) per un totale di 24 bit, producendo file relativamente piccoli. Quando non è troppo elevata, la compressione non riduce notevolmente la qualità dell'immagine, ma i file JPEG subiscono un degrado generazionale quando vengono modificati e salvati ripetutamente. Le immagini fotografiche possono essere meglio memorizzate in un formato senza perdita di dati non JPEG se verranno rieditate o se piccoli "artefatti" (macchie causate dall'algoritmo di compressione JPEG) non sono accettabili. Il formato JPEG viene utilizzato anche come algoritmo di compressione delle immagini in molti file Adobe PDF.

TIFF Il TIFF (Tagged Image File Format) è un formato flessibile che normalmente salva 8 bit o 16 bit per colore (rosso, verde, blu) per totali a 24 bit e 48 bit, rispettivamente, utilizzando i nomi di file TIFF o TIF . La flessibilità del TIFF è sia una benedizione che una maledizione, perché nessun singolo lettore legge ogni tipo di file TIFF. I TIFF sono lossy e lossless; alcuni offrono una compressione senza perdite relativamente buona per immagini a due livelli (bianco e nero). Alcune fotocamere digitali possono salvare in formato TIFF, utilizzando l'algoritmo di compressione LZW per l'archiviazione senza perdite. Il formato immagine TIFF non è ampiamente supportato dai browser web. TIFF rimane ampiamente accettato come standard per i file fotografici nel settore della stampa. Il TIFF può gestire spazi colore specifici del dispositivo, come il CMYK definito da un particolare set di inchiostri per macchine da stampa.

PNG Il formato di file PNG (Portable Network Graphics) è stato creato come successore gratuito e open source del GIF. Il formato di file PNG supporta TrueColor (16 milioni di colori) mentre il GIF supporta solo 256 colori. Il file PNG eccelle quando l'immagine ha aree grandi e colorate in modo uniforme. Il formato PNG lossless è più adatto per la modifica di immagini e i formati lossy, come JPG, sono i migliori per la distribuzione finale di immagini fotografiche, perché i file JPG sono più piccoli dei file PNG. Molti browser meno recenti attualmente non supportano il formato di file PNG, tuttavia, con Internet Explorer 7, tutti i browser Web contemporanei supportano completamente il formato PNG. L'interlacciamento Adam7 consente un'anteprima anticipata, anche quando è stata trasmessa solo una piccola percentuale dei dati dell'immagine.

GIF GIF (Graphics Interchange Format) è limitato a una tavolozza a 8 bit o 256 colori. Ciò rende il formato GIF adatto per la memorizzazione di grafica con relativamente pochi colori come semplici diagrammi, forme, loghi e immagini in stile cartone animato. Il formato GIF supporta l'animazione ed è ancora ampiamente utilizzato per fornire effetti di animazione delle immagini. Utilizza anche una compressione senza perdita di dati che è più efficace quando grandi aree hanno un unico colore e inefficace per immagini dettagliate o immagini retinate.

BMP Il formato file BMP (bitmap di Windows) gestisce i file grafici all'interno del sistema operativo Microsoft Windows. In genere, i file BMP non sono compressi, quindi sono di grandi dimensioni; il vantaggio è la loro semplicità, ampia accettazione e utilizzo nei programmi Windows.

Utilizzare per pagine Web / applicazioni Web

Di seguito è riportato un breve riepilogo di questi formati di immagine quando vengono utilizzati con una pagina Web / applicazione.

  • PNG è ottimo per IE6 e versioni successive (richiederà una piccola patch CSS per far funzionare bene la trasparenza). Ottimo per illustrazioni e foto.
  • JPG è ottimo per le foto online
  • GIF è utile per le illustrazioni quando non desideri passare a PNG
  • BMP non dovrebbe essere usato online all'interno di pagine web - spreca larghezza di banda


  • Fonte: formati di file immagine


    5

    Poiché altri hanno coperto le differenze, colpirò gli usi.

    TIFF viene solitamente utilizzato dagli scanner. Crea file enormi e non è realmente utilizzato nelle applicazioni.

    BMP non è compresso e crea anche file enormi. Inoltre, non è realmente utilizzato nelle applicazioni.

    GIF era presente in tutto il Web, ma è caduto in disgrazia poiché supporta solo un numero limitato di colori ed è brevettato.

    JPG / JPEG viene utilizzato principalmente per tutto ciò che è di qualità fotografica, ma non per il testo. La compressione con perdita utilizzata tende a rovinare le linee nette.

    PNG non è piccolo come JPEG ma è senza perdita di dati, quindi è adatto per immagini con linee nitide. Ora è di uso comune sul web.

    Personalmente, di solito uso PNG ovunque posso. È un buon compromesso tra JPG e GIF.


    BMP può essere compresso RLE ... Non è molto, ma è efficace su immagini semplici. È anche un formato proprietario (Microsoft).
    PhiLho

    4
    Il brevetto GIF è scaduto nel 2004.
    Dour High Arch

    1
    TIFF è estremamente popolare tra le persone che necessitano di una qualità senza perdite (artisti). Inoltre è ottimo per la compressione di immagini monocromatiche, quindi è uno dei formati più popolari per il software di scansione di documenti / fax digitali.
    Vilx

    1
    Nelle specifiche più recenti, BMP consente anche di comprimere i contenuti in PNG o JPEG.
    Vilx

    2

    JPG> Joint Photographic Experts Group

    1 Le immagini JPG supportano 16 milioni di colori e sono più adatte per fotografie e grafica complessa

    2 JPG non supportano la trasparenza.

    PNG> Portable Network Graphics

    1 Viene utilizzato come alternativa al formato file GIF quando la tecnologia GIF era protetta da copyright e richiedeva l'autorizzazione per l'uso.

    2 I PNG consentono una compressione dal 5 al 25% maggiore rispetto alle GIF e con una gamma di colori più ampia. I PNG utilizzano l'interlacciamento bidimensionale, che li fa caricare due volte più velocemente delle immagini GIF ".

    3 Immagine che ha molti colori o richiede una trasparenza variabile avanzata, PNG è il tipo di file preferito.

    GIF> Graphics Interchange Format

    1 Riduce il numero di colori in un'immagine a 256.

    2 GIF supportano anche la trasparenza.

    3 GIF hanno la capacità unica di visualizzare una sequenza di immagini, simile ai video, chiamata GIF animata.

    4 Se l'immagine ha pochi colori e non richiede alcun effetto di trasparenza alfa avanzato, GIF è la strada da percorrere.

    SVG> Grafica vettoriale scalabile

    1 Gli SVG sono uno standard web basato su XML che descrive sia immagini statiche che animazioni in due dimensioni.

    2 SVG ti consente di creare grafica e animazioni di altissima qualità che non perdono dettagli all'aumentare / diminuire delle loro dimensioni.


    1

    Questi nomi si riferiscono a diversi modi per codificare i dati dell'immagine pixel (JPG e JPEG sono la stessa cosa e TIFF può semplicemente racchiudere un jpeg con alcuni metadati aggiuntivi).

    Questi formati di immagine possono utilizzare diversi algoritmi di compressione, diverse rappresentazioni dei colori, diverse capacità di trasportare dati aggiuntivi oltre all'immagine stessa e così via.

    Per le applicazioni web, direi che jpeg o gif è abbastanza buono. Jpeg viene utilizzato più spesso a causa del suo rapporto di compressione più elevato e gif viene tipicamente utilizzato per animazioni leggere in cui un flash (o qualcosa di simile) è un over kill o luoghi in cui si desidera uno sfondo trasparente. Anche PNG può essere usato, ma non ho molta esperienza con questo. BMP e TIFF probabilmente non sono buoni candidati per le applicazioni web.


    1

    Quello che hanno detto Coobird e Gerald.

    Inoltre, JPEG è il nome del formato del file. JPG è un'estensione di file abbreviata comunemente utilizzata per questo formato, poiché era necessario disporre di un'estensione di file di 3 lettere per i sistemi Windows precedenti. Allo stesso modo con TIFF e TIF.

    I browser web al momento visualizzano solo file JPEG, PNG e GIF, quindi quelli sono quelli che possono essere mostrati sulle pagine web.


    Il supporto del browser non è limitato a JPEG, PNG e GIF: formati come BMP, ICO, SVG e XBM - tra gli altri - sono supportati nativamente in molti browser.
    scronide

    Abbastanza giusto, avrei dovuto dire che JPEG, GIF e PNG sono i formati supportati dalla maggior parte dei browser.
    Gnudiff

    1

    PNG supporta la trasparenza del canale alfa.

    TIFF può avere opzioni estese come riferimento geografico per applicazioni GIS .

    Consiglio di utilizzare sempre e solo JPEG per le fotografie, mai per immagini come clip art, loghi, testo, diagrammi, disegni al tratto.

    Favorisci PNG.


    1

    Quelle nominate sono tutte grafiche raster, ma a parte questo non dimenticare la sempre più importante grafica vettoriale. Esistono tipi compressi e non compressi (più o meno), ma sono tutti senza perdita di dati. I più importanti sono:


    0

    L'estensione del file ti dice come l'immagine viene salvata. Alcuni di questi formati salvano semplicemente i bit così come sono, alcuni comprimono l'immagine in modi diversi, inclusi metodi lossless e lossy. Il Web può dirtelo, anche se so che alcuni dei pazienti che hanno risposto li descriveranno qui.

    Il web predilige principalmente gif, jpg e png. JPEG è uguale (o molto vicino) a jpg.


    0

    Per la differenza specificata e l'utilizzo tra i vari formati di immagine, abbiamo già una buona discussione sopra.

    Tuttavia, voglio aggiungere qualcosa per il processo generale di acquisizione di un'immagine e memorizzarla.

    Il processo di cattura

    Oppure puoi dire il processo di costruzione (come possiamo disegnare o fare immagini con i computer ora). Se scatti una fotografia con una fotocamera, stai già utilizzando molti sensori (CCD o CMOS) e algoritmi (Bayer Pattern Filter, Sub-campionamento e quantizzazione, ecc.) Inoltre ci sono cose come Pixel Formate Color Space. Dopo aver ottenuto le informazioni di base sui pixel, deve esserci un modo per memorizzarle.

    La struttura del file immagine di base

    Per memorizzare le informazioni sui pixel in un file, abbiamo bisogno di una convenzione e dei relativi algoritmi. Per risparmiare spazio, c'è la compressione, ma fondamentalmente il problema è codificare i pixel in byte e decodificare i byte in pixel per la visualizzazione.

    Un tipico file di immagine può essere composto da più parti, fondamentalmente due: meta data or file headere pixel data section. La meta dataracconta l'immagine stessa, forse heighte width, file format, ecc E il pixel data sectionè il vero section, che si occupa della real picture.

    Memorizzazione e visualizzazione

    Come abbiamo detto in precedenza, i file vengono memorizzati nel disco rigido e sono in byte / bit. Quindi i file di immagine non hanno priorità ma in realtà anche il flusso di byte. Per la visualizzazione, forse dovremmo ottenere qualcosa per sapere come funziona il monitor. I tipici monitor per PC utilizzano il modello RGB per la visualizzazione.

    Spero che questo ti aiuti:-)

    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.