作品展示
背景需求
前期已经制作了四类“数一数”学具,具体样式如下:
1、难度1.0
【教学类-50-01】20240407“数一数”图片样式01:图形与边框不重合,图形和其他图形不相交-CSDN博客文章浏览阅读293次,点赞20次,收藏11次。【教学类-50-01】20240407“数一数”图片样式01:图形与边框不重合,图形和其他图形不相交https://blog.csdn.net/reasonsummer/article/details/137511583?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22137511583%22%2C%22source%22%3A%22reasonsummer%22%7Dhttps://blog.csdn.net/reasonsummer/article/details/137511583?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22137511583%22%2C%22source%22%3A%22reasonsummer%22%7Dhttps://blog.csdn.net/reasonsummer/article/details/137511583?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22137511583%22%2C%22source%22%3A%22reasonsummer%22%7D
2、难度2.0
【教学类-50-02】20240407“数一数”图片样式02:图形与边框重合,图形和其他图形不相交-CSDN博客文章浏览阅读514次,点赞20次,收藏14次。【教学类-50-02】20240407“数一数”图片样式02:图形与边框重合,图形和其他图形不相交https://blog.csdn.net/reasonsummer/article/details/137520515https://blog.csdn.net/reasonsummer/article/details/137520515https://blog.csdn.net/reasonsummer/article/details/137520515
3、难度3.0
【教学类-50-03】20240408“数一数”图片样式03:透明图形与边框不相交,透明图形和其他透明图形重叠-CSDN博客文章浏览阅读55次,点赞2次,收藏8次。【教学类-50-03】20240408“数一数”图片样式03:透明图形与边框不相交,透明图形和其他透明图形重叠https://blog.csdn.net/reasonsummer/article/details/137547784https://blog.csdn.net/reasonsummer/article/details/137547784
4、难度4.0
【教学类-50-04】20240409“数一数”图片样式04:透明图形与边框相切,透明图形和其他透明图形相交重叠-CSDN博客文章浏览阅读542次,点赞17次,收藏21次。【教学类-50-04】20240409“数一数”图片样式04:透明图形与边框相切,透明图形和其他透明图形相交重叠https://blog.csdn.net/reasonsummer/article/details/137549122
接下去,我需要在四类图片的左上角,加上五角星,来说明“难度”
首先看看四个图片文件夹的图片样式。
01框内不连接(四种图形,随机1-4个图形)
02框外不连接(四种图形,随机1-6个图形)
03框内连接(四种图形,随机1-8个图形)
04框外连接(四种图形,随机1-10个图形)
代码设计
代码展示:
#coding:utf-8
'''
对“数一数”四类难度图片文件夹进行批量添加星号(1颗星、2颗星、3颗星、4颗星、)
作者:AI对话大师,阿夏
时间:2024年4月8日
'''from PIL import Image, ImageDraw, ImageFont
import osp=int(input('多少张\n'))# 定义要添加的文字和字体样式,添加星号
text=[]b='★'
for x in range(1,5): for y in range(10):text.append(b*x) # print(t)font_size = 300font = ImageFont.truetype("C:\Windows\Fonts\AdobeHeitiStd-Regular.otf", font_size) # 使用默认字体arial.ttf
print(text)
# ['★', '★', '★', '★', '★', '★', '★', '★', '★', '★', '★', '★', '★', '★', '★', '★', '★', '★', '★', '★', '★★', '★★', '★★', '★★', '★★', '★★', '★★', '★★', '★★', '★★', '★★', '★★', '★★', '★★', '★★', '★★', '★★', '★★', '★★', '★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★', '★★★★']
# 10个一颗星,10个2颗星n=0
# 读取四个文件夹
folders=r'C:\Users\jg2yXRZ\OneDrive\桌面\个别化'
for entry in os.listdir(folders):entry_path = os.path.join(folders, entry)if os.path.isdir(entry_path) and not entry.lower().endswith('.docx'):print(entry) # 指定文件夹路径和文件名folder_path = os.path.join(folders, entry) # 遍历文件夹中的每个文件for file_name in os.listdir(folder_path):# 检查文件扩展名是否为图片格式(可根据需要进行修改)if file_name.lower().endswith(('.jpg', '.jpeg', '.png')):# 读取图片image_path = os.path.join(folder_path, file_name)image = Image.open(image_path)# 在图片左上角添加文字draw = ImageDraw.Draw(image)text_position = (50, 50)draw.text(text_position, text[n], fill='black', font=font)# 保存图片(使用同名文件保存,覆盖原始图片)image.save(image_path)n+=1print(f"图片 {file_name} 处理完成")