Уведомления

Группа в Telegram: @pythonsu

#1 Май 16, 2010 17:29:45

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

PIL и анимированные GIF

Здравствуйте

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

Да, заню что надо юзать imagemagick, но pythonmagick под винду тяжело собирается, а на Linux сейчас ент возможности быть



Офлайн

#2 Май 16, 2010 22:35:24

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

PIL и анимированные GIF

aliens
некоторые обалсти становятся белыми.
пример в студию :) возможно это из за alpha канала…



Офлайн

#3 Май 17, 2010 11:29:43

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

PIL и анимированные GIF

aliens
pythonmagick под винду тяжело собирается
Зачем собирать, если есть бинарники.
Установка MagickWand: http://sterch.net/dwiki/doku.php?id=admin:installpythonmagickwand.
Пример использования: http://sterch.net/dwiki/doku.php?id=python:animatedgifwithpythonmagickwand.



Отредактировано (Май 17, 2010 11:36:12)

Офлайн

#4 Май 17, 2010 15:53:43

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

PIL и анимированные GIF

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 и не совсем понял, все-ли оно поддерживает или нет



Офлайн

#5 Май 24, 2010 02:17:30

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

PIL и анимированные GIF

Собственно, попробовал я через 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)
Кто подскажет, что за проблема и как бы ее решить? Думается мне, что надо либо какой-то фильтр указать, либо неправильно формат определяется



Офлайн

#6 Май 24, 2010 13:39:07

gimp
От:
Зарегистрирован: 2009-05-22
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

PIL и анимированные GIF

Возможно, так и должно быть.
gif-картинки можно оптимизировать,при этом n-фрейм содержит не полностью изображение, а его изменение от n-1 фрейма. Белые пространства которые у вас должны заполняться из предыдущего фрейма.
Попробуйте открыть картинку в каком-нибудь редакторе и посмотреть на фреймы.



Отредактировано (Май 24, 2010 13:42:00)

Офлайн

#7 Май 24, 2010 14:10:56

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

PIL и анимированные GIF

gimp
Фишка в том, что открыл в простом гиф-редакторе, там фреймы все ок



Офлайн

#8 Май 24, 2010 19:26:54

PitPytoni
От:
Зарегистрирован: 2010-02-14
Сообщения: 64
Репутация: +  0  -
Профиль   Отправить e-mail  

PIL и анимированные GIF

может потому что картинка Gif состоит из множества слоёв большинство из них прозрачны вот по этому такое и происходит !!



Офлайн

#9 Май 24, 2010 20:47:24

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

PIL и анимированные GIF

PitPytoni
может потому что картинка Gif состоит из множества слоёв большинство из них прозрачны вот по этому такое и происходит !!
Да понимаю я это, вот как-бы это указать в ImageMagick или PIL?



Офлайн

#10 Май 24, 2010 21:58:49

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

PIL и анимированные GIF

Все, разобрался

Знал про параметр MagickCoalesceImages(wand), но неправильно использовал.
Он оказывается возвращает еще один wand, в котором уже все ок



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version