繁体   English   中英

使用PIL将一个图像复制到另一个图像上

[英]Copying one image onto another with PIL

我有一个小尺寸(300x300)的图像文件,我想将整个图像“粘贴”到我用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

有没有办法可以将较小的图像粘贴/复制到较大的图像上,而不对较小的图像进行任何转换(例如裁剪)?

粘贴方法中的第二个参数(20,20,300,300)是错误的:

  • 你的第一张图片是300x300。

  • 粘贴方法在第二个参数中引入一个2元组,给左上角一个4元组,定义左,上,右,和
    较低的像素坐标

使用(20,20,300,300)你说你的图像是280x280。

对于4元组,以下代码应该这样做:

im.paste(im2, (20,20,320,320))

对于2元组:

im.paste(im2, (20,20))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM