如何Python给图片批量添加随机水印
准备
提前安装第三方库,安装PIL库(Pillow):在命令行中输入pip install pillow进行安装;
将此py文件放入根目录,
文件结构
另外根目录中有三个文件夹。
watermark(水印文件夹)、original(需加水印图片的文件夹)、output(成品文件夹)
添加水印原理
利用了PIL这个库的强大图片处理功能
python添加水印代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
   | from PIL import Image, ImageDraw import os, random   water_path = './watermark'  #  水印文件夹路径 watermark_list = os.listdir(water_path)   def do(file_name):     # 打开原始图片和水印图片     original_image = Image.open(file_name)     random_mark = random.choice(watermark_list)  # 选择随机水印图片     # print(random_mark)     watermark_image = Image.open(f'{water_path}/{random_mark}')       # 将水印图片缩放到合适的大小     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))       # 保存带有水印的图片     name = file_name.split("\\")[-1]     canvas.save(f'./output/do_{name}')  # 成品保存路径     print(f">>>>  {name} 添加  {random_mark}  水印  成功。")     for root, dirs, files in os.walk("./original"):  # 需要加水印的文件夹路径     for name in files:         file_name = os.path.join(root, name)         do(file_name)
   |