目录
应用场景:
源代码:
源代码说明:
效果如下所示:
合成后的图片:
这个功能可以用到以下场景中:
制作电子贺卡或电子相册:用户可以选择自己喜欢的照片,并将它们合成到一张图片上,然后在合成后的图片上添加字母或文字,制作出独特的电子贺卡或电子相册。
制作班级或公司的合照:可以将四张不同的照片合成到一张图片上,然后添加字母或文字,制作出班级或公司的合照。
制作个性化的封面图片:用户可以选择四张自己喜欢的照片,并将它们合成到一张图片上,然后添加字母或文字,制作出个性化的封面图片,例如个人博客、社交媒体账户或在线商店的封面图片等。
制作纪念碑式的图片:用户可以选择四张具有纪念意义的照片,将它们合成到一张图片上,然后添加字母或文字,制作出具有纪念碑式的图片,例如婚礼、毕业典礼或旅游等场合的纪念照片。
总之,这个功能可以用于任何需要将多张图片合成到一起,并添加一些文字或字母的场合,从而制作出具有个性化和创意性的图片。
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageDraw, ImageFont# 创建一个tkinter窗口
root = tk.Tk()# 隐藏tkinter窗口
root.withdraw()# 选择四张照片
file_paths = []
for i in range(4):file_path = filedialog.askopenfilename()if file_path:file_paths.append(file_path)# 打开每张照片,加入字母
images = []
letters = ['恭', '喜', '发', '财']
for i, file_path in enumerate(file_paths):image = Image.open(file_path)draw = ImageDraw.Draw(image)font = ImageFont.truetype('悠然体.ttf', 250)draw.text((10, 10), letters[i], font=font, fill=(255, 0, 0))images.append(image)# 计算合成后照片的尺寸
widths, heights = zip(*(i.size for i in images))
max_width = max(widths)
total_height = sum(heights)# 创建一张空白照片
result_image = Image.new('RGB', (2*304, 2*304), (255, 255, 255))# 合成照片
y_offset = 0
# for image in images:
# result_image.paste(image, (0, y_offset))
# y_offset += image.size[1]
result_image.paste(images[0], (0, 0))
result_image.paste(images[1],(0, 304))
result_image.paste(images[2],(304, 0))
result_image.paste(images[3],(304, 304))
# 保存合成后的照片
result_image.save('result.jpg')
在这个示例中,我们打开了一个名为image.jpg
的JPEG图像,创建了一个绘图对象,并加载了一个TrueType字体文件和字体大小。然后,我们在图像上绘制了一些文本,并将修改后的图像保存为"result.jpg"
要让四张照片排列成品字形,可以采用以下方法:
注意:ttf用的是youranti