Zjistěte, zda je GIF animovaný

Pokud tweetnete animovaný GIF, všimnete si, že jej Twitter vezme a převede na mp4. Spekuloval bych, že tuto konverzi provádějí, protože MP4 je na různých platformách lépe podporováno, alespoň v tom, že umožňují přehrávání/pozastavení animace. A pomocí videa můžete na rozdíl od GIF zabránit nekonečnému opakování. Jak můžete zjistit, zda je GIF animovaný? Našel jsem několik dobrých řešení.

Příkazový řádek s ImageMagick

ImageMagick, úžasná knihovna pro manipulaci s obrázky, poskytuje metodu počítání snímků v GIF:

./ImageMagick-6.9.0/bin/identify -format %n wtf.gif

Výše uvedený příkaz vám poskytne počet snímků v rámci GIF.

detektor animovaných gif

Pro ty z vás, kteří preferují JavaScript (...moji lidé...), jsem na NPM našel opravdu jednoduchou knihovnu pro detekci animovaných GIF: animated-gif-detector. Jeho API nemůže být kratší:

var fs = require('fs');
var animated = require('animated-gif-detector');

> animated(fs.readFileSync('wtf.gif'));
// true

> animated(fs.readFileSync('blank.gif'));
// false

Volání funkce jednoduše vrátí true nebo false , což představuje, zda je GIF animovaný. Přesně to, co jsem chtěl!

Pokud jde o to, co každá knihovna hledá, viděl jsem nějaký ošklivý bitový kód, který se nebudu snažit popsat. Pokud však chcete zjistit, zda je GIF animovaný, je to stejně snadné jako výše uvedené nástroje!