Изменение размера GIF-анимации, pil / imagemagick, python - PullRequest
7 голосов
/ 03 апреля 2012

Я хочу изменить размер анимационного изображения GIF, используя python и PIL или PythonMagick. Я не могу найти решение. PIL и метод миниатюр работают для jpg и png, но не для gif. ImageMagick имеет команду mogrify / convert -resize '1280x1024>', но я не могу найти документацию и не знаю, как это сделать с помощью pythonmagick.

Кто-нибудь знает решение?

В худшем случае я использую os / subprocess и конвертирую; -S

Спасибо.

Ответы [ 2 ]

12 голосов
/ 05 апреля 2012

Вы можете использовать PIL и images2gif, краткий модуль на основе PIL, связанный с этой страницей блога , и доступный здесь . Код, используемый для обработки этого rose.gif ниже. Я установил для свойства images2gif.readGif read as numpy array значение false, чтобы получить список изображений PIL, чтобы можно было использовать функцию PIL thumbnail.

Orignial: rose Обработано: small rose

import Image
import images2gif

frames = images2gif.readGif("rose.gif",False)
for frame in frames:
    frame.thumbnail((100,100), Image.ANTIALIAS)

images2gif.writeGif('rose99.gif', frames)

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

3 голосов
/ 25 июня 2013

Какой-то удивительный человек сделал обновленную версию images2gif.py, которая учитывает прозрачность:

https://bitbucket.org/bench/images2gif.py/overview

Есть еще артефакты, но они намного лучше оригинала!

...