2012-07-09 5 views
12

Mentre si lavora su un downloader, ho incontrato il seguente con la funzione di Python mimetypes.guess_extension:Perché le varie estensioni JPEG?

In [2]: mimetypes.guess_extension('image/jpeg', strict=False) 
Out[2]: '.jpe' 

sapevo che jpeg e jpg sono estensioni JPEG validi, ma non sapevo di jpe. Così guardando il sito wikipedia ha rivelato i seguenti:

L'estensione del file più comuni per i file che impiegano compressione JPEG sono .jpg e .jpeg, però .jpe, .jfif e .jif sono utilizzati anche

Ancora più estensioni che non conoscevo.

Quindi la domanda principale: perché JPEG ha così tante estensioni (valide) associate ad esso?

Su una nota correlata mi piacerebbe sapere perché Python restituisce 'jpe' e non 'jpg' o 'jpeg' poiché vedo che questi sono i più usati.

risposta

7

Risulta mimetypes.guess_extension restituisce la prima di tutte le possibili estensioni:

def guess_extension(self, type, strict=True): 
    # ... 
    extensions = self.guess_all_extensions(type, strict) 
    if not extensions: 
     return None 
    return extensions[0] 

Così si otterrà a seconda di quale è il primo nella lista restituita da mimetypes.guess_all_extensions, che si rivela essere:

>>> mimetypes.guess_all_extensions('image/jpeg', strict=False) 
['.jpe', '.jpg', '.jpeg'] 

La mia ipotesi sul perché .jpe è valida anche:

In DOS e nelle prime versioni di Windows i nomi di file potevano avere solo 8 caratteri e 3 caratteri per l'estensione (vedere l'articolo 8.3 filename su Wikipedia per maggiori informazioni). Potrebbe essere che abbiano abbreviato JPEG in .JPE o .jpe, motivo per cui ora abbiamo .jpe, .jpeg e .jpg.

È vero che .jpeg e .jpg sono più comuni.

+0

Grazie per la risposta :-) –

2

In senso stretto jpeg è un algoritmo di compressione dell'immagine, non un formato di file.

JFIF (JPEG File Interchange Format) è il solito formato di file che utilizza la compressione jpeg. EXIF ​​(formato file immagine intercambiabile) è un altro formato che utilizza jpeg, utilizzato nella fotocamera digitale. La maggior parte delle persone tende a pensare che il formato sia lo stesso, ma non è così.

TIFF può anche essere codificato in formato jpeg.

+6

Mentre l'informazione è vera, non risponde affatto alla domanda. –

+0

Per favore ... Si chiede il motivo per cui vengono usate diverse estensioni, incluso ".jfif", quindi spiego jfif e cosa significa rispetto a jpeg. – MatthieuW

+0

La limitazione di 8,3 dos può spiegare ".jpe", ma questa è solo una parte della domanda. – MatthieuW