“Python图像裁剪”;平铺不能延伸到外部图像“;
我正试图裁剪图像使其呈方形。为此,如果宽度更大,我尝试裁剪左侧和右侧,如果高度更大,则裁剪顶部和底部。下面是我正在尝试的代码,但它说“瓷砖无法扩展外部图像”。谁能解释一下我哪里做错了“Python图像裁剪”;平铺不能延伸到外部图像“;,python,python-imaging-library,Python,Python Imaging Library,我正试图裁剪图像使其呈方形。为此,如果宽度更大,我尝试裁剪左侧和右侧,如果高度更大,则裁剪顶部和底部。下面是我正在尝试的代码,但它说“瓷砖无法扩展外部图像”。谁能解释一下我哪里做错了 if height != width: if height < width: left = (width - height) / 2 print(left) right = (width - height) / 2
if height != width:
if height < width:
left = (width - height) / 2
print(left)
right = (width - height) / 2
print(right)
top = 0
bottom = 0
img = img.crop(x(left, top, right, bottom))
elif width < height:
left = 0
right = 0
top = (height - width) / 2
bottom = (height - width) / 2
img = img.crop((left, top, right, bottom))
img.save(image_path)
如果高度!=宽度:
如果高度<宽度:
左=(宽度-高度)/2
打印(左)
右=(宽度-高度)/2
打印(右)
top=0
底部=0
img=img.裁剪(x(左、上、右、下))
elif宽度<高度:
左=0
右=0
顶部=(高度-宽度)/2
底部=(高度-宽度)/2
img=img.裁剪((左、上、右、下))
图像保存(图像路径)
您对左
和右
使用相同的公式,这一事实应该会告诉您出了什么问题。。。加上任何小数(您需要整数维度)。@MarkSetchell相同的公式?我没拿到。你的左边是(宽-高)/2
。你的正确吗。因为你用的是同样的公式。因此left
等于right
,因此您的图像是零像素宽的。您对left
和right
使用相同的公式应该可以告诉您出了什么问题。。。加上任何小数(您需要整数维度)。@MarkSetchell相同的公式?我没拿到。你的左边是(宽-高)/2
。你的正确吗。因为你用的是同样的公式。因此左
等于右
,因此图像的宽度为零像素。