我对python很新,并且对PIL的Pillow fork的save
函数有问题。
使用这个最小的例子
import Image
im = Image.new("RGB", (200, 30), "#ddd")
im.save("image.png")
我收到以下错误:
File "/usr/lib64/python2.7/site-packages/PIL/Image.py", line 1667, in save
raise KeyError(ext) # unknown extension
KeyError: '.png'
save
函数中的相应行是
preinit()
[...]
try:
format = EXTENSION[ext]
except KeyError:
raise KeyError(ext) # unknown extension
我查看了EXTENSION
数组并检测到它是空的,尽管它应该在preinit()
中初始化,例如from PIL import PngImagePlugin
。 PngImagePlugin.py
来电Image.register_extension("PNG", ".png")
。观察此函数内部或PngImagePlugin
内部的数组确实填充了文件扩展名。
在try-except-block之前放置print(EXTENSION)
会显示一个空的EXTENSION
数组。
(与SAVE
数组中的save
数组中的几行相同的问题。)
感谢任何帮助。
编辑:我最近从OpenSuse 13.1升级。到13.2。它在13.1中运行良好,但在13.2中没有运行。答案 0 :(得分:12)
你需要写这个:
from PIL import Image # Notice the 'from PIL' at the start of the line
im = Image.new("RGB", (200, 30), "#ddd")
im.save("image.png")