Je veux redimensionner un tel fichier GIF animé do.gif
Si je le fais convert do.gif -resize 24x24\! do-24.gif
je le redimensionner en do-24.gif mais pas animé
Comment redimensionner correctement pour obtenir la même animation?
imagemagick
zuba
la source
la source
-coalesce
"crée une vue complète de l'animation à chaque point, un peu comme une vraie bande de film, plutôt qu'une séquence d'animation. Une telle séquence, appelée Animation coalescée, est beaucoup plus facile à étudier, à éditer, à modifier et à réoptimiser."gifsicle --resize 24x24 > do-24.gif
peut à cela aussiJe cherchais une solution imagemagick car je la connais bien, mais je suis finalement allé avec la suggestion de @ sam
gifsicle
. Il a fait juste ce que je voulais, pas de soucis.Peut optimiser la taille du fichier résultant à bien des égards, mais j’ai simplement choisi de réduire la taille et le nombre de couleurs. Travaillé comme un charme:
la source
-coalesce
+-deconstruct
Après
-coalesce
, vous voudrez probablement ajouter un-deconstruct
:La cause première du problème réside dans le fait que votre GIF en entrée a été correctement minimisé: il permet à la prochaine image d'être uniquement le rectangle modifié du précédent par un décalage.
-coalesce
étend ensuite tous les cadres à la taille originale, ce qui facilite le redimensionnement, mais ne recompose pas les cadres à nouveau comme image d'entrée: elle-deconstruct
est nécessaire pour cela!Utilisation des données de test de cette réponse: Comment créer un gif animé à partir d’images fixes (de préférence avec la ligne de commande)? nous pouvons le voir clairement avec
identify
:out.gif
out-coalesce.gif
out-deconstruct.gif
Premièrement, nous voyons comment entrer le fichier,
out-convert.gif
était en fait compressé, car l’image 2 n’est que516x516
décalée252+257
, alors que l’image 1 de taille normale l’est1024x1024
.Ensuite, si nous comparons les trois conversions:
out.gif
: Tous les cadres sont256x256
ou plus grandes, et énorme à environ 5 Mo, TODO pourquoi?Visuellement incorrect, car ces
256x256
trames environ ont un décalage non nul, par exemple125+128
pour la trame 2!out-coalesce.gif
: toutes les images sont256x256
et ont le bon décalage0+0
.La sortie est visuellement correcte, mais la taille du fichier de sortie est de 2,0 Mo, ce qui est supérieur à
out-deconstruct.gif
out-deconstruct.gif
: images compressées, taille de sortie finale de 1,9 Mio.Pas beaucoup plus petit que
out-coalesce.gif
, mais je pense que c'est simplement parce que le sol noir compresse très bien, et cela pourrait être très important en général.ffmpeg et gifsicle
J'ai aussi essayé les commandes suivantes:
et les deux ont produit une sortie encore plus petite de 1,5 Mio correctement recherchée.
Voir aussi: Comment créer un gif animé à partir d'images fixes (de préférence avec la ligne de commande)?
TODO: pourquoi peuvent-ils le rendre plus petit que
convert
? Sont-ils simplement en train de sélectionner des rectangles de diff plus minimes ou mieux?Testé sous Ubuntu 18.10, ffpmeg 4.0.2-2, ImageMagick 6.9.10-8.
la source