首页 经验

诗词速通,漫游泡泡,词汇宝,新维日语,简易物理,点此下载


Python 给图片加水印

时间: 2026-03-11 10:21:44

(部分内容来自网络,其真实性存疑,为了避免对您造成误导,请谨慎甄别。)

📝 Python 给图片加水印(备案专用)


方法一:用 PIL/Pillow(最简单)


from PIL import Image, ImageDraw, ImageFont
import os

def add_watermark(input_image_path, output_image_path, watermark_text):     # 打开图片     image = Image.open(input_image_path)     # 创建可画图的对象     draw = ImageDraw.Draw(image)          # 获取图片尺寸     width, height = image.size          # 设置字体大小(图片宽度的1/20左右)     font_size = int(width / 20)     try:         # Mac系统字体路径,不行就换下面这个         font = ImageFont.truetype("/System/Library/Fonts/Supplemental/Songti.ttc", font_size)     except:         font = ImageFont.load_default()          # 获取文字尺寸     text_bbox = draw.textbbox((0, 0), watermark_text, font=font)     text_width = text_bbox[2] - text_bbox[0]     text_height = text_bbox[3] - text_bbox[1]          # 计算位置(斜着放,防偷)     position = ((width - text_width) // 2, (height - text_height) // 2)          # 画半透明水印     # 创建一个透明图层     watermark = Image.new('RGBA', image.size, (0,0,0,0))     watermark_draw = ImageDraw.Draw(watermark)          # 添加半透明文字(斜着放可以旋转,这里简单居中)     watermark_draw.text(position, watermark_text, fill=(255,255,255,128), font=font)          # 合并原图和透明水印     watermarked = Image.alpha_composite(image.convert('RGBA'), watermark)          # 保存     watermarked.convert('RGB').save(output_image_path, 'JPEG', quality=95)     print(f"✅ 水印已添加: {output_image_path}")
# 用起来 add_watermark("你的照片.jpg", "加了水印的照片.jpg", "仅限备案使用 2026-03-11")


方法二:批量处理文件夹所有图片


import os
from PIL import Image, ImageDraw, ImageFont

def batch_add_watermark(folder_path, watermark_text):     # 支持的图片格式     extensions = ('.jpg', '.jpeg', '.png', '.heic')          for filename in os.listdir(folder_path):         if filename.lower().endswith(extensions):             input_path = os.path.join(folder_path, filename)             # 输出文件名加个_watermarked             name, ext = os.path.splitext(filename)             output_path = os.path.join(folder_path, f"{name}_水印{ext}")                          try:                 add_watermark(input_path, output_path, watermark_text)             except Exception as e:                 print(f"❌ 处理失败 {filename}: {e}")
# 用起来 batch_add_watermark("/Users/你的名字/Desktop/要加水的照片/", "仅限备案使用")


方法三:旋转水印更防偷


from PIL import Image, ImageDraw, ImageFont
import math

def add_rotated_watermark(input_path, output_path, text):     img = Image.open(input_path).convert('RGBA')     width, height = img.size          # 创建透明图层     txt_layer = Image.new('RGBA', img.size, (255,255,255,0))     draw = ImageDraw.Draw(txt_layer)          # 设置字体     font_size = int(min(width, height) / 15)     try:         font = ImageFont.truetype("/System/Library/Fonts/Supplemental/Songti.ttc", font_size)     except:         font = ImageFont.load_default()          # 获取文字尺寸     text_bbox = draw.textbbox((0, 0), text, font=font)     text_width = text_bbox[2] - text_bbox[0]     text_height = text_bbox[3] - text_bbox[1]          # 创建一个大画布放旋转后的文字     text_canvas = Image.new('RGBA', (text_width + 100, text_height + 100), (255,255,255,0))     text_draw = ImageDraw.Draw(text_canvas)     text_draw.text((50, 50), text, fill=(255,255,255,128), font=font)          # 旋转文字     rotated = text_canvas.rotate(45, expand=1)          # 计算位置(平铺多个水印)     for i in range(0, width, rotated.width):         for j in range(0, height, rotated.height):             txt_layer.paste(rotated, (i, j), rotated)          # 合并     result = Image.alpha_composite(img, txt_layer)     result.convert('RGB').save(output_path, 'JPEG', quality=90)     print(f"✅ 完成: {output_path}")
# 用起来 add_rotated_watermark("照片.jpg", "带水印.jpg", "仅限备案使用")


📦 先装这些傻逼库


pip install Pillow
# 如果要处理HEIC格式(iPhone拍的)
pip install pillow-heif


⚠️ 注意事项


1. 字体路径:Mac 一般在 /System/Library/Fonts/ 里,Windows 在 C:/Windows/Fonts/,找不到就用默认字体

2. 透明效果fill=(255,255,255,128) 最后那个128是透明度(0-255)

3. HEIC格式:iPhone拍的,要装 pillow-heif 才能处理


拿去用吧! 有问题继续骂,我给你改代码!


还有问题,向AI提问。


上一个 为什么你找不到"给 PDF 添加注释"? 文章列表 下一个 iPad选购指南

(汉语/英语/日语/法语/德语)语音助手(识别/合成),智能翻译,高中物理动画,数据分析,数据可视化,电话: 18201798243(同v)

最新

工具

© 2019-至今 适观科技

沪ICP备17002269号