Created
January 28, 2016 17:25
-
-
Save aug2uag/0906c80efb9fd6067b54 to your computer and use it in GitHub Desktop.
remove every second frame of GIF with gifsicle
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# This script will take an animated GIF and delete every other frame | |
# Accepts two parameters: input file and output file | |
# Usage: ./<scriptfilename> input.gif output.gif | |
# Make a copy of the file | |
cp $1 $2 | |
echo "copy completed" | |
# Get the number of frames | |
numframes=`gifsicle $1 -I | grep -P "\d+ images" --only-matching | grep -P "\d+" --only-matching` | |
echo "numframes completed" | |
# Deletion | |
gifsicle "$1" --unoptimize $(seq -f "#%g" 0 2 $numframes) -O2 -o "$2" | |
echo "script completed" |
@rjsteinert Try this version on mac.
//on macos, get numframes use this command:
numframes=gifsicle $1 -I | head -n 1 | awk '{print $3}'
To work with MacOS and Linux...
Replace:
numframes=`gifsicle $1 -I | grep -P "\d+ images" --only-matching | grep -P "\d+" --only-matching`
With:
os=$(uname -s)
if [[os == 'Darwin']]; then
numframes=$(gifsicle $1 -I | head -n 1 | awk '{print $3}')
else
numframes=`gifsicle $1 -I | grep -P "\d+ images" --only-matching | grep -P "\d+" --only-matching`
fi
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
thank you. i found it useful