6

I have a folder with lots of images and i want to sort animated GIFs from non animated GIFs and move the animated GIFs to a new folder. Tried with software like XnView and XnViewMp for Windows but they don't have this option [ http://newsgroup.xnview.com/viewtopic.php?f=82&t=31485 ]. Also tried this: How divide a folder of GIFs into animated and static ones but the Image Magic command is for one image only and there are too many files to do that one by one.

3

ExifTool is simply amazing and immensely powerful:

exiftool -if "$FrameCount > 0" -directory=Animated *.gif
2
  • Awesome! It does the job very easy. – Ventolinmono Apr 15 '15 at 4:30
  • Yeah, it's great, isn't it? I've been using it for a long time (mainly to edit/delete JPEG metadata) and still discover new features and uses regularly. Also the developer (a nuclear physicist and programmer) is extremely helpful so if you face any difficulties just post on the forum (or here on SU :). – Karan Apr 15 '15 at 6:03
4

To filter out the animated GIFs, you need to search for GIF files with more than one frame. Each frame starts with a "Graphics Control Extension" block with the hexadecimal signature 21 F9 04. So you have to search for .gif files with two or more occurrences of this signature. These should be typically animated GIFs.

This general approach should work with any tool which supports some kind of binary search together with wildcards. This also means that many tools with regular expression support should find animated gif files with this expression:

\x00\x21\xf9\x04.*\x00\x21\xf9\x04
  • At first I tried my favorite file manager Total Commander, but sadly the provided regex engine doesn't support multi-line search and it doesn't work.
  • Swiss File Knife (sfk): find all animated GIFs on drive C:
    sfk xfind -firsthit -pat "/\x21\xf9\x04[4 bytes]\x00**\x21\xf9\x04/" -dir c:\ -file .gif | findstr ":file"
  • FreeCommander supports the above regex in his "Search files" dialog (advanced mode)
  • PowerGREP also finds animateds GIFs with the options "Search through binary files" and "Dot matches newlines"
  • Grep for Windows: grep -Pl "(?s)\x00\x21\xf9\x04.*\x00\x21\xf9\x04" *.gif
4
  • That regex for Swiss File Knife doesn't find all the animated GIFs. I went on to delete all animated GIFs in that folder with: sfk xfind -firsthit . "/\x00\x21\xf9\x04[4 bytes]\x00**\x21\xf9\x04/" +del -yes | findstr ":file" but there are some GIFs files remaining that are animated. Didn't tried FreeCommander and PowerGREP because they are not free software and didn't got any quick results with Grep for Windows or GrepWin (I don't know how to grep). – Ventolinmono Apr 14 '15 at 20:02
  • Also very important using that expression in a folder that has other types it returns files like .exe or .dll. So i guess it's not exclusive for GIF files. – Ventolinmono Apr 14 '15 at 21:56
  • @Ventolinmono You can just add a file pattern the sfk command to search only for .gif files. Of course FreeCommander is free, that's why it called like it is. For grep the answer has a working example, so I don't see why you don't know how to use it. – splash Apr 15 '15 at 6:57
  • @Ventolinmono It's not unusual that the regular expression pattern is also found in other binary files. That's why you should use a file mask. – splash Apr 15 '15 at 7:13
0

This may different than what you are looking for, but it works simply enough: Use an image viewer such as FastStone Image Viewer available at (I use the portable version.):

http://www.faststone.org/FSViewerDownload.htm

Make a folder for the motion gif images.

Observe the gif images in the viewer to easily differentiate between motion and non-motion gifs. As you go through the images with the viewer select the gif images in Windows File Explorer using Shift + Right Click for each motion gif.

When you are done selecting all the motion gif images use Ctrl + X to cut then go into your motion gif folder and use Ctrl + V to paste them into the folder.

That's it, although it is also a good time to get rid of some obsolete images.

MarkinID

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.