imagemagick crop animated-gif

¿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.