使用PIL(Pillow)批量为图片添加文字水印的简明指南

作者:很菜不狗2024.08.30 20:47浏览量:66

简介:本文介绍了如何使用Python的Pillow库(PIL的更新友好版)批量为图片添加文字水印。详细步骤包括安装Pillow、准备水印文本、编写代码实现批量处理,并提供了可操作的代码示例。

在数字图像处理中,为图片添加水印是一种常见的需求,尤其是用于版权保护或信息标注。Python的Pillow库(PIL的更新和活跃分支)提供了强大的图像处理功能,包括文字绘制。下面,我们将通过简明的步骤和代码示例,展示如何使用Pillow库批量为图片添加文字水印。

第一步:安装Pillow库

如果你还没有安装Pillow库,可以通过pip命令轻松安装:

  1. pip install Pillow

第二步:准备你的图片和水印文本

确保你有一个包含待处理图片的文件夹,以及你希望添加到每张图片上的水印文本。

第三步:编写Python脚本

下面是一个简单的Python脚本,演示了如何批量读取文件夹中的图片,为每张图片添加文字水印,并保存处理后的图片。

  1. from PIL import Image, ImageDraw, ImageFont
  2. import os
  3. # 文件夹路径
  4. folder_path = 'path/to/your/images'
  5. # 水印文本
  6. watermark_text = '版权所有 © 2023'
  7. # 水印位置
  8. position = (10, 10) # 左上角为(0, 0)
  9. # 字体和大小(确保字体文件路径正确)
  10. font_path = 'path/to/your/font.ttf'
  11. font_size = 24
  12. font_color = (255, 255, 255) # 白色
  13. # 加载字体
  14. font = ImageFont.truetype(font_path, font_size)
  15. # 遍历文件夹中的图片
  16. for filename in os.listdir(folder_path):
  17. if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.tiff')):
  18. img_path = os.path.join(folder_path, filename)
  19. # 打开图片
  20. img = Image.open(img_path)
  21. # 创建一个可以在给定图像上绘图的对象
  22. draw = ImageDraw.Draw(img)
  23. # 添加水印
  24. draw.text(position, watermark_text, font=font, fill=font_color)
  25. # 保存处理后的图片,可以添加后缀以区分原图和加水印后的图片
  26. watermarked_img_path = os.path.join(folder_path, 'watermarked_' + filename)
  27. img.save(watermarked_img_path)
  28. print(f'已处理并保存:{watermarked_img_path}')
  29. print('所有图片已处理完毕。')

注意事项

  1. 字体文件:确保font_path变量指向一个有效的TrueType或OpenType字体文件。如果字体文件不在当前目录下,你需要提供完整的文件路径。
  2. 图片格式:上述脚本支持多种常见的图片格式(如PNG, JPG, BMP, TIFF)。你可以根据需要修改os.listdir()中的条件来支持更多或更少的格式。
  3. 性能优化:对于大量图片的处理,考虑使用多线程或异步IO来提高处理速度。
  4. 水印位置position变量决定了水印在图片上的位置。你可以根据需要调整这个值。
  5. 水印颜色和透明度font_color变量定义了水印的颜色。Pillow不直接支持透明度,但你可以通过图像处理软件将字体转换为带有透明背景的PNG格式,然后在Pillow中使用该字体文件。

通过上面的步骤和代码示例,你应该能够轻松地为自己的图片批量添加文字水印了。这种方法非常适合需要保护版权或标注信息的场景。