以下代码已经测试通过,欢迎使用。有哪些不足欢迎评论区指出!
from PIL import Image
import os
def print_main(output_path):
id_photo = Image.open(output_path) # 一寸证件照
#print_bg = Image.open(r'D:\Pictures\Camera Roll\2.jpg') # 获取排版背景图
# 设置图片的大小
width = 2000
height = 2000
# 创建一个白色图片,做为1寸照片的背景图。
print_bg = Image.new('RGB', (width, height), color='white')
print_bg.paste(id_photo, (120, 180))
print_bg.paste(id_photo, (435, 180))
print_bg.paste(id_photo, (750, 180))
print_bg.paste(id_photo, (1065, 180))
print_bg.paste(id_photo, (1380, 180))
print_bg.paste(id_photo, (120, 613))
print_bg.paste(id_photo, (435, 613))
print_bg.paste(id_photo, (750, 613))
print_bg.paste(id_photo, (1065, 613))
print_bg.paste(id_photo, (1380, 613))
path = r'D:\Pictures\Camera Roll\res-print.jpeg'
print_bg.save(path) # 保存排版照
print_bg.show() # 显示
def resize_image(input_image_path, output_image_path, size):
with Image.open(input_image_path) as image:
# 设置目标尺寸
target_width, target_height = size
print(target_width, target_height)
# 调整图片大小
resized_image = image.resize((int(target_width), int(target_height)), Image.ANTIALIAS)
# 保存调整后的图片
resized_image.save(output_image_path)
if __name__ == '__main__':
# 使用函数调整照片
input_path = r'D:\Pictures\Camera Roll\2.jpg'
output_path = r'D:\Pictures\Camera Roll\2-1.jpg'
# 设置1寸照片的大约尺寸
SIZE_IN_MM = 25, 35 # 宽度 x 高度,单位毫米,1寸照片的尺寸
SIZE_IN_PX = [mm / 25.4 * 300 for mm in SIZE_IN_MM] # 转换为像素,假设1英寸=300像素
## 在300 dpi的分辨率下,每英寸有300个像素点,所以转换公式是 inches * 300。
# 调用函数,输入输出路径和目标尺寸
resize_image(input_path, output_path, SIZE_IN_PX)
print_main(output_path)