2012-07-09 17 views
12

Mientras se trabaja en un programa de descarga, me he encontrado con la siguiente mimetypes.guess_extension función de Python:¿Por qué las diversas extensiones JPEG?

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

supe que JPEG y JPG son extensiones JPEG válidos, pero yo no sabía nada de jpe. Así que buscando en el sitio de Wikipedia reveló los siguientes:

Las extensiones de archivo más comunes de archivos que utilizan la compresión JPEG son .jpg y .jpeg, aunque .jpe, .jfif y .jif también se utilizan

Incluso más extensiones que no sabía.

Entonces, la pregunta principal: ¿Por qué JPEG tiene tantas extensiones (válidas) asociadas?

En una nota relacionada, me gustaría saber por qué Python devuelve 'jpe' y no 'jpg' o 'jpeg' ya que veo que estos son los que más se usan.

Respuesta

7

Parece mimetypes.guess_extension devuelve la primera de todas las extensiones posibles:

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

Así se logra que sea por primera vez en la lista devuelta por mimetypes.guess_all_extensions, que resulta ser:

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

Adivino por qué .jpe también es válido:

En DOS y versiones anteriores de Windows los nombres de archivo solo podían tener 8 caracteres y 3 caracteres para la extensión (ver el artículo 8.3 filename en Wikipedia para más información). Podría ser que abreviaron JPEG a .JPE o .jpe, razón por la cual ahora tenemos .jpe, .jpeg y .jpg.

Es cierto que .jpeg y .jpg son más comunes.

+0

Gracias por su respuesta :-) –

2

En sentido estricto, jpeg es un algoritmo de compresión de imágenes, no un formato de archivo.

JFIF (formato de intercambio de archivos JPEG) es el formato de archivo habitual que utiliza la compresión jpeg. EXIF ​​(formato de archivo de imagen intercambiable) es otro formato que usa jpeg, que se usa en una cámara digital. La mayoría de las personas tiende a pensar que esos formatos son los mismos, pero ese no es el caso.

TIFF también se puede codificar con jpeg.

+6

Si bien la información es verdadera, no responde la pregunta en absoluto. –

+0

Por favor ... Pregunta por qué se usan varias extensiones, incluido ".jfif", así que explico jfif y lo que significa en comparación con jpeg. – MatthieuW

+0

La limitación de 8.3 dos puede explicar ".jpe" pero eso es solo una parte de la pregunta. – MatthieuW

Cuestiones relacionadas