Deepseek中输入提示词:
你是一个Python编程专家,要写一个Python脚本,具体步骤如下:
打开文件夹:F:\AI自媒体内容;
读取里面的png图片;
在图片右下角加上水印,水印内容:“数据来源:toolify.ai,图表制作:公众号AIGCTribe”;
字体大小:五号;字体颜色:红色;水印位置:右边居中;
设置字体为'SimHei',文件路径为:C:\Windows\Fonts\simhei.ttf
加上水印的图片另存为一张新图片,在原图片名后面加上watermark;
注意:每一步都要输出信息到屏幕上
ImageDraw 对象没有 textsize 方法。正确的函数应该是textbbox来获取文本的边界框,然后从中提取宽度和高度
import os
from PIL import Image, ImageDraw, ImageFont
# 设置水印内容和样式
watermark_text = "数据来源:toolify.ai,图表制作:公众号AIGCTribe"
font_size = 10.5 # 五号字体大约对应10.5pt
font_color = (255, 0, 0) # 红色
# 定义字体
font_path = r"C:\Windows\Fonts\simhei.ttf"
font = ImageFont.truetype(font_path, font_size)
# 打开文件夹
folder_path = r"F:\AI自媒体内容"
if not os.path.exists(folder_path):
print(f"文件夹 {folder_path} 不存在")
exit()
# 遍历文件夹中的所有png图片
for filename in os.listdir(folder_path):
if filename.endswith(".png"):
print(f"处理文件: {filename}")
# 打开图片
img_path = os.path.join(folder_path, filename)
img = Image.open(img_path)
# 创建Draw对象
draw = ImageDraw.Draw(img)
# 计算水印位置
img_width, img_height = img.size
text_bbox = draw.textbbox((0, 0), watermark_text, font=font)
text_width = text_bbox[2] - text_bbox[0]
text_height = text_bbox[3] - text_bbox[1]
x = img_width - text_width - 10
y = 10 # 右上角位置
# 添加水印
draw.text((x, y), watermark_text, font=font, fill=font_color)
# 保存加水印后的图片
new_filename = f"{filename[:-4]}_watermark.png"
new_img_path = os.path.join(folder_path, new_filename)
img.save(new_img_path)
print(f"已保存: {new_filename}")
print("所有图片处理完成")