首页 > 解决方案 > PIL ValueError:图像不匹配

问题描述

我一直在用 PIL 在 python 中搞乱,我正在研究一个在 4 个象限中镜像和成像的函数。显然我有一个错误,我似乎无法弄清楚。我的功能如下:

def mirror_four(image):
x = image.size[0]
y = image.size[1]

temp = Image.new("RGB", (image.size[0], image.size[1]), "black")

tl = image
tr = mirror_left(image)
bl = mirror_verticle(image)
br = mirror_verticle(tr)

image.paste(temp,(0,0,int(x/2),int(y/2)),tl)
image.paste(temp,(int(x/2),0,0,int(y/2)),tr)
image.paste(temp,(0,int(y/2),int(x/2),0),bl)
image.paste(temp,(x/2,y/2,x,y),br)

return temp

这将返回错误:ValueError:图像不匹配

我有点迷茫,PIL 文档对我帮助不大。在此先感谢您的帮助!

标签: pythonimagepython-imaging-libraryvalueerror

解决方案


以您的第一个粘贴行为例 - 对于“粘贴”的“框”参数,您已指定 (0,0,int(x/2),int(y/2) - 图像大小的一半。但是, 试图粘贴的图像与框的大小不匹配。将“框”参数更改为 (0,0,int(x),int(y)) 将解决您的直接问题,尽管我怀疑您实际上想要裁剪正在粘贴的图像。

我还要注意,如果您不想 - (0,0),则不必提供要粘贴的图像的大小,因为 x 和 y 也可以。


推荐阅读