python - 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 文档对我帮助不大。在此先感谢您的帮助!
解决方案
以您的第一个粘贴行为例 - 对于“粘贴”的“框”参数,您已指定 (0,0,int(x/2),int(y/2) - 图像大小的一半。但是, 试图粘贴的图像与框的大小不匹配。将“框”参数更改为 (0,0,int(x),int(y)) 将解决您的直接问题,尽管我怀疑您实际上想要裁剪正在粘贴的图像。
我还要注意,如果您不想 - (0,0),则不必提供要粘贴的图像的大小,因为 x 和 y 也可以。
推荐阅读
- performance - 带有正则表达式提取器的循环示例导致 JMeter
- hive - Apache Beam 和 Hive 复杂类型
- haskell - 在惰性评估语言中,不变性会提高 GC 性能吗?
- slurm - 我如何知道使用 SLURM 分配了哪些 GPU 作业?
- typescript - 如何在打字稿中键入属性作为 forEach 的键?
- javascript - 如何查看公会所有频道的话题?
- python - 在嵌套列表中添加“值”
- git - 有没有办法在 BitBucket Server API 或 BitBucket rest api 中挑选?
- iframe - 为什么我的 iFrame 可以在 localhost 上运行,但不能在生产环境中运行?
- sql - 如何重写我的代码以更快地执行?