Skip to content
master
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 

README.md

gifduration.py

This script takes one or more animated GIF files as input and calculates their total durations, returning zero for non-animated GIF files.

Requirements

Just run pip install -r requirements.txt, preferably outside a virtual environment if you want this script available system-wide.

Installation

Clone the repository to some appropriate folder and symlink gifduration.py into your PATH, for example:

ln -s ~/Code/gifduration/gifduration.py /usr/local/bin/gifduration

You may also have to make it executable:

chmod +x /usr/local/bin/gifduration

Usage

To get the duration of an animated GIF file, supply it as an argument:

gifduration atom-heart-mother.gif

This will return something like:

atom-heart-mother.gif:
Total duration: 2000 ms (2.00 seconds)
---

To also get the duration of each frame, use the --verbose (or -v) flag:

gifduration --verbose atom-heart-mother.gif

This will return something like:

atom-heart-mother.gif:
Frame 1: 30 ms (0.03 seconds)
Frame 2: 80 ms (0.08 seconds)
Frame 3: 30 ms (0.03 seconds)
[…]
Total duration: 2000 ms (2.00 seconds)
---

You can get the durations of several animated GIF files at once just by supplying all of them as arguments, for example:

gifduration atom-heart-mother.gif meddle.gif a-saucerful-of-secrets.gif

This will return something like:

atom-heart-mother.gif:
Total duration: 2000 ms (2.00 seconds)
---
meddle.gif:
Total duration: 100 ms (0.10 seconds)
---
a-saucerful-of-secrets.gif:
Total duration: 0 ms (0.00 seconds)
---

GIF files that are not animated will return a duration of zero. All other file types will return the message Not a GIF image.

Website

Go here for a simple web service carrying out pretty much the same thing.

About

This script takes one or more animated GIF files as input and calculates their total durations.

Resources

Releases

No releases published

Languages

You can’t perform that action at this time.