Как разделить анимированный файл .gif на его компоненты?


44

Как я могу легко разделить анимированный GIF-файл? Я хочу видеть каждый кадр.

Я действительно предпочел бы не экспортировать каждый кадр в каталог. Я хотел бы просмотреть их индивидуально в одном приложении, если это возможно.

Это возможно в Linux?

Ответы:


54

Попробуйте открыть их с Gimp; Я считаю, что это откроет анимированные GIF-файлы с одним слоем на кадр.

Вы говорите, что не хотите помещать все кадры в файлы в каталоге, но я все равно расскажу вам, как это сделать :). Установите либо ImageMagick, либо graphicsmagick, а затем:

для ImageMagick:

convert animation.gif target.png

для графики:

gm convert animation.gif target.png

он будет записывать фреймы в target0.png, target1.png, ... и так далее. Затем вы можете войти в каталог и запустить eog, он покажет вам все кадры в одном приложении. Когда вам больше не нужны рамки, просто rm target*.png.


imagemagick просто потрясающе !!
fccoelho

1
Преобразование imagemagic мне не удалось, так как кажется, что каждое изображение gif было представлено в виде нового слоя с прозрачным фоном, а преобразование дало эти прозрачные слои: upload.wikimedia.org/wikipedia/commons/5/5d/AstarExample.gif
Ciro Сантилли 事件 改造 中心 法轮功 六四 事件

Я открыл свой GIF в GIMP, но я до сих пор не знаю, как просмотреть каждый кадр в отдельности - я просто вижу последний кадр. Я работаю с этой анимацией: /tmp/Non-Native-American-Nations-Territorial-Claims-over-NAFTA-countries-1750-2008.gif
nealmcb

3
GraphicsMagick должен иметь форму, gm convert some-image.gif +adjoin some-image%d.pngчтобы работать. Или gm convert some-image.gif -coalesce +adjoin some-image%d.pngдля подкадров различного размера с различными смещениями.
1 марта

1
Указанная convertпропускает -coalesceопцию, которая требуется для того, что пользователь ожидает.
Маркус

42

Если различные кадры имеют прозрачные области и опираются друг на друга, вы можете использовать convertкоманду с параметром « -coalesce» для создания набора файлов target-0.png, target-1.png и т. Д., Каждый из которых объединяет последовательность предыдущих картинки:

convert -coalesce animation.gif target.png

1
Отличный комментарий, но нуждается в объяснении. По сути, это решает проблему, с которой @cirosantilli столкнулся с ImageMagick, возвращая то, что выглядело как обновление, в определенных областях экрана. -coalesce объединяет эти обновления, чтобы дать вам законченный рендеринг.
AnthonyVO

3
Следует отметить, что (начиная с версии 6.7.7 ImageMagick), похоже, наблюдается некоторая утечка памяти: не пытайтесь делать -coalesceдлинные .gifскринкасты , это, вероятно, будет занимать всю доступную память и, возможно, повесит всю вашу систему.
оставлено около

4
Вы можете указать имена выходных файлов через что-то вроде:convert -coalesce animation.gif target.%04d.png
Тревор Бойд Смит

2

для меня, с ImageMagick(версия информации: 6.8.9-9 Q16 x86_64 2017-07-31)

convert gif.gif gif.pdf

создает PDF, где каждая страница является фреймом входного GIF, а затем вы можете просто пролистать фреймы в выбранном вами приложении для просмотра PDF.


Это кажется слишком сложным и непохожим на то, что хочет ОП.
Дэвид Фёрстер

Чтобы получить каждый кадр в виде страницы в формате .pdf, это отличная идея, просто учтите, что этот метод может содержать ошибки, и вам необходимо настроить приложение .
love.by.Iesus

2

Используйте MPV. Откройте его на рабочем столе. Перетащите GIF в него. Сделайте скриншот желаемого / одного кадра с помощью клавиши s. Вы можете даже сделать паузу, если ваш GIF быстрый. Очень быстрый способ.

===========

вы можете сначала использовать эти настройки [после настройки вам не нужно делать это снова] :

gedit ~/.config/mpv/mpv.conf

и введите и сохраните:

--screenshot-format Выбор: jpg jpeg png (по умолчанию: jpg)

для наивысшего качества PNG:

--screenshot-format=png
--screenshot-png-compression=9

или если вы хотите JPG

--screenshot-jpeg-quality Целое число (от 0 до 100) (по умолчанию: 90)

Используйте mpv --list-options для других деталей


Привет :) назад andrew.46. попробовал Gimp и расстроился. есть немного, что mpv не может сделать:]
shantiq
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.