背景需求:
作为学校信息员,我每周都要上报一周的“课程教学”相关的通讯
我会将周计划里面的文字稿,用AI对话大师浓缩成600字(专讯)或200字(简讯)
![a33d73d7f05a498db57ecdc109778129.png](https://img-blog.csdnimg.cn/direct/a33d73d7f05a498db57ecdc109778129.png)
![e6e60458c53443e480c1e514b432aa24.png](https://img-blog.csdnimg.cn/direct/e6e60458c53443e480c1e514b432aa24.png)
最后需要传照片(在图片右下角添加学校名称)
![4dcbf791751143faaf1dbcb914e92894.png](https://img-blog.csdnimg.cn/direct/4dcbf791751143faaf1dbcb914e92894.png)
一、简讯(200字)——学校内部活动(校级)
配图照片一般选1张照片,用微信的CTRL+A,截屏,添加大号字体的文字(学校名),另存为图片。
![dca9248d8ce344dea671f37a8d7911d7.png](https://img-blog.csdnimg.cn/direct/dca9248d8ce344dea671f37a8d7911d7.png)
上传一张照片
![05946c0e48f84f4ba687393019ecbd28.png](https://img-blog.csdnimg.cn/direct/05946c0e48f84f4ba687393019ecbd28.png)
二、专讯(600字)——区级以上活动(区级)
专讯都是“大活动”,录用率高,所以会拍摄很多精彩照片,打包上传供上级做选择。而每张图片都添加学校名字,需要多次用“CTRL+A,截屏,添加大号字体的文字(学校名)另存”进行处理,非常繁琐。
我想用Python批量给照片添加右下角的学校名称!
素材准备:
![5731aca24b9b4791840b9ffa3bd8f20a.png](https://img-blog.csdnimg.cn/direct/5731aca24b9b4791840b9ffa3bd8f20a.png)
照片长宽尺寸
![6547d0c56e9047e3a14e984a9a48c57c.png](https://img-blog.csdnimg.cn/direct/6547d0c56e9047e3a14e984a9a48c57c.png)
用AI写需求
一、读取图片,判断长宽大小,并在图片某个坐标位置上写上文字
![0d92a9a4bf4d4b8492899d1aa46c33aa.png](https://img-blog.csdnimg.cn/direct/0d92a9a4bf4d4b8492899d1aa46c33aa.png)
结果:不是每张照片都是853*640,写入文字位置不统一
![83eac55d685a4b27a3aae05f2026d60e.png](https://img-blog.csdnimg.cn/direct/83eac55d685a4b27a3aae05f2026d60e.png)
二、需要先把所有照片都改成一样长宽
![e384ee1dabe04440914c20e51f83d824.png](https://img-blog.csdnimg.cn/direct/e384ee1dabe04440914c20e51f83d824.png)
![a88e504e5ce541bca70772d47a893ec3.png](https://img-blog.csdnimg.cn/direct/a88e504e5ce541bca70772d47a893ec3.png)
结果:图片长宽相等了,可以在同一坐标位置写入“校名”
三、有的图片上右下角是白色,文字也是白色,看不清楚。因而要确定文字的颜色
![d1893322d6ce4d39902ea4d4ae99fe4c.png](https://img-blog.csdnimg.cn/direct/d1893322d6ce4d39902ea4d4ae99fe4c.png)
结果:写入白字黑影文字
![67e9926695ef40fb9fc865e1e3000593.png](https://img-blog.csdnimg.cn/direct/67e9926695ef40fb9fc865e1e3000593.png)
代码展示
'''
给通讯照片批量添加学校名称
作者:AI对话大师,阿夏
时间:2024年4月21日
'''
from PIL import Image, ImageDraw, ImageFont
import os
# 设置要读取的文件夹路径和要添加的文字
folder_path=r'C:\Users\jg2yXRZ\OneDrive\桌面\1'
# 设置要读取的文件夹路径和要修改的图片大小
new_size = (863, 640)
# new_path = folder_path+r'\new'
text = '上海市小红花幼儿园'
text_color1 = (0, 0, 0) # 设置文字颜色为黑色,格式为RGB
text_color2 = (255, 255, 255) # 设置文字颜色为白色,格式为RGB
# 遍历文件夹中的所有图片,修改图片大小
for filename in os.listdir(folder_path):
if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'):
# 打开图片并修改大小
img = Image.open(os.path.join(folder_path, filename))
img = img.resize(new_size)
# 保存修改后的图片到原文件夹
img.save(os.path.join(folder_path, filename))
# 遍历文件夹中的所有图片
for filename in os.listdir(folder_path):
if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'):
# 打开图片并获取图片大小
img = Image.open(os.path.join(folder_path, filename))
width, height = img.size
print(width,height)
# 853,640
# 在图片上添加文字
draw = ImageDraw.Draw(img)
font = ImageFont.truetype(r'C:\Windows\Fonts\simhei.ttf', 30)
draw.text((550, 600), text, font=font,fill=text_color2)
# 在图片上添加文字
draw = ImageDraw.Draw(img)
font = ImageFont.truetype(r'C:\Windows\Fonts\simhei.ttf', 30)
draw.text((552, 602), text, font=font,fill=text_color1)
# 保存修改后的图片到新文件夹
new_folder_path = os.path.join(folder_path, 'new')
if not os.path.exists(new_folder_path):
os.makedirs(new_folder_path)
img.save(os.path.join(new_folder_path, filename))
结果展示:
1、生成一个new文件,存放有校名的图片
![3c1d5a1bc02643f1a765ff486616fa9a.png](https://img-blog.csdnimg.cn/direct/3c1d5a1bc02643f1a765ff486616fa9a.png)
2、每张图片右下角有文字
3、图片右下角增加“白字黑影”的校名(30磅黑体)
![144b2bff31384ac4a38aec9e12df7aae.png](https://img-blog.csdnimg.cn/direct/144b2bff31384ac4a38aec9e12df7aae.png)
![340a854130234591943b244beb14af73.png](https://img-blog.csdnimg.cn/direct/340a854130234591943b244beb14af73.png)
这样就完成了通讯照片批量添加学校名的需求
打包,上传
![efc0ffe3151c4f6ca11d02add9d468dd.png](https://img-blog.csdnimg.cn/direct/efc0ffe3151c4f6ca11d02add9d468dd.png)
![fa349cc1af5d4600990c82ba46f7b3b1.png](https://img-blog.csdnimg.cn/direct/fa349cc1af5d4600990c82ba46f7b3b1.png)
本文参考——给图片添加“图案”
【教学类-50-05】20240410“数一数”4类图片添加“难度星号”-CSDN博客文章浏览阅读756次,点赞32次,收藏8次。【教学类-50-05】20240410“数一数”4类图片添加“难度星号”
https://blog.csdn.net/reasonsummer/article/details/137595258
20240501再次上传通讯照片,觉得1层黑1层白的阴影文字(两层文字)看起来还不是明显。
![](https://img-blog.csdnimg.cn/direct/2f9060c2fd73411c8a2a6f901418c9bf.png)
![](https://img-blog.csdnimg.cn/direct/332f81b86b5746a4baadd96e2f3bfff2.png)
![](https://img-blog.csdnimg.cn/direct/54b85a52e6374c88a340df17d2537c47.png)
![](https://img-blog.csdnimg.cn/direct/9387a9d04e934fd3ac03fd1a86d29c13.png)
于是准备在1个白色文字周围加上4次黑色文字,组合成外框样式,变成白底黑线文字
![](https://img-blog.csdnimg.cn/direct/89b847c5fd924e4f89e9a3f80a4657d6.png)
![](https://img-blog.csdnimg.cn/direct/b924d11553db40c6b64e2242bac98376.png)
![](https://img-blog.csdnimg.cn/direct/54b85a52e6374c88a340df17d2537c47.png)
![](https://img-blog.csdnimg.cn/direct/3d7eec6134724401b238b03d0d2a3102.png)
代码展示(白底黑框文字)
'''
给通讯照片批量添加学校名称(黑框白底文字)
作者:AI对话大师,阿夏
时间:2024年4月21日
'''
from PIL import Image, ImageDraw, ImageFont
import os
# 设置要读取的文件夹路径和要添加的文字
folder_path=r'C:\Users\jg2yXRZ\OneDrive\桌面\02公众号照片'
# 设置要读取的文件夹路径和要修改的图片大小
# 先把图片修成统一大小
new_size = (863, 640)
# new_path = folder_path+r'\new'
text = '上海市小红花幼儿园'
text_color1 = (255, 255, 255) # 设置文字颜色为白色,格式为RGB 白色在上
text_color2 = (0, 0, 0) # 设置文字颜色为黑色,格式为RGB 四个黑色在下
# 遍历文件夹中的所有图片,修改图片大小
for filename in os.listdir(folder_path):
if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'):
# 打开图片并修改大小
img = Image.open(os.path.join(folder_path, filename))
img = img.resize(new_size)
# 保存修改后的图片到原文件夹
img.save(os.path.join(folder_path, filename))
# 遍历文件夹中的所有图片
for filename in os.listdir(folder_path):
if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'):
# 打开图片并获取图片大小
img = Image.open(os.path.join(folder_path, filename))
width, height = img.size
print(width,height)
# 853,640
# # 在图片上添加文字(白色在底层)
# draw = ImageDraw.Draw(img)
# font = ImageFont.truetype(r'C:\Windows\Fonts\simhei.ttf', 30)
# draw.text((550, 600), text, font=font,fill=text_color1)
# 在图片上添加文字(黑色文字在先添加,就在下层)
draw = ImageDraw.Draw(img)
font = ImageFont.truetype(r'C:\Windows\Fonts\simhei.ttf', 30)
draw.text((551, 601), text, font=font,fill=text_color2)
# 在图片上添加文字
draw = ImageDraw.Draw(img)
font = ImageFont.truetype(r'C:\Windows\Fonts\simhei.ttf', 30)
draw.text((549, 599), text, font=font,fill=text_color2)
# 在图片上添加文字
draw = ImageDraw.Draw(img)
font = ImageFont.truetype(r'C:\Windows\Fonts\simhei.ttf', 30)
draw.text((549, 601), text, font=font,fill=text_color2)
# 在图片上添加文字
draw = ImageDraw.Draw(img)
font = ImageFont.truetype(r'C:\Windows\Fonts\simhei.ttf', 30)
draw.text((551, 599), text, font=font,fill=text_color2)
# 在图片上添加文字(白色在最后添加,就是上层)
draw = ImageDraw.Draw(img)
font = ImageFont.truetype(r'C:\Windows\Fonts\simhei.ttf', 30)
draw.text((550, 600), text, font=font,fill=text_color1)
# 保存修改后的图片到新文件夹
new_folder_path = os.path.join(folder_path, 'new')
if not os.path.exists(new_folder_path):
os.makedirs(new_folder_path)
img.save(os.path.join(new_folder_path, filename))