🖼️ Archivos de imagen
Imágenes de prueba en PNG, JPG, WebP y GIF
PNG
102,400 bytes
image/png
104,857,600 bytes
image/png
10,240 bytes
image/png
10,485,760 bytes
image/png
1,048,576 bytes
image/png
26,214,400 bytes
image/png
512,000 bytes
image/png
52,428,800 bytes
image/png
5,242,880 bytes
image/png
JPG
102,400 bytes
image/jpeg
104,857,600 bytes
image/jpeg
10,240 bytes
image/jpeg
10,485,760 bytes
image/jpeg
1,048,576 bytes
image/jpeg
26,214,400 bytes
image/jpeg
512,000 bytes
image/jpeg
52,428,800 bytes
image/jpeg
5,242,880 bytes
image/jpeg
WEBP
102,400 bytes
image/webp
104,857,600 bytes
image/webp
10,240 bytes
image/webp
10,485,760 bytes
image/webp
1,048,576 bytes
image/webp
26,214,400 bytes
image/webp
512,000 bytes
image/webp
52,428,800 bytes
image/webp
5,242,880 bytes
image/webp
GIF
102,400 bytes
image/gif
104,857,600 bytes
image/gif
10,240 bytes
image/gif
10,485,760 bytes
image/gif
1,048,576 bytes
image/gif
26,214,400 bytes
image/gif
512,000 bytes
image/gif
52,428,800 bytes
image/gif
5,242,880 bytes
image/gif
Acerca de Archivos de imagen
Hay imágenes de prueba en cuatro formatos —PNG, JPG, WebP y GIF— con tamaños de 10 KB a 100 MB. Úsalas para verificar funciones de subida, ejercitar librerías de imagen, medir la velocidad de transferencia y confirmar el comportamiento de la caché de CDN.
Cada archivo muestra sus digests MD5, SHA-1 y SHA-256, de modo que puedes verificar la integridad tras la descarga o usarlos como valores esperados al probar una librería de hash. Cada página de detalle incluye además comandos listos de curl, wget y PowerShell.
Páginas por formato de imagen
- Archivos de prueba PNG — Sin pérdida: para capturas y manejo de transparencia
- Archivos de prueba JPG — Con pérdida: para fotos y rutas de subida de medios
- Archivos de prueba WebP — Para comprobar soporte del navegador y procesos de conversión
- Archivos de prueba GIF — Para manejo de animación y compatibilidad heredada
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.