python读取一个文件夹的图片,将他们全部旋转180°保存到另外一个文件夹
时间: 2024-03-17 13:41:43 浏览: 27
好的,这个问题很容易,可以使用Python中的Pillow库来实现。以下是一段示例代码:
```python
from PIL import Image
import os
# 定义待处理文件夹和结果文件夹的路径
input_folder = 'path/to/input/folder'
output_folder = 'path/to/output/folder'
# 遍历待处理文件夹中的所有图片文件
for filename in os.listdir(input_folder):
if filename.endswith('.jpg') or filename.endswith('.png'):
# 打开图片文件
img = Image.open(os.path.join(input_folder, filename))
# 旋转图片180度
img = img.rotate(180)
# 保存旋转后的图片到结果文件夹
img.save(os.path.join(output_folder, filename))
```
你可以将上述代码复制到你的Python代码编辑器中,然后将`input_folder`和`output_folder`变量替换为你需要处理的文件夹路径和结果文件夹路径,最后运行代码即可。
相关问题
python读取一个文件夹的图片,将他们全部旋转保存到另外一个文件夹
可以使用Pillow库和os库来实现这个任务。以下是一个示例代码:
```python
from PIL import Image
import os
import random
# 输入文件夹路径和输出文件夹路径
input_folder = "path/to/input/folder"
output_folder = "path/to/output/folder"
# 创建输出文件夹
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 读取输入文件夹中的所有图片
for filename in os.listdir(input_folder):
if filename.endswith(".jpg") or filename.endswith(".png"):
# 打开图片
img_path = os.path.join(input_folder, filename)
img = Image.open(img_path)
# 随机旋转图片一定的角度
angle = random.randint(1, 360)
rotated_img = img.rotate(angle)
# 保存旋转后的图片到输出文件夹
output_path = os.path.join(output_folder, filename)
rotated_img.save(output_path)
```
在这个示例中,我们首先指定了输入文件夹和输出文件夹的路径。然后我们使用os模块读取输入文件夹中的所有图片,并使用Pillow库打开每张图片。接下来,我们使用random模块随机生成一个旋转角度,对图片进行旋转,并将旋转后的图片保存到输出文件夹中。
python读取文件夹下子文件夹内的图片并保存到同一个文件夹内并编号
您可以使用Python的os和shutil模块来实现这个功能。下面是一个示例代码,可以将文件夹下子文件夹内的所有图片复制到同一个文件夹内并进行编号:
``` python
import os
import shutil
# 设置要处理的文件夹路径和保存的目标文件夹路径
source_dir = '/path/to/source/folder'
target_dir = '/path/to/target/folder'
# 遍历子文件夹内的所有图片文件
file_count = 0
for subdir, dirs, files in os.walk(source_dir):
for file in files:
if file.endswith('.jpg') or file.endswith('.png'):
# 构造新文件名,并将文件复制到目标文件夹
new_filename = f"{file_count+1:04d}.jpg"
source_path = os.path.join(subdir, file)
target_path = os.path.join(target_dir, new_filename)
shutil.copy2(source_path, target_path)
file_count += 1
print(f"共处理了{file_count}个文件!")
```
当然,您需要将`/path/to/source/folder`和`/path/to/target/folder`替换为实际的文件夹路径。