Ocupo la utilidad convert de ImageMagick practicamente para todo lo que tiene que ver con conversión de imágenes de un formato a otro, cambio de tamaño, resolución, etc.

Resulta que para reducir en tamaño algunos GIFs y obtener un buen resultado hay que usar algunas opciones no muy comunes.

Comenzando por el final, el comando correcto para hacerlo de un golpe es:

$ convert animacionGrande.gif -coalesce -geometry WxH animacionPeque.gif

Así obtendriamos un gif animado de máximo W pixeles de ancho y H pixeles de largo (lo que ocurra primero).

Ahora veamos las opciones que producen errores y el comando correcto pero usando ejemplos ...

Queremos obtener una imagen con máximo 30 pixeles de altura (sin importar el ancho),

Nuestra figura base es bu.gif

Intento 1 (sin opcion -coalesce)

$ convert bu.gif -resize x30 bux30.gif

Nótese que no puse nada antes de la x lo cual significa "sin límite de ancho (Width)"

El resultado es el siguiente:

Pareciera que se redujeron la primera y la última imagen de la secuencia pero no así las demás.

Intento 2 (opcion -coalesce en orden incorrecto)

$ convert bu.gif -resize x30 -coalesce bux30.gif

Mismo resultado

Intento 3

$ convert bu.gif -coalesce -resize x30 bux30.gif

Ahora si

La opción -coalesce lo que hace es "unir" una secuencia de imagenes. Según la página de ayuda de convert

–coalesce

merge a sequence of images.

Each image N in the sequence after Image 0 is replaced with the image created by flattening images 0 through N.

La solución la encontré en Resizing animated GIFs with ImageMagick.

Ahí primero le aplica la opción -coalesce al gif original y después lo reduce de tamaño pero como ya vimos, también puede hacerse en un paso.

Enlace adicional:

Examples of ImageMagick Usage [] (en inglés)

Quetzalcoatl | Software libre | 8 Octubre, 12:22pm

Menú

Novedades

Comentarios Recientes

Imagen Aleatoria

Posts Recientes

Búsqueda

Buscar en 

Amigos

Tags Services
Clio Club
Cuauhtémoc
Avially
Zilus