尝试使用Pillow库创建一个gif

时间:2014-11-18 09:36:19

标签: python list gif pillow

〜这是我正在做的一项大学任务。目标是使用Pillow库创建一个gif。

我有大约720张图片都使用“a ###。jpg”格式,其中#是一个数字(即“a 001.jpg”)。

使用这些图像,我试图通过逐步调整图像大小(001.jpg)10次而不是使用应该更改为下一个图像(002.jpg)的递归函数来创建gif并调整大小10次​​等...;直到它到达“a 721.jpg”,它应该停止。

我不熟悉python中的Pillow库,所以我现在就在墙上了。 我也确定这段代码中存在大量错误或效率低下。

这将运行;但是,它不会继续下一个图像。我已经尝试了一些操作字符串“a 001.jpg”。 谁能告诉我问题出在哪里?

from PIL import Image

s = ("a 001.jpg")
im = Image.open(s)
def main(im):
    try:
        x = 920
        y = 80
        for a in range(0,10):
            x += 100
            y += 100
            box = (x,y)
            im = im.resize(box)
            im.show()
        s = list(s)
        if s[4] < 9:
            s[4] = int(s[4]) + 1
        elif s[4] == 9:
            s[4] = 0
            s[3] = int(s[3]) + 1
        elif s[3] < 9:
            s[3] = int(s[3]) + 1
        elif s[3] == 9:
            s[3] = 0
            s[2] = int(s[2]) + 1
        elif s[2] < 9:
            s[2] = int(s[2]) + 1
        elif s[2] == 9:
            s[2] = 0
        s = ''.join(s)
        im = Image.open(s)
        return main(im)
    except:
        return -1
main(im)

1 个答案:

答案 0 :(得分:0)

我想这就是问题所在:

s = list(s)

您可能认为s是全局变量,但由于赋值,python s是局部变量。要使s全局执行:

def main(im):
    global s
    ...

此外,您正在捕获所有异常,因此可能您没有收到任何错误。如果你真的坚持要抓住,现在就做以下事情:

except Exception as inst:
    raise(inst)

这应该告诉我们发生了什么。