我有一个脚本,它应该打开一个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")
有没有其他方法可以做到这一点?
发布于 2018-10-19 06:22:56
基于Haken Lid的评论的编辑
PIL文档指出,函数save接受以下参数:
Image.save(fp, format=None, **params)
您传递的参数w
不在可接受的文件格式集内。Here您可以查看哪些格式被接受。要使其正常工作,只需删除w
参数并将%s
替换为%d (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。
https://stackoverflow.com/questions/52883361
复制相似问题