使用 PIL 将一张图片复制到另一张图片上
Copying one image onto another with PIL
我有一个小尺寸 (300x300) 的图像文件,我想 "paste" 将整个图像放到我使用 PIL (2400x1700) 创建的较大图像上的某个位置。这是我的代码:
from PIL import Image
im = Image.new("RGB", (2400, 1700), "white")
im2 = Image.open("smallimage.jpg")
im.paste(im2, (20,20,300,300))
im.save("test.png")
我得到的错误是
Traceback (most recent call last):
File "chart.py", line 6, in <module>
im.paste(im2, (20,20,300,300))
File "/usr/lib64/python2.7/site-packages/PIL/Image.py", line 1351, in paste
self.im.paste(im, box)
ValueError: images do not match
有没有一种方法可以将较小的图像 paste/copy 放到较大的图像上,而无需对较小的图像进行任何转换(例如裁剪)?
粘贴方法中的第二个参数(20,20,300,300)
是错误的:
你的第一张图片是 300x300。
粘贴方法接受第二个参数或者一个二元组给出
左上角一个 4 元组,定义左、上、右和
下像素坐标
(20,20,300,300)
你说你的图片是 280x280。
下面的代码应该做到这一点,对于 4 元组:
im.paste(im2, (20,20,320,320))
对于二元组:
im.paste(im2, (20,20))
我有一个小尺寸 (300x300) 的图像文件,我想 "paste" 将整个图像放到我使用 PIL (2400x1700) 创建的较大图像上的某个位置。这是我的代码:
from PIL import Image
im = Image.new("RGB", (2400, 1700), "white")
im2 = Image.open("smallimage.jpg")
im.paste(im2, (20,20,300,300))
im.save("test.png")
我得到的错误是
Traceback (most recent call last):
File "chart.py", line 6, in <module>
im.paste(im2, (20,20,300,300))
File "/usr/lib64/python2.7/site-packages/PIL/Image.py", line 1351, in paste
self.im.paste(im, box)
ValueError: images do not match
有没有一种方法可以将较小的图像 paste/copy 放到较大的图像上,而无需对较小的图像进行任何转换(例如裁剪)?
粘贴方法中的第二个参数(20,20,300,300)
是错误的:
你的第一张图片是 300x300。
粘贴方法接受第二个参数或者一个二元组给出 左上角一个 4 元组,定义左、上、右和
下像素坐标
(20,20,300,300)
你说你的图片是 280x280。
下面的代码应该做到这一点,对于 4 元组:
im.paste(im2, (20,20,320,320))
对于二元组:
im.paste(im2, (20,20))