python旋转图片有黑边
时间: 2024-01-15 10:32:00 浏览: 301
在Python中旋转图片时可能会出现黑边的问题,这是由于旋转操作会导致图像边缘超出原始图像范围,而默认情况下,旋转后的图像的空白部分会被填充为黑色。
要解决这个问题,可以使用PIL库中的`rotate()`函数,并配合`expand=True`参数来扩展图像尺寸,以适应旋转后的图像。
以下是一个示例代码:
```python
from PIL import Image
def rotate_image(image_path, angle):
# 打开图像
image = Image.open(image_path)
# 旋转图像并扩展尺寸
rotated_image = image.rotate(angle, expand=True)
# 创建一个白色背景图像
bg_image = Image.new("RGB", rotated_image.size, (255, 255, 255))
# 将旋转后的图像粘贴到白色背景图像上
bg_image.paste(rotated_image, (0, 0), rotated_image)
return bg_image
# 示例调用
image_path = "/path/to/image.jpg"
angle = 45 # 旋转角度
rotated_image = rotate_image(image_path, angle)
rotated_image.show()
```
在上述示例中,我们首先打开指定路径的图像,然后使用`rotate()`函数旋转图像,并设置`expand=True`以扩展图像尺寸。接下来,我们创建一个白色背景图像,并使用`paste()`函数将旋转后的图像粘贴到白色背景上。最后,返回处理后的图像对象,并可以使用`show()`函数显示结果。
这样就可以避免旋转图片时出现黑边的问题。
阅读全文