gpt4 book ai didi

python - 裁剪具有相同宽高比的旋转图像

转载 作者:太空宇宙 更新时间:2023-11-03 13:18:38 27 4
gpt4 key购买 nike

当输入图像旋转给定度数然后裁剪以避免任何非图像区域同时保持原始图像纵横比时,如何找出最终图像的宽度和高度。

例子: example

最佳答案

enter image description here

  • 红色矩形是具有原始纵横比的原始图像。
  • W/t 矩形(由绿色和黄色三角形包围)已旋转图片宽高比为 extend=True

这里是获取wh的方法。

image = Image.open(...)
rotated = image.rotate(degrees, Image.BICUBIC, True)

aspect_ratio = float(image.size[0]) / image.size[1]
rotated_aspect_ratio = float(rotated.size[0]) / rotated.size[1]
angle = math.fabs(degrees) * math.pi / 180

if aspect_ratio < 1:
total_height = float(image.size[0]) / rotated_aspect_ratio
else:
total_height = float(image.size[1])

h = total_height / (aspect_ratio * math.sin(angle) + math.cos(angle))
w = h * aspect_ratio

现在旋转后的图像可以在中心裁剪为 wxh 尺寸得到最终图像。

关于python - 裁剪具有相同宽高比的旋转图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21346670/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com