6

У меня есть папка с большим количеством изображений, и я хочу отсортировать анимированные GIF-файлы из неанимированных GIF-файлов и переместить анимированные GIF-файлы в новую папку. Пробовал с программным обеспечением, таким как XnView и XnViewMp для Windows, но у них нет этой опции [ http://newsgroup.xnview.com/viewtopic.php?f=82&t=31485 ]. Также попытался это: Как разделить папку GIFs в анимированные и статические , но волшебная команда Изображение только для одного изображения , и есть слишком много файлов , чтобы сделать это один на один.

3 ответа3

4

Чтобы отфильтровать анимированные GIF-файлы, необходимо выполнить поиск GIF-файлов с несколькими кадрами. Каждый кадр начинается с блока "Расширение управления графикой" с шестнадцатеричной подписью 21 F9 04 . Таким образом, вы должны искать .gif файлы с двумя или более экземплярами этой подписи. Это должны быть, как правило, анимированные GIF-файлы.

Этот общий подход должен работать с любым инструментом, который поддерживает некоторый бинарный поиск вместе с подстановочными знаками. Это также означает, что многие инструменты с поддержкой регулярных выражений должны находить анимированные GIF-файлы с этим выражением:

\x00\x21\xf9\x04.*\x00\x21\xf9\x04
  • Сначала я попробовал мой любимый файловый менеджер Total Commander, но, к сожалению, предоставленный движок регулярных выражений не поддерживает многострочный поиск и не работает.
  • Swiss File Knife (sfk): найдите все анимированные GIF-файлы на диске C:
    sfk xfind -firsthit -pat "/\x21\xf9\x04[4 bytes]\x00**\x21\xf9\x04/" -dir c:\ -file .gif | findstr ":file"
  • FreeCommander поддерживает приведенное выше регулярное выражение в своем диалоговом окне "Поиск файлов" (расширенный режим)
  • PowerGREP также находит анимированные GIF-файлы с параметрами "Поиск по двоичным файлам" и "Точка соответствует новым строкам"
  • Grep для Windows: grep -Pl "(?s)\x00\x21\xf9\x04.*\x00\x21\xf9\x04" *.gif
3

ExifTool просто потрясающий и невероятно мощный:

exiftool -if "$FrameCount > 0" -directory=Animated *.gif
0

Это может отличаться от того, что вы ищете, но работает достаточно просто: используйте средство просмотра изображений, такое как FastStone Image Viewer, доступное на (я использую переносную версию.):

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

Создайте папку для изображений GIF.

Наблюдайте за GIF-изображениями в средстве просмотра, чтобы легко отличать GIF от движения и без движения. Когда вы просматриваете изображения с помощью средства просмотра, выберите изображения GIF в проводнике Windows, используя Shift + щелчок правой кнопкой мыши для каждого изображения GIF.

Когда вы закончите выделение всех изображений GIF, используйте Ctrl + X для обрезки, затем перейдите в папку GIF и нажмите Ctrl + V, чтобы вставить их в папку.

Вот и все, хотя это также хорошее время, чтобы избавиться от некоторых устаревших изображений.

MarkinID

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .