“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
。你的
正确吗。因为你用的是同样的公式。因此
等于
,因此图像的宽度为零像素。