2010-12-01 6 views
0
def pad_image(f, width=500, height=None): 
    if height==None: 
     height = width 
    image = Image.new("RGB", (800, 600), (0, 0, 0, 0)) 
    image.paste(StringIO(f), (0,0, 50, 50)) 
    res = StringIO() 
    image.save(res, 'JPEG') 
    res.seek(0) 
    return res 

私の画像fを500x500の白いキャンバスに貼り付けようとしています。 (途中で)。私のPIL機能を助けてくれる人はいますか?

これまでの私の機能ですが、私は多くの問題を抱えています。私は非常に多くの問題を抱えており、高さ/幅の部分にも触れていません。貼り付ける

Traceback (most recent call last): 
    File "resizer.py", line 23, in <module> 
    thumbnail = tools.create_thumbnail(pic,300) 
    File "../lib/tools.py", line 84, in create_thumbnail 
    thumbnail_file = pad_image(thumbnail_file.read()) 
    File "../lib/tools.py", line 92, in pad_image 
    image.paste(f, (0,0, 50, 50)) 
    File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 1085, in paste 
    im = ImageColor.getcolor(im, self.mode) 
    File "/usr/lib/python2.6/dist-packages/PIL/ImageColor.py", line 101, in getcolor 
    color = getrgb(color) 
    File "/usr/lib/python2.6/dist-packages/PIL/ImageColor.py", line 97, in getrgb 
    raise ValueError("unknown color specifier: %r" % color) 
ValueError: unknown color specifier: '\xff\xd8\xff\ 
+0

'Image.new()'コールの '(0、0、0、0)'の末尾に黒いキャンバスが作成されます。 – martineau

答えて

0

最初の引数がないStringIOそう

使用image.paste(Image.open(StringIO(f)), (0,0, 50, 50))代わり

Imageする必要がありますが、あなたはおそらく、それが唯一の左上を貼り付けます、それを貼り付ける前に、Fの大きさを確認してください0より大きい場合はコーナー

関連する問題