python-3.x - PIL 的 Image.rotate() 裁剪图像
问题描述
我正在尝试 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')
原图screen.png
是:
裁剪后的图像cropped.png
是:
裁剪是由第 1 轮引起的,并在第 2 轮中保留。
尽管多年来我一直在努力熟悉它,但我对 Python 还是很陌生。这是我在 PIL 上做错了什么还是一个错误?
我的 Python 版本是:
Python 3.8.8 (default, Mar 4 2021, 21:24:42)
[GCC 10.2.0] on cygwin
解决方案
感谢pippo1980,解决方案是expand=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')
它调整“外部图像”的宽度和高度,以允许任意旋转的图像适合而无需裁剪。尽管有这个名字,它也会在适当的地方缩小宽度/高度。
推荐阅读
- git - 暂停/恢复回购克隆
- c# - 无法将动态表实体转换为断言中的 System.threading 实体
- c# - 如何将 List<> 的 List<> 传递给后台工作人员?
- boto3 - Python boto3 route53
- php - PHP MYSQL 结果成表
- django - 如何过滤 django 中的模型字段?
- bash - 无法通过 bash 脚本向 kubernetes 中的 postgres pod 发出长 sql 查询
- python - 在 Python 3 中打印换页符
- r - 为什么 R 系统无法执行 hdfs 命令?
- html - 限制 html 中的十进制数字以及放置脚本的位置