Найти - Пользователи
Полная версия: PIL и анимированные GIF
Начало » Python для новичков » PIL и анимированные GIF
1
aliens
Здравствуйте

Никто не работал с PIl и анимированными гифами? Он почему-то портит фреймы, даже если тупо открыть gif, и показать n-ный фрейм. некоторые обалсти становятся белыми. Никто незнает как можно поправить?

Да, заню что надо юзать imagemagick, но pythonmagick под винду тяжело собирается, а на Linux сейчас ент возможности быть
igor.kaist
aliens
некоторые обалсти становятся белыми.
пример в студию :) возможно это из за alpha канала…
regall
aliens
pythonmagick под винду тяжело собирается
Зачем собирать, если есть бинарники.
Установка MagickWand: http://sterch.net/dwiki/doku.php?id=admin:installpythonmagickwand.
Пример использования: http://sterch.net/dwiki/doku.php?id=python:animatedgifwithpythonmagickwand.
aliens
igor.kaist
aliens
некоторые обалсти становятся белыми.
пример в студию :) возможно это из за alpha канала…
Вот такая гифка: http://4gifs.com/gallery/d/154562-1/Box_opens_closes.gif

Вот такой код:
from PIL import Image
im = Image.open('d:/box_opens_closes.gif')
im.seek(im.tell()+1)
im.seek(im.tell()+1)
im.seek(im.tell()+1)
im.show()
Открывается очень попорченая кратинка (много белых областей).

regall
Зачем собирать, если есть бинарники.
Установка MagickWand: http://sterch.net/dwiki/doku.php?id=adm … agickwand.
Пример использования: http://sterch.net/dwiki/doku.php?id=pyt … agickwand.
Попробую, спасибо. Просто читал про этот Magick и не совсем понял, все-ли оно поддерживает или нет
aliens
Собственно, попробовал я через ImageMagick, получаю такой же результат (на большинстве кадров пропадает фон). Проверяю на этой гифке:
http://4gifs.com/gallery/d/154562-1/Box_opens_closes.gif
Код с MagickWand:
wand = NewMagickWand()
MagickReadImage(wand, 'd:/Box_opens_closes.gif')
MagickSetLastIterator(wand)
length = MagickGetIteratorIndex(wand)
MagickSetFirstIterator(wand)
for i in range(0, length+1):
MagickSetIteratorIndex(wand,i)
MagickScaleImage(wand, 87, 58)
MagickWriteImages(wand, 'path', 1)
Кто подскажет, что за проблема и как бы ее решить? Думается мне, что надо либо какой-то фильтр указать, либо неправильно формат определяется
gimp
Возможно, так и должно быть.
gif-картинки можно оптимизировать,при этом n-фрейм содержит не полностью изображение, а его изменение от n-1 фрейма. Белые пространства которые у вас должны заполняться из предыдущего фрейма.
Попробуйте открыть картинку в каком-нибудь редакторе и посмотреть на фреймы.
aliens
gimp
Фишка в том, что открыл в простом гиф-редакторе, там фреймы все ок
PitPytoni
может потому что картинка Gif состоит из множества слоёв большинство из них прозрачны вот по этому такое и происходит !!
aliens
PitPytoni
может потому что картинка Gif состоит из множества слоёв большинство из них прозрачны вот по этому такое и происходит !!
Да понимаю я это, вот как-бы это указать в ImageMagick или PIL?
aliens
Все, разобрался

Знал про параметр MagickCoalesceImages(wand), но неправильно использовал.
Он оказывается возвращает еще один wand, в котором уже все ок
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB