调整GIF动画、pil/imagemagick、python的大小

调整GIF动画、pil/imagemagick、python的大小,python,imagemagick,python-imaging-library,gif,pythonmagick,Python,Imagemagick,Python Imaging Library,Gif,Pythonmagick,我想使用python和PIL或PythonMagick更改GIF动画图像的大小。我找不到解决办法。PIL和缩略图方法适用于jpg和png,但不适用于gif。ImageMagick有命令mogrify/convert-resize'1280x1024>,但我找不到文档,也不知道如何使用pythonmagick 有人知道答案吗 在最坏的情况下,我使用os/子进程并转换- 谢谢。您可以使用PIL和images2gif,这是一个基于PIL的短模块,链接到此模块上,并且可用。用于处理此rose.gif的代

我想使用python和PIL或PythonMagick更改GIF动画图像的大小。我找不到解决办法。PIL和缩略图方法适用于jpg和png,但不适用于gif。ImageMagick有命令mogrify/convert-resize'1280x1024>,但我找不到文档,也不知道如何使用pythonmagick

有人知道答案吗

在最坏的情况下,我使用os/子进程并转换-


谢谢。

您可以使用PIL和
images2gif
,这是一个基于PIL的短模块,链接到此模块上,并且可用。用于处理此rose.gif的代码如下。我将
images2gif.readGif
'read as numpy array'属性设置为
false
,以获取PIL图像列表,以便使用PIL
缩略图
功能

原始:已处理:

import Image
import images2gif

frames = images2gif.readGif("rose.gif",False)
for frame in frames:
    frame.thumbnail((100,100), Image.ANTIALIAS)

images2gif.writeGif('rose99.gif', frames)

我不知道如何保持透明度,我的尝试(到目前为止)失败了。

一些了不起的人制作了一个更新版本的images2gif.py,它解释了透明度:


仍然有一些人工制品,但它比原来的要好得多

我建议您在这段时间内使用subprocess和convert。Pythonmagic缺乏适当的维护,而PIL只支持读取动画gif,其他什么都不支持。将问题留待讨论-可能会出现一个用Pythonmagic调整大小的psnipped用户。根据,您必须自己处理透明度,使用transparency=im.info[“transparency”]。。。;out.save(“out.gif”,transparency=transparency)第一次尝试失败-选项板列表看起来像[None,None..None],并尝试将其写入新文件。不幸的是,当一段代码没有附带测试时,这就是您所期望的情况。原始版本至少给出了一条有意义的消息:
RuntimeError:cannotgetpalete。也许你应该试试imageio。