python将一张图片复制成多张图片的完整代码
时间: 2024-05-05 20:16:16 浏览: 98
这个问题有点含糊,不知道您指的是将一张图片复制多份保存,还是将一张图片分割成多张图片。下面分别给出两种情况的代码:
1. 将一张图片复制多份保存
```python
from PIL import Image
# 打开原始图片
original_image = Image.open("input_image.jpg")
# 指定要生成的图片数量
num_copies = 5
# 循环生成图片
for i in range(num_copies):
# 复制原始图片
new_image = original_image.copy()
# 保存新图片
new_image.save(f"copy_{i}.jpg")
```
这段代码会先打开一张名为 `input_image.jpg` 的图片,然后复制它 `num_copies` 次,每次都保存为名为 `copy_i.jpg` 的新图片,其中 `i` 是循环变量。
2. 将一张图片分割成多张图片
```python
from PIL import Image
# 打开原始图片
original_image = Image.open("input_image.jpg")
# 指定要分割成几行几列
num_rows = 3
num_cols = 3
# 获取原始图片的宽度和高度
width, height = original_image.size
# 计算每个子图片的宽度和高度
sub_width = width // num_cols
sub_height = height // num_rows
# 循环分割图片
for row in range(num_rows):
for col in range(num_cols):
# 计算当前子图片的左上角坐标和右下角坐标
left = col * sub_width
upper = row * sub_height
right = left + sub_width
lower = upper + sub_height
# 分割出当前子图片
sub_image = original_image.crop((left, upper, right, lower))
# 保存子图片
sub_image.save(f"sub_image_{row}_{col}.jpg")
```
这段代码会先打开一张名为 `input_image.jpg` 的图片,然后将它分割成 `num_rows` 行、`num_cols` 列的子图片。具体的做法是先获取原始图片的宽度和高度,然后计算每个子图片的宽度和高度,然后循环分割出每个子图片,最后保存它们。每个子图片的文件名为 `sub_image_row_col.jpg`,其中 `row` 和 `col` 是循环变量。
阅读全文