Python 批量给图片添加文字或图片水印实战
前言
在处理大量照片时,手动添加水印效率低下。使用 Python 的 PIL(Pillow)库可以高效实现图片文字的批量添加。相比 OpenCV 的 cv2.putText(),PIL 在中文显示和字体自定义方面更具优势。
环境准备
确保已安装 Pillow 库:
pip install Pillow
项目目录结构建议如下:
main.py:主程序脚本input/:存放原始图片output/:存放处理后的图片font/:存放中文字体文件(如 .ttf)
文字水印实现
ImageDraw 模块
ImageDraw 模块提供绘制方法。核心函数 draw.text() 用于写入文字。
关键参数:
xy:坐标位置(左上角为原点)text:字符串内容fill:文字颜色(RGB 元组或十六进制)font:通过ImageFont.truetype指定字体路径和大小
代码示例:
import os
from PIL import Image, ImageFont, ImageDraw
def add_text_watermark(image_path):
image = Image.open(image_path)
draw_txt = ImageDraw.Draw(image)
im_size = image.size
# 根据图片尺寸自适应字体大小
if im_size[0] > im_size[1]:
txt_size = int(im_size[0] * 0.02)
else:
txt_size = int(im_size[1] * 0.02)
# 设置中文字体路径(请确保路径正确)
chi_font = ImageFont.truetype('./font/fzstk.ttf', size=txt_size)
# 计算居中位置
x = (im_size[0] - txt_size) // 2
y = im_size[] - (txt_size * )
draw_txt.text(xy=(x, y), text=, font=chi_font, fill=(, , ))
image


