Форум сайта python.su
Здравствуйте
Никто не работал с PIl и анимированными гифами? Он почему-то портит фреймы, даже если тупо открыть gif, и показать n-ный фрейм. некоторые обалсти становятся белыми. Никто незнает как можно поправить?
Да, заню что надо юзать imagemagick, но pythonmagick под винду тяжело собирается, а на Linux сейчас ент возможности быть
Офлайн
aliensпример в студию :) возможно это из за alpha канала…
некоторые обалсти становятся белыми.
Офлайн
aliensЗачем собирать, если есть бинарники.
pythonmagick под винду тяжело собирается
Отредактировано (Май 17, 2010 11:36:12)
Офлайн
igor.kaistВот такая гифка: http://4gifs.com/gallery/d/154562-1/Box_opens_closes.gifaliensпример в студию :) возможно это из за alpha канала…
некоторые обалсти становятся белыми.
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Попробую, спасибо. Просто читал про этот Magick и не совсем понял, все-ли оно поддерживает или нет
Зачем собирать, если есть бинарники.
Установка MagickWand: http://sterch.net/dwiki/doku.php?id=adm … agickwand.
Пример использования: http://sterch.net/dwiki/doku.php?id=pyt … agickwand.
Офлайн
Собственно, попробовал я через 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)
Офлайн
Возможно, так и должно быть.
gif-картинки можно оптимизировать,при этом n-фрейм содержит не полностью изображение, а его изменение от n-1 фрейма. Белые пространства которые у вас должны заполняться из предыдущего фрейма.
Попробуйте открыть картинку в каком-нибудь редакторе и посмотреть на фреймы.
Отредактировано (Май 24, 2010 13:42:00)
Офлайн
gimp
Фишка в том, что открыл в простом гиф-редакторе, там фреймы все ок
Офлайн
может потому что картинка Gif состоит из множества слоёв большинство из них прозрачны вот по этому такое и происходит !!
Офлайн
PitPytoniДа понимаю я это, вот как-бы это указать в ImageMagick или PIL?
может потому что картинка Gif состоит из множества слоёв большинство из них прозрачны вот по этому такое и происходит !!
Офлайн
Все, разобрался
Знал про параметр MagickCoalesceImages(wand), но неправильно использовал.
Он оказывается возвращает еще один wand, в котором уже все ок
Офлайн