处理为规范的1寸图片尺寸
收集班级里的信息,要把图片批量插入到word里面,在word里面调整格式属实是很麻烦,而且效果还不好,索性用python把图片尺寸统一之后,再导入进去,就不会有任何问题了。
代码如下(先缩放,然后使用白色填充背景):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
from PIL import Image
import os
# 设置目标尺寸(标准一寸尺寸)
target_size = (960, 1280)
# 设置图片文件夹路径
image_folder = 'D:/picture/origin/'
# 设置处理后的图片保存路径
output_folder = 'D:/picture/output/'
# 确保输出文件夹存在
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 遍历文件夹中的所有图片
for filename in os.listdir(image_folder):
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
# 图片完整路径
image_path = os.path.join(image_folder, filename)
# 打开图片
with Image.open(image_path) as img:
# 获取图片原始尺寸
original_size = img.size
# 计算缩放比例
scale_ratio_width = target_size[0] / original_size[0]
scale_ratio_height = target_size[1] / original_size[1]
scale_ratio = min(scale_ratio_width, scale_ratio_height)
# 计算缩放后的尺寸
new_size = (int(original_size[0] * scale_ratio), int(original_size[1] * scale_ratio))
# 缩放图片
img = img.resize(new_size, Image.Resampling.LANCZOS)
# 创建白色背景图片
background = Image.new('RGB', target_size, (255, 255, 255))
# 计算粘贴位置
left = (target_size[0] - new_size[0]) // 2
top = (target_size[1] - new_size[1]) // 2
# 将缩放后的图片粘贴到白色背景上
background.paste(img, (left, top))
# 保存处理后的图片
output_path = os.path.join(output_folder, filename)
background.save(output_path)
print(f"Processed and saved: {output_path}")
print("All images have been processed.")
本文由作者按照
CC BY 4.0
进行授权