python控制 图片旋转任意角度
时间: 2023-07-18 09:25:22 浏览: 216
您可以使用Python的Pillow库来旋转图片。以下是一个示例代码,演示如何旋转图像任意角度:
```python
from PIL import Image
image_path = "path/to/image.jpg"
angle = 45 # 旋转角度,单位为度
# 打开图像文件并旋转角度
with Image.open(image_path) as img:
rotated_image = img.rotate(angle, expand=True)
# 显示旋转后的图像
rotated_image.show()
# 保存旋转后的图像
rotated_image.save("path/to/rotated_image.jpg")
```
在这个例子中,我们打开一个图像文件并指定要旋转的角度。我们使用 `rotate()` 方法旋转图像,该方法的第一个参数是要旋转的角度,第二个参数是一个布尔值,表示是否扩展图像以适应旋转后的图像。如果 `expand=True`,则旋转后的图像大小会变大以适应旋转的角度。最后,我们可以使用 `show()` 方法显示旋转后的图像,并使用 `save()` 方法将其保存到磁盘上。
相关问题
python旋转图片任意角度并输出
在Python中,可以使用PIL(Pillow)库来方便地处理图像,并通过其内置的功能对图片进行旋转。PIL提供了`Image.rotate()`函数来进行旋转操作。下面是一个简单的例子,说明如何旋转图片到任意角度:
```python
from PIL import Image
def rotate_image(image_path, angle):
# 打开图片
with Image.open(image_path) as img:
# 使用指定的角度旋转图片
rotated_img = img.rotate(angle, expand=True)
# 设置输出文件名,这里假设旋转后的图片仍保存在同一目录下
output_path = "rotated_" + image_path
# 保存旋转后的图片
rotated_img.save(output_path)
# 示例:将图片"example.jpg"逆时针旋转45度
rotate_image("example.jpg", -45)
```
在这个示例中,`angle`参数是以度为单位的旋转角度,负数表示顺时针旋转,正数表示逆时针旋转。
python 小图片旋转任意角度去除黑底后粘贴到大图片中
你可以使用PIL库来处理图片。以下是一个简单的示例代码,可以将小图片旋转任意角度并粘贴到大图片中:
```python
from PIL import Image
import math
# 打开小图片
img_small = Image.open('small_image.png')
# 旋转小图片
angle = 45 # 旋转角度
img_small_rotated = img_small.rotate(angle, expand=True)
# 去掉黑底
img_small_rotated = img_small_rotated.convert('RGBA')
datas = img_small_rotated.getdata()
new_data = []
for item in datas:
if item[0] == 0 and item[1] == 0 and item[2] == 0:
new_data.append((255, 255, 255, 0))
else:
new_data.append(item)
img_small_rotated.putdata(new_data)
# 打开大图片
img_large = Image.open('large_image.png')
# 计算粘贴位置
x = 100 # x坐标
y = 100 # y坐标
w, h = img_small_rotated.size
angle_rad = math.radians(angle) # 将角度转换为弧度
cos_theta = math.cos(angle_rad)
sin_theta = math.sin(angle_rad)
x1 = int(x - w/2*cos_theta - h/2*sin_theta)
y1 = int(y - w/2*sin_theta + h/2*cos_theta)
# 粘贴小图片到大图片中
img_large.paste(img_small_rotated, (x1, y1), img_small_rotated)
# 保存图片
img_large.save('output_image.png')
```
这个代码首先打开小图片,然后对小图片进行旋转,并使用PIL库的`convert`方法将图片转换为RGBA格式。接着,将图片中黑色像素的alpha通道值设置为0,实现去掉黑底的效果。然后打开大图片,计算小图片在大图片中的粘贴位置,并使用PIL库的`paste`方法将小图片粘贴到大图片中。最后保存输出的图片。
阅读全文