我正在尝试将图片保存到缓冲区中。为此,我使用以下代码:
import io
from PIL import Image
buffer = io.StringIO()
img = Image.open(<image_path>)
img = img.resize((640,960), Image.NEAREST)
format = "JPG" # JPG,PNG,etc.
img.save(buffer,format)
但是,我得到了KeyError: 'JPG'
。我见过几个使用这种方法的答案,所以我不知道为什么我得到这个错误。下面是一个例子。
你得到的关键错误,是因为你正在传递字符串'JPG'作为格式。
JPG在Pillow的格式选项中不是一个有效的选项。你想使用"jpeg"在本例中
在这种情况下不传递format=variable
应该没关系,因为format是一个有效的第二个位置参数。
还有,要小心。格式()是python中的内置函数。目前您正在用字符串覆盖该函数。最好选择一个不同的变量名,如'frmt'或'_format'。
所以,你的代码应该通过改变最后两行来工作:frmt = "JPEG"
img.save(buffer,frmt)
或
frmt = "JPEG"
img.save(buffer,format=frmt)