我有一个脚本,该脚本应该打开png图像,然后调整其大小,然后按数字顺序将其另存为jpg。但是我从互联网上复制的数字排序代码无法与PIL一起使用。它给了我异常“ KeyError:'W'”
import os
from PIL import Image
os.chdir('C:\\Users\\paul\\Downloads')
# open canvas.png
original = Image.open('canvas.png')
# resize image height to 2160
size = (3000, 2160)
original.thumbnail(size)
# convert to RGB
RGB = original.convert('RGB')
# save image as sequence
i = 0
while os.path.exists("image%s.jpg" % i):
i += 1
RGB.save("image%s.jpg" % i, "w")
还有另一种方法吗?
答案 0 :(得分:2)
根据Haken Lid的评论进行编辑
PIL文档说该函数save接受以下参数:
Image.save(fp, format=None, **params)
您传递的参数w
不在可接受的文件格式集中。
Here中,您可以查看接受哪些格式。为了使它起作用,只需删除w
参数并用%d替换%s
(i是一个整数,而不是一个字符串):
RGB.save("image%d.jpg" % i)
注意:从标签中不清楚是使用python2还是python3。如果您使用的是python 3,建议您使用新方法来格式化字符串:
RGB.save("image{}.jpg".format(i))
您甚至可以指定填充,以便稍后可以按名称对文件排序:
RGB.save("image{:04d}.jpg".format(i))
其中4表示您的数字将以零填充,长度至少为4。