〜这是我正在做的一项大学任务。目标是使用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)
答案 0 :(得分:0)
我想这就是问题所在:
s = list(s)
您可能认为s
是全局变量,但由于赋值,python s
是局部变量。要使s
全局执行:
def main(im):
global s
...
此外,您正在捕获所有异常,因此可能您没有收到任何错误。如果你真的坚持要抓住,现在就做以下事情:
except Exception as inst:
raise(inst)
这应该告诉我们发生了什么。