PIL/枕头 2.8.1 和 3.1.1 上的图像旋转差异



我在PIL上与Image.rotate()相处得很糟糕,直到我决定在终端上检查发生了什么。这是我所做的:

蟒蛇 2, 枕头 (2.8.1)

from PIL import Image
im = Image.new('RGB', (800, 500))
im.size
out = im.rotate(90)
out.size

输出(如预期):

>> (800, 500)
>> (500, 800)

蟒蛇 3, 枕头 (3.1.1)

from PIL import Image
im = Image.new('RGB', (800, 500))
im.size
out = im.rotate(90)
out.size

输出:

>> (800, 500)
>> (800, 500)

我认为这是在枕头 3X 中调用旋转的正确方法。以下是该函数的文档:
Image.Rotate() 我错过了什么吗?

这是 Pillow<=2.9.0 中的一个错误,在 3.0.0 中修复。如果您希望图像在旋转时更改大小,则需要包含 expand 参数,例如 img.rotate(-90, expand=1)。有关详细信息,请参阅此问题。

最新更新