Étant donné une image GIF animée sur une couleur de fond solideComment couper un gif animé (en utilisant imagemagick)?
Je voudrais couper loin le rembourrage. Concrètement, je voudrais recadrer l'image dans la mesure maximale de l'objet de premier plan sur toutes les images:
Je ne peux pas sembler trouver la bonne combinaison de -alpha
, -background
pour y parvenir avec un commande unique convert
. Par exemple, si je lance
convert -dispose 2 input.gif -trim -layers TrimBounds fail.gif
Je reçois des couleurs « de fond » au hasard pour les cadres dont individuels degrés parés sont plus petits que la mesure sur toutes les trames:
Je peux obtenir la sortie correcte avec une longue chaîne de commandes:
convert input.gif -trim -layers TrimBounds out-%03d.miff
mogrify -background "rgb(20%,30%,80%)" -layers flatten out-*.miff
convert out-*.miff output.gif
rm out-*.miff
Ceci est lent, écrit un tas de fichiers temporaires, et nécessite de connaître la couleur de fond ("rgb(20%,30%,80%)"
) explicitement.
Existe-t-il un moyen plus simple de rogner un gif animé?
Cette related question considère le recadrage explicite plutôt que le recadrage automatique.
Ils vont définitivement dans le bon sens. C'est étonnamment difficile à faire en utilisant convert, non? –
Il semblerait que oui. Mais je vais continuer à regarder dedans. – fmw42