I am trying to combine 2 images into a larger one with Image.paste function. I start by creating an image that can hold both images, and then paste in the 2 images:
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));
Then I get this error every time:
File "C:\Python27\lib\site-packages\PIL\Image.py", line 1127, in paste
self.im.paste(im, box)
ValueError: images do not match
I am very sure that the sizes of the images are correct, and the wrapper image can hold both images. The only way to avoid this error is to make the 3 images (wrapper and 2 components) same size, and paste from (0,0).
I am at my wits' end, please help!
There are two possible issues.
Are you sure your 4-tuple (0, height, width, textHeight)
is correct? It should be (left, upper, right, lower)
pixel coordinates. In this case the pasted image must match the size of the region, and I think this is where your error lies. Alternatively you can give a 2-tuple giving just the upper left corner of where you want to paste the picture. See: http://effbot.org/imagingbook/image.htm
Are you sure that height, width, textHeight are ints
and not floats
?
You could try something like this:
x, y = img1.size
wrapper.paste(textImage,(0,height,x,y))
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.