Vous voudrez peut-être regarder dans le format webm: c'est comme un gif plus optimisé!
Réponses:
8
ImageOptim utilise Gifsicle pour sa compression Gif. Pour autant que je sache, cela fonctionne assez bien (je n'utilise généralement pas Gif de nos jours). Depuis leur site:
Optimisez vos animations! Cela ne stocke que la partie modifiée de chaque cadre et peut réduire considérablement vos GIF. Vous pouvez également utiliser la transparence pour les rendre encore plus petits. L'optimiseur de Gifsicle est assez puissant et réduit généralement les animations à quelques octets des meilleurs optimiseurs commerciaux.
Comment ré-optimisez-vous le fichier lors de l'enregistrement dans Gimp?
orschiro
2
J'utilise ezgif.com/optimize , car GIMP et d'autres outils ne sont pas bons pour ce travail. La différence est qu'ezgif utilise une gifsiclemodification (avec un lossydrapeau), non disponible sur la aptversion. Voir la version 1.82.1 ici (remplacez-la /usr/bin/gifsiclepar celle appropriée à votre système (le binaire se terminant par -static).
Mes notes sur un workflow d'optimisation GIF complet sont ici .
Edit : le script actuel tel qu'il est conservé sera mis à jour sur GitHub ici
Je ne décrirai pas comment je fais tout ici, l'idée générale est quelques fonctions / alias bash:
function gifopt() {
# args: $input_file ($loss_level)
if [ -z "$2" ]
then
# use default of 30
local loss_level=30
elif [[ "$2" =~ ^[0-9]+$ ]] && [ "$2" -ge 30 -a "$2" -le 200 ]
then
local loss_level=$2
else
echo "${2:-"Loss level parameter must be an integer from 30-200"}" 1>&2
exit 1
fi
local inputgif="${1?'Missing input file parameter'}"
local gifname="$(basename $inputgif .gif)"
local basegifname=$(echo "$gifname" | sed 's/_reduced_x[0-9]//g')
local outputgif="$basegifname-opt.gif"
gifsicle -O3 --lossy="$loss_level" -o "$outputgif" "$inputgif";
local oldfilesize=$(du -h $inputgif | cut -f1)
local newfilesize=$(du -h $outputgif | cut -f1)
echo "File reduced from $oldfilesize to $newfilesize as $outputgif"
}
function gifopt() {
# args: $input_file ($loss_level)
if [ -z "$2" ]
then
# use default of 30
loss_level=30
elif [[ "$2" =~ ^[0-9]+$ ]] && [ "$2" -ge 30 -a "$2" -le 200 ]
then
loss_level=$2
else
echo "${2:-"Loss level parameter must be an integer from 30-200"}" 1>&2
exit 1
fi
local inputgif="${1?'Missing input file parameter'}"
local gifname="$(basename $inputgif .gif)"
local basegifname=$(echo "$gifname" | sed 's/_reduced_x[0-9]//g')
local outputgif="$basegifname-opt.gif"
gifsicle -O3 --lossy="$loss_level" -o "$outputgif" "$inputgif";
local oldfilesize=$(du -h $inputgif | cut -f1)
local newfilesize=$(du -h $outputgif | cut -f1)
echo "File reduced from $oldfilesize to $newfilesize as $outputgif"
}
function gifspeedchange() {
# args: $gif_path $frame_delay (1 = 0.1s)
local orig_gif="${1?'Missing GIF filename parameter'}"
local frame_delay=${2?'Missing frame delay parameter'}
gifsicle --batch --delay $frame_delay $orig_gif
local newframerate=$(echo "$frame_delay*10" | bc)
echo "new GIF frame rate: $newframerate ms"
}
Le --lossydrapeau prend un entier de 30 à 200, donc pour une meilleure qualité:
gifsicle -O3 --lossy=30 -o output.gif input.gif
Avec la fonction ci-dessus, gifoptvous pouvez simplifier les choses, car elle est par défaut de 30
gifopt input.gif
... la sortie serait automatiquement nommée input-opt.gif. Vous pouvez changer la fonction pour utiliser l' --batchindicateur pour l'édition sur place, mais je ne recommanderais pas d'écraser votre matériel de départ.
Cette fonction fonctionne également pour supprimer tout _reduced_xsuffixe ajouté par la fonction de réduction du nombre d'images, c'est-à-dire que vous pourriez avoir un fichier intermédiaire input_reduced_x2.gif(une étape qui réduirait de moitié la taille du fichier en supprimant toutes les autres images).
Si vous le faites, la vitesse peut changer, fixée par gifspeedchange input-opt.gif 5exemple pour utiliser un délai de 50 ms.
Réponses:
ImageOptim utilise Gifsicle pour sa compression Gif. Pour autant que je sache, cela fonctionne assez bien (je n'utilise généralement pas Gif de nos jours). Depuis leur site:
la source
Vous pouvez utiliser Gimp pour supprimer certaines images du GIF ainsi que pour ré-optimiser le fichier en le réenregistrant dans un GIF.
la source
J'utilise ezgif.com/optimize , car GIMP et d'autres outils ne sont pas bons pour ce travail. La différence est qu'ezgif utilise une
gifsicle
modification (avec unlossy
drapeau), non disponible sur laapt
version. Voir la version 1.82.1 ici (remplacez-la/usr/bin/gifsicle
par celle appropriée à votre système (le binaire se terminant par-static
).Mes notes sur un workflow d'optimisation GIF complet sont ici .
Edit : le script actuel tel qu'il est conservé sera mis à jour sur GitHub ici
Je ne décrirai pas comment je fais tout ici, l'idée générale est quelques fonctions / alias bash:
Le
--lossy
drapeau prend un entier de 30 à 200, donc pour une meilleure qualité:Avec la fonction ci-dessus,
gifopt
vous pouvez simplifier les choses, car elle est par défaut de 30... la sortie serait automatiquement nommée
input-opt.gif
. Vous pouvez changer la fonction pour utiliser l'--batch
indicateur pour l'édition sur place, mais je ne recommanderais pas d'écraser votre matériel de départ.Cette fonction fonctionne également pour supprimer tout
_reduced_x
suffixe ajouté par la fonction de réduction du nombre d'images, c'est-à-dire que vous pourriez avoir un fichier intermédiaireinput_reduced_x2.gif
(une étape qui réduirait de moitié la taille du fichier en supprimant toutes les autres images).Si vous le faites, la vitesse peut changer, fixée par
gifspeedchange input-opt.gif 5
exemple pour utiliser un délai de 50 ms.la source
Vous pouvez facilement optimiser votre fichier .gif sur Gimp.
Enregistrez simplement au format .gif, puis compressez ou vous pouvez enregistrer dans une autre extension au format .jpeg ou autre.
la source