use*_*800 4 python-imaging-library python-3.x
我正在尝试 Python 图像库,但是 `Image.rotate() 似乎裁剪了图像:
from PIL import Image
fn='screen.png'
im = Image.open(fn)
im = im.rotate(-90)
im = im.rotate(90)
im.show()
im.save('cropped.png')
Run Code Online (Sandbox Code Playgroud)
原始图像screen.png是:
裁剪后的图像cropped.png是:
裁剪是由第一次旋转引起的,并保留在第二次旋转中。
尽管多年来我一直在努力熟悉 Python,但我对 Python 仍然很陌生。这是我在 PIL 上做错了什么还是一个错误?
我的Python版本是:
Python 3.8.8 (default, Mar 4 2021, 21:24:42)
[GCC 10.2.0] on cygwin
Run Code Online (Sandbox Code Playgroud)
感谢pippo1980expand=1 ,解决方案是在调用时指定rotate():
from PIL import Image
fn='screen.png'
im = Image.open(fn)
im = im.rotate(-90,expand=1)
im = im.rotate(90,expand=1)
im.show()
im.save('cropped.png')
Run Code Online (Sandbox Code Playgroud)
它调整“外部图像”的宽度和高度,以允许任意旋转的图像适合而无需裁剪。尽管有这个名字,它也会在适当的情况下缩小宽度/高度。