Необходимо работать с png/gif картинками. Если в gif всего один фрейм, то переконвертировать в png. Плюс надо добавлять вотемарк на эти файлы. Почти везде написано, что PIL плохо работает с прозрачными gif. Посему было решено использовать pgmagick. Но вот как проверять количество кадров понять не смог. Спасибо.

задан 07 Апр '12, 23:45

fixer's gravatar image

fixer
56712
Одобрено: 50%


Думаю вам стоит смотреть в сторону этого примера для ImageList, только вместо записи на диск сделать наоборот - чтение:

from pgmagick import Image, ImageList, Geometry, Color

imgs = ImageList()
for color in ('red', 'blue', 'green', 'black', 'yellow'):
    imgs.append(Image(Geometry(200, 200), Color(color)))
imgs.animationDelayImages(100)
imgs.scaleImages(Geometry(100, 100))
print len(imgs)
imgs.writeImages('output.gif')
Постоянная ссылка

отвечен 08 Апр '12, 13:05

Berg's gravatar image

Berg ♦♦
5565813
Одобрено: 77%

С количеством кадров разобрался с помощью PIL.Image.info. Пытаюсь наложить вотермарк на уровне модели.

imbase = pgmagick.Image(self.img)

Выдает ошибку: Python argument types in Image.init(Image, ImageFieldFile) did not match C++ signature

При этом PIL спокойно ее заглатывает: imbase = Image.open(self.img)

(11 Апр '12, 18:23) fixer fixer's gravatar image

self.img - это что ? как-то мало кода для рассмотрения

(11 Апр '12, 22:38) Berg ♦♦ Berg's gravatar image

Подробно описал всю ситуацию тут http://python.su/forum/topic/14357/?page=1#post-85650 На другом форуме мне так и не смогли помочь

(15 Апр '12, 14:47) fixer fixer's gravatar image
1

Как оказалось в pgmagick просто отсутствует класс ImageList (доки устарели?).

img = pgmagick.Image('animated.gif') img.write('output.gif')

Данный код сохраняет статичную версию

(16 Апр '12, 22:17) fixer fixer's gravatar image
Ваш ответ
включить просмотр

Следить за вопросом

По Email:

После авторизации вы сможете подписаться на любые обновления здесь

По RSS:

Ответы

Ответы и комментарии

Основы Markdown

  • *italic* or _italic_
  • **bold** or __bold__
  • ссылка:[текст](http://url.com/ "заголовок")
  • изображение?![alt текст](/path/img.jpg "заголовок")
  • нумерованый список: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • основные теги HTML, также поддерживаются

Теги вопроса:

×5
×1
×1

заданые вопросы: 07 Апр '12, 23:45

просмотренные вопросы: 5,419 times

последние обновления: 16 Апр '12, 22:17