¿Cómo recortar un gif animado usando ImageMagick?
crop animated-gif (4)
Incluso con la fusión y el cambio, no pude hacer que ImageMagick recortara y redimensionara los gifs animados muy bien.
Encontré un programa llamado Gifsicle y funciona muy bien para manipular gifs animados.
gifsicle --crop 0,0-100,100 --output out.gif in.gif
También puede hacer todo tipo de otras operaciones. ¡Echale un vistazo!
Hay mucha información sobre el recorte de imágenes, pero intentar recortar (o recortar) animaciones produce resultados extraños. A veces parpadean, o vienen con marcos adicionales, o algunos marcos se recortan correctamente y otros se desplazan. ¿Cómo evito que todo esto suceda?
La siguiente línea funcionó conmigo en Mac
convert -dispose 2 input.gif -trim -layers TrimBounds animation.gif
Aquí está la source
Las animaciones a menudo están optimizadas, lo que significa que algunos cuadros son más pequeños que otros. Así que en ImageMagick es probable que desee fusionar la animación antes de recortarla.
convert in_animation.gif -coalesce -crop WxH+X+Y +repage -layers optimize out_animation.gif
Es posible que deba agregar un método de uso distinto antes de leer la animación de entrada para evitar un parpadeo. También configure la opción -delay y -loop al final, si desea realizar cambios.
Ver
http://www.imagemagick.org/Usage/anim_basics/#dispose http://www.imagemagick.org/Usage/anim_basics/#coalesce http://www.imagemagick.org/script/command-line-options.php#layers
convert input.gif -coalesce -repage 0x0 -crop WxH+X+Y +repage output.gif
- Los gifs animados a menudo están optimizados para ahorrar espacio, pero imagemagick no parece considerar esto cuando aplica el comando de recorte y trata cada marco individualmente.
-coalesce
reconstruye los cuadros completos. - Otros comandos tomarán en consideración la información de compensación suministrada en el gif original, por lo que debe forzar que se restablezca con
-repage 0x0
. - El recorte en sí es sencillo, con ancho, alto, x desplazamiento y y y desplazamiento respectivamente. Por ejemplo, un recorte 40 de ancho y 30 de alto en un desplazamiento x de 50 = 40x30 + 50 + 0.
- Recortar no elimina el lienzo que recortó de la imagen. Aplicando
+repage
después del cultivo haremos esto.