Es posible que desee ver el formato webm: ¡es como un gif más optimizado!
Respuestas:
8
ImageOptim usa Gifsicle para su compresión Gif. Hasta donde sé, funciona bastante bien (generalmente no uso Gif en estos días). Desde su sitio:
¡Optimiza tus animaciones! Esto almacena solo la parte modificada de cada cuadro y puede reducir radicalmente sus GIF. También puede usar la transparencia para hacerlos aún más pequeños. El optimizador de Gifsicle es bastante potente, y generalmente reduce las animaciones a un par de bytes de los mejores optimizadores comerciales.
¿Cómo se vuelve a optimizar el archivo al guardar en Gimp?
orschiro
2
Uso ezgif.com/optimize , ya que GIMP y otras herramientas no son buenas en este trabajo. La diferencia es que ezgif usa una gifsiclemodificación (con una lossybandera), no disponible en la aptversión. Vea la versión 1.82.1 aquí (reemplace /usr/bin/gifsiclecon la apropiada para su sistema (el binario que termina con -static).
Mis notas sobre un flujo de trabajo de optimización de gif completo están aquí .
Editar : la secuencia de comandos actual que se mantiene en uso se actualizará en GitHub aquí
No describiré cómo lo hago todo aquí, la idea general es algunas funciones / 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"
}
La --lossybandera toma un número entero de 30 a 200, por lo que para obtener la mejor calidad:
gifsicle -O3 --lossy=30 -o output.gif input.gif
Con la función anterior gifopt, puede simplificar las cosas, ya que el valor predeterminado es 30
gifopt input.gif
... la salida se nombrará automáticamente input-opt.gif. Puede cambiar la función para usar el --batchindicador para la edición in situ, pero no recomendaría sobrescribir su material de inicio.
Esa función también funciona para eliminar cualquier _reduced_xsufijo agregado por la función de reducción de conteo de cuadros, es decir, podría tener un archivo intermedio input_reduced_x2.gif(un paso que reduciría a la mitad el tamaño del archivo al dejar caer cualquier otro cuadro).
Si lo hizo, la velocidad puede cambiar, arreglado, gifspeedchange input-opt.gif 5por ejemplo, para usar un retraso de cuadro de 50 ms.
Respuestas:
ImageOptim usa Gifsicle para su compresión Gif. Hasta donde sé, funciona bastante bien (generalmente no uso Gif en estos días). Desde su sitio:
fuente
Puede usar Gimp para eliminar algunos fotogramas del GIF, así como volver a optimizar el archivo volviéndolo a guardar en un GIF.
fuente
Uso ezgif.com/optimize , ya que GIMP y otras herramientas no son buenas en este trabajo. La diferencia es que ezgif usa una
gifsicle
modificación (con unalossy
bandera), no disponible en laapt
versión. Vea la versión 1.82.1 aquí (reemplace/usr/bin/gifsicle
con la apropiada para su sistema (el binario que termina con-static
).Mis notas sobre un flujo de trabajo de optimización de gif completo están aquí .
Editar : la secuencia de comandos actual que se mantiene en uso se actualizará en GitHub aquí
No describiré cómo lo hago todo aquí, la idea general es algunas funciones / alias bash:
La
--lossy
bandera toma un número entero de 30 a 200, por lo que para obtener la mejor calidad:Con la función anterior
gifopt
, puede simplificar las cosas, ya que el valor predeterminado es 30... la salida se nombrará automáticamente
input-opt.gif
. Puede cambiar la función para usar el--batch
indicador para la edición in situ, pero no recomendaría sobrescribir su material de inicio.Esa función también funciona para eliminar cualquier
_reduced_x
sufijo agregado por la función de reducción de conteo de cuadros, es decir, podría tener un archivo intermedioinput_reduced_x2.gif
(un paso que reduciría a la mitad el tamaño del archivo al dejar caer cualquier otro cuadro).Si lo hizo, la velocidad puede cambiar, arreglado,
gifspeedchange input-opt.gif 5
por ejemplo, para usar un retraso de cuadro de 50 ms.fuente
Puede optimizar su archivo .gif en Gimp fácilmente.
Simplemente guarde como .gif y luego comprima o puede guardar en otra extensión como .jpeg u otra.
fuente