2

Image.paste 関数を使用して、2 つの画像をより大きな画像に結合しようとしています。まず、両方の画像を保持できる画像を作成し、次に 2 つの画像を貼り付けます。

wrapper = Image.new("I", (width, height+textHeight));

if placement=="bottom":
 wrapper.paste(img1); 
 wrapper.paste(textImage, (0, height, width, textHeight));
else:
 wrapper.paste(textImage);
 wrapper.paste(img1, (0,textHeight));

次に、毎回このエラーが発生します。

 File "C:\Python27\lib\site-packages\PIL\Image.py", line 1127, in paste
    self.im.paste(im, box)
ValueError: images do not match

画像のサイズが正しく、ラッパー画像が両方の画像を保持できると確信しています。このエラーを回避する唯一の方法は、3 つの画像 (ラッパーと 2 つのコンポーネント) を同じサイズにして、(0,0) から貼り付けることです。

頭がいっぱいです、助けてください!

4

1 に答える 1

11

考えられる問題は 2 つあります。

  1. あなたの4タプル(0, height, width, textHeight)は正しいですか?(left, upper, right, lower)ピクセル座標である必要があります。この場合、貼り付けた画像は領域のサイズと一致する必要があります。これがエラーの原因だと思います。または、画像を貼り付けたい場所の左上隅だけを指定する 2 タプルを指定することもできます。参照: http://effbot.org/imagingbook/image.htm

  2. ints高さ、幅、テキストの高さが であり、そうでないことは確かfloatsですか?

次のようなことを試すことができます:

x, y = img1.size
wrapper.paste(textImage,(0,height,x,y))
于 2013-11-30T10:57:30.270 に答える