2015-04-03 116 views
1

我是相当新的Python和具有的PIL的保存功能出现问题时,我想运行下面的代码保存PNG图像与PIL

#!/usr/bin/env python 
import ImageFont 
import Image 
import ImageDraw 
from PIL import Image 
img=Image.new("RGB", (200,200),(120,20,20)) 
draw = ImageDraw.Draw(img) 
draw.text((0, 0),"This is a test",(255,255,0)) 
draw = ImageDraw.Draw(img) 
img.save("test.png") 

我有这样的错误,我不知道为什么

Traceback (most recent call last): 
    File "./ima2.py", line 9, in <module> 
    draw.text((0, 0),"This is a test",(255,255,0)) 
    File "/usr/lib64/python2.7/site-packages/PIL/ImageDraw.py", line 260, in text 
    font = self.getfont() 
    File "/usr/lib64/python2.7/site-packages/PIL/ImageDraw.py", line 133, in getfont 
    self.font = ImageFont.load_default() 
    File "/usr/lib64/python2.7/site-packages/PIL/ImageFont.py", line 377, in load_default 
    ''')))) 
    File "/usr/lib64/python2.7/site-packages/PIL/ImageFont.py", line 117, in _load_pilfont_data 
    image.load() 
    File "/usr/lib64/python2.7/site-packages/PIL/ImageFile.py", line 192, in load 
    d = Image._getdecoder(self.mode, d, a, self.decoderconfig) 
    File "/usr/lib64/python2.7/site-packages/PIL/Image.py", line 381, in _getdecoder 
    raise IOError("decoder %s not available" % decoder_name) 
IOError: decoder zip not available 
+0

这似乎是你的字体问题,可能是PIL安装,而不是保存。尝试使用回溯的最后一行进行搜索:即“PIL IOError:解码器压缩不可用”,您会发现一些可能适用于您的情况的建议。 (很好的自我包含的问题,简单的例子,顺便说一句...一个很好的方法来获得很好的答案!) – tom10 2015-04-04 17:42:35

回答

0

也许这是因为您没有在您的文本中应用任何字体。 试试这个:

font = ImageFont.truetype("C:/Windows/Fonts/Arial.ttf", 24)    
draw.text((0, 0),"Sample Text",(255,255,255),font=font)