用Python给图片批量添加随机水印

发布时间 2023-10-28 18:16:51作者: 万花技术

这是一个用Python编写的脚本,用于给图片添加水印。在使用之前,请确保您已经安装了第三方库PIL(Pillow)。您可以在命令行中使用以下命令来安装Pillow:

pip install pillow

  

将这个Python脚本放入您项目的根目录中。根目录中应该包含三个文件夹:

watermark(水印文件夹):存放水印图片文件。
original(需要添加水印的图片文件夹):存放待处理的原始图片文件。
output(输出文件夹):用于保存添加水印后的成品图片。
以下是Python脚本的代码:

from PIL import Image, ImageDraw
import os, random

watermark_path = './watermark'  # 水印文件夹路径
watermark_list = os.listdir(watermark_path)

def add_watermark(file_name):
    # 打开原始图片和随机选择一个水印图片
    original_image = Image.open(file_name)
    random_watermark = random.choice(watermark_list)
    watermark_image = Image.open(f'{watermark_path}/{random_watermark}')

    # 调整水印图片大小以适应原始图片
    watermark_width, watermark_height = watermark_image.size
    base_width, base_height = original_image.size
    watermark_image = watermark_image.resize((base_width, int(base_width / watermark_width * watermark_height)))

    # 创建一个与原始图片相同大小的空白画布
    canvas = Image.new('RGBA', original_image.size)

    # 将原始图片粘贴到画布上
    canvas.paste(original_image, (0, 0))

    # 将水印图片粘贴到画布上
    canvas.paste(watermark_image, (0, 0))

    # 保存带有水印的图片
    file_name_parts = file_name.split("\\")
    output_file_name = f'./output/do_{file_name_parts[-1]}'  # 保存成品的路径
    canvas.save(output_file_name)
    print(f">>>> {file_name_parts[-1]} 添加 {random_watermark} 水印成功。")

for root, dirs, files in os.walk("./original"):  # 待添加水印的图片文件夹路径
    for name in files:
        file_name = os.path.join(root, name)
        add_watermark(file_name)

  这个脚本将会遍历指定的原始图片文件夹中的所有图片,为每张图片随机选择一个水印图片,将它们合成一张带水印的图片,并保存到输出文件夹中。