Imagemagick "Свести" кадры в анимированном GIF при сохранении глобальной таблицы цветов
У меня есть анимированный GIF с глобальной таблицей цветов 256 байт. Более поздние рамки не распространяются на полные размеры холста, поэтому они "накладываются" на области холста. Графика на более ранних слоях только частично скрыта графикой на более поздних слоях. Моя цель состоит в том, чтобы "сгладить" изображение так, чтобы у меня был 1-кадровый / не анимированный GIF-файл, который отображается так же, как анимированный GIF-файл в последнем кадре анимации (после того, как все его кадры нарисованы). Я могу добиться желаемых результатов с помощью imagemagick:
convert animation.gif -flatten flattened.gif
Это создает GIF с одним кадром с именем flatered.gif, который выглядит как animation.gif в последнем кадре. Большой!
Моя проблема в том, что flatered.gif имеет другую (кстати меньшую) глобальную таблицу цветов. У меня есть некоторые необычные требования к приложениям, которые означают, что мне нужно, чтобы глобальная таблица цветов сплющенного GIF была идентична глобальной таблице цветов исходного изображения, анимированного GIF.
Любые предложения с благодарностью.
1 ответ
Попробуйте извлечь цвета из оригинального GIF и сохранить их как palette.gif
используя эту команду:
convert original.gif -unique-colors palette.gif
Затем, когда у вас будет ваше окончательное изображение, примените к нему исходную палитру с помощью:
convert final.gif -remap palette.gif result.gif