Как отобразить анимированный gif с Linux?
Я хочу открыть GIF-изображение с консоли python в Linux. Обычно при открытии .png
или .jpg
, Я бы сделал следующее:
>>> from PIL import Image
>>> img = Image.open('test.png')
>>> img.show()
но если я делаю это:
>>> from PIL import Image
>>> img = Image.open('animation.gif')
>>> img.show()
Imagemagick откроется, но покажет только первый кадр gif, а не анимацию.
есть ли способ показать анимацию GIF в средстве просмотра в Linux?
2 ответов
Image.show
сбрасывает изображение во временный файл, а затем пытается отобразить файл. Он зовет ImageShow.Viewer.show_image
(см. /usr/lib/python2.7/dist-packages/PIL/ImageShow.py
):
class Viewer:
def save_image(self, image):
# save to temporary file, and return filename
return image._dump(format=self.get_format(image))
def show_image(self, image, **options):
# display given image
return self.show_file(self.save_image(image), **options)
def show_file(self, file, **options):
# display given file
os.system(self.get_command(file, **options))
return 1
AFAIK, стандартный PIL не удается сохранить анимированные GIF1.
на image._dump
вызов в Viewer.save_image
сохраняется только первый кадр. Поэтому независимо от того, какой зритель впоследствии называется, вы видите только статическое изображение.
если у вас есть ImageMagick в display
программа, то вы также должны иметь его
linux откройте gif
Я сделал это с Fedora 17:
el@defiant ~ $ sudo yum install gifview
---> Package gifview.x86_64 0:1.67-1.fc17 will be installed
curl http://i.imgur.com/4rBHtSm.gif > mycat.gif
gifview mycat.gif
появляется окно, и вы можете пройти через рамки gif.