我用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文档对我没什么帮助。在此先感谢您的帮助!
答案 0 :(得分:0)
以您的第一条粘贴线为例-为“ paste”的“ box”参数指定了(0,0,int(x / 2),int(y / 2)-大小的一半图片,但是,尝试粘贴的图片与框的大小不匹配。将“框”参数更改为(0,0,int(x),int(y))将解决您的直接问题,尽管我怀疑您实际上想裁剪要粘贴的图像。
我还要注意,如果您不想--(0,0),因为x和y也可以使用,则不必提供粘贴图像的大小。
答案 1 :(得分:0)
您为box提供的参数错误。
应该是image.paste(the_second_image, (x, y, x+w, y+h)
不要更改最后两个参数。您可以做的是w, h = the_second_image.size() image.paste(the_second_image, (x, y, x+w, y+h)
这会工作,对我有用。