以下是一个更完整且带有详细说明的基于Python的 Pillow 库实现图片的批量格式转换并添加水印的程序示例:
from PIL import Image, ImageDraw, ImageFont
import os
# 函数用于批量转换图片格式并添加水印
def batch_convert_and_watermark(input_folder, output_folder, watermark_text, font_path="arial.ttf", font_size=36,
watermark_color=(255, 255, 255, 128), output_format="png"):
"""
这个函数实现对指定输入文件夹内的所有图片进行批量处理,包括添加水印以及转换格式后保存到输出文件夹。
参数:
- input_folder (str): 存放原始图片的文件夹路径,函数会遍历该文件夹下的所有图片文件进行处理。
- output_folder (str): 处理后的图片要保存到的目标文件夹路径。需要确保该文件夹存在,若不存在程序会尝试创建它。
- watermark_text (str): 要添加到图片上的水印文字内容。
- font_path (str, 可选): 字体文件的路径,默认是 "arial.ttf",需保证该字体文件在相应路径可获取到,可根据实际情况替换为其他字体文件。
- font_size (int, 可选): 水印文字的字体大小,默认是36像素,可按需调整大小。
- watermark_color (tuple, 可选): 水印文字的颜色及透明度,以RGB和透明度的元组形式表示,默认是白色半透明 (255, 255, 255, 128),
可根据喜好修改颜色值(RGB范围0-255)以及透明度值(0-255)。
- output_format (str, 可选): 处理后图片的输出格式,默认是 "png",支持常见的图片格式如 "jpg", "jpeg" 等,根据需求修改后缀名即可。
"""
# 检查输出文件夹是否存在,如果不存在则创建它
if not os.path.exists(output_folder):
os.makedirs(output_folder)
try:
# 加载字体文件
font = ImageFont.truetype(font_path, font_size)
except OSError:
print(f"无法加载字体文件 {font_path},请检查字体文件路径是否正确,将使用默认字体替代。")
font = ImageFont.load_default()
# 遍历输入文件夹中的所有文件
for file_name in os.listdir(input_folder):
file_path = os.path.join(input_folder, file_name)
# 判断是否为图片文件,这里简单通过文件名后缀来判断,可根据实际情况完善判断逻辑
if file_name.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp&#