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
gifsiclemodificación (con unalossybandera), no disponible en laaptversió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:
La
--lossybandera 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--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 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 5por 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