影刀RPA批量给图片加水印:保护你的原创内容

0 阅读2分钟

影刀RPA批量给图片加水印:保护你的原创内容

作者:林焱 | 适合人群:做内容运营、需要在图片上加水印的新手

在这里插入图片描述

什么情况用什么

你每天发10张产品图片、素材图片到各大平台,不想被盗图。

手动用PS给每张图片加水印 → 太慢。

在这里插入图片描述

Python可以批量给几百张图片加水印,影刀定时触发。

怎么做

[video(video-trrX7FbS-1785483033486)(type-csdn)(url-live.csdn.net/v/embed/526…)]

在这里插入图片描述

文字水印

from PIL import Image, ImageDraw, ImageFont

img = Image.open(r'D:\原始图片.jpg')
draw = ImageDraw.Draw(img)

# 设置水印文字
text = "© 林焱"
# 字体(需要中文字体文件)
font = ImageFont.truetype('simhei.ttf', 36)
# 位置(右下角)
position = (img.width - 200, img.height - 50)
# 颜色(白色半透明)
draw.text(position, text, font=font, fill=(255,255,255,128))

img.save(r'D:\加水印后.jpg')

图片水印(Logo水印)

在这里插入图片描述

from PIL import Image

base_img = Image.open(r'D:\原始图片.jpg')
logo = Image.open(r'D:\logo.png').convert('RGBA')

# 调整logo大小
logo = logo.resize((100, 100))
# 右下角位置
position = (base_img.width - 120, base_img.height - 120)
# 粘贴logo
base_img.paste(logo, position, logo)
base_img.save(r'D:\加水印后.jpg')

批量处理

import os
from PIL import Image

source_dir = r'D:\原始图片'
output_dir = r'D:\加水印图片'

for filename in os.listdir(source_dir):
![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/0aa0d7c705c3478f8a4b144976bfcee9~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5p6X54SxX1JQQUFJ:q75.awebp?rk3s=f64ab15b&x-expires=1786435843&x-signature=0Oh1OHZum12ziBsBZuLnEiQI%2Bpc%3D)

    if filename.endswith(('.jpg', '.png')):
        img = Image.open(os.path.join(source_dir, filename))
        # 加水印...
        img.save(os.path.join(output_dir, filename))

有什么坑

坑1:PIL库里的字体路径不对

ImageFont.truetype('simhei.ttf', 36)会去系统字体目录找这个文件。如果找不到,中文会显示为方框。

解决方案:把字体文件放在Python脚本同目录,或使用绝对路径。

在这里插入图片描述

坑2:图片太大,处理很慢

几千张高清图片加水印,可能需要几十分钟。

解决方案:先用Python压缩图片(降低分辨率),再加水印。

在这里插入图片描述

[video(video-kalsmsT7-1785483040149)(type-csdn)(url-live.csdn.net/v/embed/526…)]

坑3:水印位置固定,被裁掉

如果你的水印在右下角,但图片被社交平台裁成了正方形(右下角被裁掉)。

在这里插入图片描述

解决方案:水印放在图片中心,或使用平铺水印(整个图片覆盖半透明文字)。

总结

批量水印三步:读取图片 → 加水印(文字/Logo)→ 保存

在这里插入图片描述

用Python的PIL库,配合影刀的循环能力。


作者:林焱 在这里插入图片描述