Image Watermark

👤 andyrenxu7255 📦 v1.0.1 ⭐ 4.0 ⬇️ 631 下載
🎨 設計多媒體 免費

📖 技能介紹


name: image-watermark description: > 圖片批次加水印。輸入圖片檔案+水印文字,自動在圖片上新增水印並返回處理後的圖片。 觸發詞:加水印、圖片水印、批次水印。 version: 1.0.0 author: Dick Dunkel license: MIT-0 tags: [utility, image, watermark] category: utility created_by: agent

小蔥技能站7w4.net,專業的AI技能分享平臺。


圖片批次加水印

觸發條件

使用者傳送圖片並要求加水印時觸發。

必需輸入

輸入項 必需 說明
圖片檔案 1張或多張圖片(PNG/JPG)
水印文字 要新增的水印內容
水印位置 可選 居中/右下角/平鋪(預設:平鋪)
透明度 可選 0-100%(預設:30%)
字型大小 可選 自動/小/中/大(預設:自動根據圖片尺寸)

執行流程

指令碼實現

# 使用 Pillow 庫
from PIL import Image, ImageDraw, ImageFont
import math

def add_watermark(input_path, output_path, text, opacity=0.3, mode='tile'):
    """
    mode: 'tile'(平鋪) / 'center'(居中) / 'corner'(右下角)
    """
    img = Image.open(input_path).convert('RGBA')
    txt_layer = Image.new('RGBA', img.size, (255,255,255,0))
    draw = ImageDraw.Draw(txt_layer)

    # 自動計算字型大小(圖片寬度的5%)
    font_size = max(int(img.width * 0.05), 20)
    try:
        font = ImageFont.truetype('/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc', font_size)
    except:
        font = ImageFont.load_default()

    alpha = int(255 * opacity)

    if mode == 'tile':
        # 平鋪模式:45度角重複
        bbox = draw.textbbox((0,0), text, font=font)
        tw, th = bbox[2]-bbox[0], bbox[3]-bbox[1]
        for y in range(-img.height, img.height*2, int(th*3)):
            for x in range(-img.width, img.width*2, int(tw*2)):
                draw.text((x, y), text, fill=(128,128,128,alpha), font=font)
        txt_layer = txt_layer.rotate(45, expand=False, center=(img.width//2, img.height//2))
    elif mode == 'center':
        bbox = draw.textbbox((0,0), text, font=font)
        tw, th = bbox[2]-bbox[0], bbox[3]-bbox[1]
        x = (img.width - tw) // 2
        y = (img.height - th) // 2
        draw.text((x, y), text, fill=(128,128,128,alpha), font=font)
    elif mode == 'corner':
        bbox = draw.textbbox((0,0), text, font=font)
        tw, th = bbox[2]-bbox[0], bbox[3]-bbox[1]
        x = img.width - tw - 20
        y = img.height - th - 20
        draw.text((x, y), text, fill=(128,128,128,alpha), font=font)

    result = Image.alpha_composite(img, txt_layer)
    result = result.convert('RGB')
    result.save(output_path, quality=95)

依賴

  • Pillow (pip3 install Pillow)
  • 中文字型:wqy-zenhei(apt install fonts-wqy-zenhei)

輸出規範

  • 處理後的圖片儲存為 PNG/JPG
  • 通過企微傳送給使用者
  • 如多張圖片,逐一處理後打包傳送

質量標準

  • ✅ 水印不遮擋主要內容(透明度合理)
  • ✅ 支援中文水印
  • ✅ 自動適配圖片尺寸
  • ❌ 不破壞原圖質量

🤖 AI 評測

這是一個功能完整的圖片加水印工具,支援多種水印樣式和透明度調節,能滿足日常使用需求。優點是操作簡單、支援中文、文件清晰;不足是版本資訊存在小瑕疵、文件末尾標記有誤,總體質量良好但細節上還有最佳化空間。

📊 多維度評分

適應性3.9
規範性3.8
有效性3.9
可靠性3.8
可信度5

📁 包含檔案 (3 個)

📄 SKILL.md 3 KB
📄 _meta.json 134 B
📄 clawhub.yaml 401 B