Магия против Gifsicle - почему такая разница при объединении GIF? - PullRequest
0 голосов
/ 01 ноября 2018

Я объединяю 3 гифки по 3M каждый в больший.

До сих пор я использовал магию и конвертирование для выполнения этой работы, но в итоге они потребляли более 6 ГБ ОЗУ и были убиты (...).

convert pic1.gif pic2.gif pic3.gif final.gif

Погуглив вокруг, я нашел гифкулу, которая в итоге за очень короткое время объединила мои три гифки и потребила очень мало оперативной памяти ...

gifsicle pic1.gif pic2.gif pic3.gif > final.gif

Как пользователь переднего плана, я имею только ограниченное понимание этих инструментов, но как могут отличаться характеристики между конвертированием (магией) и gifsicle?

1 Ответ

0 голосов
/ 01 ноября 2018

Gifsicle делает специальную оптимизацию только для GIF. ImageMagick - это процессор изображений общего назначения, который также не оптимизирует изображения. Его код квантования точный, но медленный. Каждое из ваших изображений должно быть квантовано до 256 цветов или менее. Поскольку ваши изображения представляют собой GIF-изображения, они уже квантованы до 256 цветов или менее. Но каждый может использовать разные наборы цветов. В ImageMagick было бы лучше найти один общий набор цветов и использовать -remap color_map_image для преобразования всех входных изображений в один и тот же набор цветов. Это уменьшит размер файла. Вы можете просто добавить 3 входных изображения и получить уникальные цвета для изображения карты цветов. Вы также можете добавить оптимизацию -layers, чтобы потенциально уменьшить размер файла.

convert pic1.gif pic2.gif pic3.gif \
+append +dither -colors 256 -unique-colors colormap.gif

convert \
\( pic1.gif +dither -remap colormap.gif \)
\( pic2.gif +dither -remap colormap.gif \)
\( pic3.gif +dither -remap colormap.gif \)
-layers optimize \
final.gif


Тем не менее, Gifsicle все еще может быть лучше, поскольку это специализированный инструмент только для изображений GIF.

См. Также https://imagemagick.org/Usage/formats/#gif_non-im

...