2011-08-13 15 views
10

Tengo una cámara que produce fotografías de 3008x2000 píxeles. Utilizo Image Magick para escalar y cambiar el tamaño de las fotos para ponerlas en mi sitio web. El tamaño de las imágenes que estoy usando en el sitio web es 602x400. Uso este comando para reducir el tamaño:Imagen Magick: optimización de la imagen para sitios web

convert DSC_0124.JPG -scale 20% -size 24% img1.jpg 

Esto produce una imagen que tiene un tamaño de 602x400 píxeles. Pero el tamaño del archivo siempre será superior a 250 KB. Más imágenes en una sola página html significan que la página será más pesada y el tiempo de carga será más largo. ¿Hay alguna característica en la magia de la imagen que me ayude a mantener el tamaño del archivo lo más pequeño posible, posiblemente, por debajo de 100 KB? Pero el tamaño de la imagen debe ser el mismo, es decir, 602x400px. He logrado una optimización similar con la herramienta SEAMonster para MS Windows. Como no tiene una alternativa de línea de comando, no sería de mucha ayuda cuando hay cientos de imágenes para convertir.

Respuesta

23

uso de comandos como Delan propuso con la bandera adicional "-strip" para eliminar los datos EXIF, esto ha reducido el tamaño de algunas de mis imágenes drásticamente. Aquí hay un script bash para plataformas Unix, pero puede usar la segunda parte solo para imágenes individuales.

for X in *.jpg; do convert "$X" -resize 602x400 -strip -quality 86 "$X"; done 

Esto convertirá todas las imágenes en el directorio.

+3

Advertencia: el uso de 'convert' con la misma entrada y salida el nombre del archivo puede ser una operación insegura. Escriba en un nombre de archivo temporal y 'mv' condicionalmente la temperatura sobrescribiendo el original, o simplemente use mogrify (parte del conjunto de ImageMagick). La página man para 'mogrify (1)' indica que "Mogrify sobrescribe el archivo de imagen original, mientras que convert (1) escribe en un archivo de imagen diferente." –

6

Uso -quality para ajustar el nivel de compresión:

convert DSC_0124.JPG -scale 20% -size 24% -quality [0..100] img1.jpg 
2

Si está ejecutando su sitio web en PHP, es posible que desee considerar el script de cambio de tamaño de la imagen SLIR, hace un gran cambio de trabajo a diversas restricciones (ver más abajo) y almacena los resultados en caché.

Parameters: 
w Maximum width 
h Maximum height 
c Crop ratio 
q Quality 
b Background fill color 
p Progressive 

http://shiftingpixel.com/2008/03/03/smart-image-resizer/

http://code.google.com/p/smart-lencioni-image-resizer/

+0

Estoy usando python-django. – nixnotwin

3

puede definir el tamaño máximo de la imagen de salida en 100KB así:

convert DSC_0124.JPG -resize 602x400! -strip -define jpeg:extent=100KB img1.jpg 
+2

Ten cuidado, el "!" el indicador para cambiar el tamaño ignora la relación de aspecto y '!' puede ser un carácter de shell especial, que por lo general debe escaparse. –

Cuestiones relacionadas