我有这个小小的python脚本,它打开一个窗口并在窗口中放置一个GIF动画。我使用它作为屏幕保护程序(没有什么幻想,真的)。我的问题是,GIF不是我的显示器的大小;它在屏幕上很小。我想要做的是将其缩放到屏幕的大小。我已经研究过PIL以及images2gif,但他们没有给我我需要的缩放选项。放大python中的动画GIF与PyGTK一起使用
我想要做的是在脚本中加载动画GIF,然后缩放它,最后在PyGTK生成的窗口中播放。我试过的是用subprocess
来捕捉gifsicle的输出。虽然这确实缩放了GIF,但我无法在脚本的PyGTK部分使用它,因为从subprocess
返回的数据。我要做的就是:
p = subprocess.check_output(["gifsicle --scale 3.3 foo.gif"], shell=True)
变量p
有GIF动画的数据,但在这种状态下,我不能PyGTK的使用。理想情况下,我想加载它像这样:
pixbufAn = gtk.gdk.pixbufAnimation(p)
image = gtk.Image()
image.set_from_animation(pixbufAn)
有我的方式,从gifsicle --scale 3.3 foo.gif
调用中使用的数据?或者是否有一种纯粹的Python缩放动画GIF并将其与PyGTK一起使用的方式?
谢谢你的回答,@luciomrx。为了解决这个问题,你建议从动画中获取一个迭代器,然后用'pbuf = iter.get_pixbuf()'来遍历每个动画图像的循环,并推进它,我会使用iter = iter。前进(glib.get_current_time())'而经历循环的每次迭代?然后我用'simpleanim = gtk.gdk.PixbufSimpleAnim(width,height,rate)'创建一个动画,并用'simpleanim.add_frame(pbuf)'填充'simpleanim'。 – Ertain
是的。 PIL实际上是我的第一选择,但最近数百个PIL的实验完全不能满足我。 – luciomrx
此代码向正确的方向发送了我。不过,我仍然无法设置正确的屏幕保护程序。感谢您的帮助,@luciomrx。 – Ertain