Плитки анімовані картинки


10

Чи існує якийсь спосіб використовувати імагемагічний / фотомонтаж для плитки петельними анімованими gif-файлами (змішаними з неанімаційними)?

Тобто я хочу об'єднати анімацію в просторі, а не в часі. Я розумію, що кількість кадрів та їх тривалість в анімації можуть унеможливити акуратне поєднання двох анімацій. Але я добре в тому, що програма робить наближення та здогадки, а також розширює / повторює кадри, якщо всі кадри є певним чином.

Я намагався

convert *.gif -append output.gif

і

montage *.gif -mode concatenate -tile x1 output.gif

але вони обидва трактують анімовані gif як декілька індивідуальних не анімованих.

Я припускаю, що, можливо, я можу написати сценарій, щоб розбити анімованих кадрів на рамки, повторити / продовжити коротші петлі, якщо це необхідно, щоб відповідати найдовшій циклі, повторити неанімаційні gif-файли, оскільки стільки кадрів є в найдовшій анімованій, зшийте відповідні кадри в один великий кадр -append, а потім об'єднайте ці великі кадри в один великий gif. Але я не хочу винаходити колесо, якщо це вже можливо за допомогою простої команди.

Я, звичайно, відкритий для інших безкоштовних варіантів, крім imagemagick.



2
Я зроблю це так, як це, мабуть, не передбачалося; як серйозний коментар. Так, я хочу плитки GIF. Але постійно, не в HTML. Дякую за посилання Я збережу саме цей GIF для подальшого використання.
цберталан

1
@tsbertalan Ви зрештою це з'ясували?
Seb Barre

Відповіді:


1

Здається, ви хочете зіставити декілька анімацій через час, але це займе програму, щоб прочитати кожен кадр та його затримку, а потім вивести цей кадр з деякою періодичною частотою, поки затримка не буде виконана. наприклад: 1 кадр, затримка в 1 секунду, а ваша "частота" становить 100 мс, тож ви хочете виписати 10 кадрів на 100 мс? А потім перетворений на лінійний монтаж?

Для цього потрібна програма або здоровенний сценарій, щоб виконати таку обробку, і вам доведеться визначити свою "частоту" (100 мс тут).

Але це чудово працює: (gifsicle - це пакет, монтаж - частина пакету imagemagick)

gifsicle --unoptimize cool_animation.gif | \
  montage -tile x1 - linear_frames.png

(рядок зламаний для читабельності)

Перший рядок розбиває вхідний gif на окремі кадри (до stdout), але із заповненими шарами. спочатку без параметра - неоптимізувати, це дало б перший кадр, але наступні кадри містили лише те, що змінювалося щоразу. Зроблено для дивних фотомонтажів!

Другий рядок будує лінійний вихід, беручи кожне зображення кадру (від stdin) і упорядковуючи їх у визначеному вами порядку. 'x1', щоб розташувати їх по горизонтальній лінії.

Ви можете замінити одне ім'я файлу (cool_animation.gif) декількома, або навіть підстановкою * .gif.

Я не впевнений, що це те, що ви шукаєте, хоча.


Коли буде змінено на gifsicle --colors=255 DATA.gif | gifsicle --unoptimize | montage -tile x1 - linear_frames.pngтестове зображення Ƭᴇcʜιᴇ007, це дає мені imgur.com/a/Likr9 ; не зовсім те, що я шукаю. Я не можу згадати первісну мету; Я припускаю, що я, мабуть, просто написав сценарій, щоб все це чітко розбити.
цберталан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.