Saltar al contenido

🖼️ Imágenes JPG

Con pérdida: orientado a fotografía y de tamaño reducido

✅ Gratis siempre 🚫 Sin registro ⚡ Descarga instantánea
100 KB JPG

102,400 bytes

image/jpeg

100 MB JPG

104,857,600 bytes

image/jpeg

10 KB JPG

10,240 bytes

image/jpeg

10 MB JPG

10,485,760 bytes

image/jpeg

1 MB JPG

1,048,576 bytes

image/jpeg

25 MB JPG

26,214,400 bytes

image/jpeg

500 KB JPG

512,000 bytes

image/jpeg

50 MB JPG

52,428,800 bytes

image/jpeg

5 MB JPG

5,242,880 bytes

image/jpeg

Acerca de Imágenes JPG

JPEG (Joint Photographic Experts Group) es un formato de imagen con pérdida. Comprime muy bien las imágenes de tono continuo como las fotografías, por lo que domina la imagen web y el almacenamiento de las cámaras. Su tipo MIME es image/jpeg, con las extensiones .jpg y .jpeg.

Hay tamaños desde 10 KB hasta 100 MB, para probar funciones de subida de medios, verificar sistemas de gestión de fotos y medir librerías de optimización de imágenes.

Características de JPEG

Referencias y artículos relacionados

📖 Dónde se suele tropezar

PNG, JPEG, GIF y WebP en tamanos de 1 KB a 100 MB, para limites de subida, generacion de miniaturas y ejercitar librerias de imagen. Lo que distingue a los formatos esta descrito arriba; lo que hace tropezar a una implementacion suele ser comun a todos.

Caso Qué ocurre Qué hacer
Una imagen pequena agota la memoria La memoria depende del numero de pixeles decodificados, no del tamano del fichero. Un PNG de 20 KB a 10.000 por 10.000 pixeles pide unos 400 MB en RGBA. Limita las dimensiones aparte de los bytes. Puedes leer ancho y alto de la cabecera antes de decodificar: getimagesize() en PHP, o en Pillow justo tras Image.open() y antes de load().
Las fotos verticales se muestran tumbadas La camara no rota los pixeles: anota en la etiqueta EXIF de orientacion como estaba sujeta. Cualquier cosa que ignore la etiqueta muestra la orientacion del sensor. Lee la orientacion antes de generar la miniatura, aplica el giro de verdad y luego borra la etiqueta. Girar y dejar la etiqueta hace que los navegadores conformes giren otra vez. Inspecciona un fichero con el visor EXIF.
La conversion se lleva la animacion y la transparencia Una conversion que pasa por un canvas del navegador solo sostiene un fotograma, asi que un GIF animado queda en el primero. Al convertir a JPEG, la transparencia se aplana a blanco o negro. Para conservar la animacion necesitas algo que entienda varios fotogramas: ImageMagick o libvips en lugar de un canvas. Para conservar la transparencia, apunta a PNG o WebP.
Un archivo que parece imagen no lo es La extension y el Content-Type son afirmaciones de quien envia. Una imagen con otros datos anadidos al final se abre con normalidad en un visor. Comprueba los bytes iniciales y luego recodifica antes de guardar. Decodificar y volver a escribir descarta tanto los datos anadidos como los metadatos incrustados. Las secuencias estan en la referencia de magic bytes.

Al servir imagenes subidas por usuarios tal cual, hay una excepcion que importa: un SVG no es una imagen en el sentido relevante. Es un documento capaz de ejecutar script, asi que servirlo desde tu propio origen abre una via de cross-site scripting. Sirvelo desde otro dominio o contenlo con Content-Security-Policy y Content-Disposition: attachment.