下载地址
https://api.skillhub.cn/api/v1/download?slug=%40user_c208e969%2Fimage-batch-processor将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_c208e969/image-batch-processor。图片批量处理工具箱。当用户需要批量处理图片时使用:格式互转(PNG/JPG/HEIC/LIVP/CR2/ARW/NEF/WebP/TIFF/SVG/PDF 等)、添加文字或图片水印、压缩体积、OCR 提取文字、水平/垂直拼接长图、按行列拆分、灰度调整、按像素或百分比缩放、旋转、水平/垂直翻转、模糊转高清/超分放大、图片背景去除。
适用于"把图片转成xxx格式""加个水印""压缩一下图片""提取这张图里的文字""拼成长图""把大图分成九宫格""让模糊图片变清晰""抠图去背景"等请求。
阅读全文 (展开查看完整说明)
概述
Image Batch Processor(图片批量处理工具箱)
Overview
一个面向批量图片处理的单文件 CLI 技能,覆盖截图工具类网站常见的十二类操作:格式互转、水印、压缩、OCR 文字提取、长图拼接、网格拆分、灰度、缩放、旋转、翻转、模糊转高清/超分放大、图片背景去除。所有操作均支持批量(目录 / 通配符),失败时跳过并汇总,不中断整体任务。
核心脚本:scripts/image_batch_processor.py(基于 Pillow,可选依赖按需启用)。
When to use
触发词与场景示例:
- 格式转换:「把 PNG 转成 JPG」「HEIC 转 JPG」「LIVP/CR2/ARW/NEF 转 JPG」「其它格式互转」「导出成 WebP/PDF/TIFF」
- 水印:「给这些图加个文字水印」「批量打 logo 水印」
- 压缩:「压缩图片节省空间,又不要糊」「批量压到 70 质量」
- OCR:「提取图片上的文字」「批量识别截图里的字」
- 拼接:「把这些图拼成一张长图」「水平拼接 / 垂直拼接」
- 拆分:「把大图平均分成 3×3 小图」「九宫格切图」
- 灰度:「调一下灰度」「去色但保留一点原色」
- 缩放:「按像素改成 800 宽」「按比例缩到 50%」「改成 1920×1080」
- 旋转 / 翻转:「旋转 90 度」「水平翻转」「垂直翻转」
- 高清增强:「把这张模糊图变清晰」「超分放大 2 倍」「图片模糊转高清」
- 背景去除:「抠图」「去掉背景」「把人物从背景里扣出来」
Dependencies(运行前确认)
- 必需:
Pillow(py3)
pip install Pillow- 按需(首次用到对应格式时报错并提示安装):
- HEIC / HEIF →
pillow-heif - RAW(CR2/CR3/NEF/ARW/DNG)→
rawpy - SVG 输入 →
cairosvg - OCR →
pytesseract+ 系统安装 Tesseract(中文包chi_sim) - 多页图片转 PDF →
img2pdf - 背景去除 →
rembg(基于 ONNX Runtime,效果最好) - AI 超分高清 →
realesrgan+numpy+ 对应.pth模型文件
- HEIC / HEIF →
建议在虚拟环境或隔离目录安装,避免污染用户环境。
Workflow
- 确认输入:拿到图片路径 / 目录 / 通配符,确认目标操作与参数。
- 确认依赖:根据目标格式检查 Pillow 及可选依赖;缺失则先安装再执行。
- 执行脚本:调用
scripts/image_batch_processor.py对应子命令。可用--out指定输出目录,否则默认写入<输入目录>/<操作>_output。 - 汇总反馈:报告成功/跳过数量与输出路径;对跳过的文件说明原因(格式不支持 / 依赖缺失 / 解码失败)。
脚本统一入口:
python scripts/image_batch_processor.py <子命令> <输入...> [选项]Operations(子命令速查)
convert — 格式互转
python scripts/image_batch_processor.py convert "*.png" --format jpg --quality 92
python scripts/image_batch_processor.py convert ./raw/ --format webp --recursive
python scripts/image_batch_processor.py convert photo.heic --format jpg # 需 pillow-heif--format:目标格式(jpg/png/gif/bmp/webp/tiff/ico/pdf/svg/heic/heif/psd…)--quality:有损格式质量(1-100,默认 95)- 转 JPEG 时自动把 RGBA/P 模式压平为 RGB;转 ICO 默认 256×256。
watermark — 文字 / 图片水印
python scripts/image_batch_processor.py watermark "*.jpg" --text "© 2026" --opacity 0.6 --position bottomright
python scripts/image_batch_processor.py watermark "*.png" --logo ./logo.png --scale 0.2--text/--logo可单独或同时用。--scale:logo 相对图片宽度的比例(默认 0.2)。--opacity:文字透明度 0-1。--position:center / topleft / topright / bottomleft / bottomright。
compress — 压缩
python scripts/image_batch_processor.py compress ./photos/ --quality 70--quality:JPEG 质量(默认 70),打印压缩前后体积与节省比例。
ocr — 提取文字
python scripts/image_batch_processor.py ocr ./scans/ --lang chi_sim+eng- 每张图输出同名
.txt;需 pytesseract + Tesseract 引擎。
stitch — 拼接长图
python scripts/image_batch_processor.py stitch 1.png 2.png 3.png --direction vertical --name long.png
python scripts/image_batch_processor.py stitch ./slides/ --direction horizontal--direction:vertical(默认)/ horizontal;拼接前统一对齐边。
split — 网格拆分
python scripts/image_batch_processor.py split big.png --rows 3 --cols 3- 输出
<原图名>_行_列.png,如big_1_1.png … big_3_3.png。
grayscale — 灰度调整
python scripts/image_batch_processor.py grayscale "*.jpg" --level 50--level:0=纯灰,100=原色(默认 50)。
resize — 缩放
python scripts/image_batch_processor.py resize "*.png" --width 800
python scripts/image_batch_processor.py resize "*.png" --percent 50
python scripts/image_batch_processor.py resize "*.png" --width 1920 --height 1080- 指定宽或高时按比例换算另一边;同时指定则强制目标尺寸。
rotate / flip — 旋转 / 翻转
python scripts/image_batch_processor.py rotate "*.jpg" --angle 90
python scripts/image_batch_processor.py flip "*.jpg" --direction horizontalenhance — 模糊转高清 / 超分放大
python scripts/image_batch_processor.py enhance blurry.jpg --scale 2
python scripts/image_batch_processor.py enhance ./low_res/ --scale 4 --model RealESRGAN_x4plus.pth--scale:放大倍数 2/3/4(默认 2)。--model:可选 Real-ESRGAN 模型路径;未提供则使用 Pillow LANCZOS + 非锐化掩膜的基础增强。--model-arch:general(默认)/ anime。
removebg — 背景去除
python scripts/image_batch_processor.py removebg photo.jpg
python scripts/image_batch_processor.py removebg ./products/ --tolerance 25- 优先使用
rembg(AI 抠图,效果最佳);未安装时自动回退到「四角取色 + 颜色容差」简单抠图。 --tolerance:回退模式下背景颜色容差(默认 30)。- 输出统一为 PNG(保留透明通道)。
Notes & Edge Cases
- 批量稳健性:每张图独立 try/except,单张失败不影响其余;最终汇总成功与跳过数。
- 特殊格式:HEIC/RAW/SVG 在缺失可选依赖时给出明确 pip 安装提示,而非静默失败。
- 输出安全:默认写入独立输出目录,绝不在原文件上覆盖;需要时由用户显式指定
--out。 - 中文路径/水印:脚本使用系统字体(Windows
msyh.ttc、macOSPingFang.ttc等),缺失时回退默认字体,文字水印仍可用。 - PDF 输出:单图转单页 PDF;多页 PDF 可后续结合
img2pdf增强(见 Dependencies)。 - 高清增强:默认提供 Pillow 基础超分锐化(无需额外依赖);如需 Real-ESRGAN 效果,用户需自行下载对应
.pth模型并通过--model指定。 - 背景去除:AI 模式依赖
rembg与 ONNX Runtime,首次安装可能较大;简单背景可依赖无依赖回退模式。
支付宝付费改造契约(PAYSKILL)
本技能为付费技能(PAYSKILL)。调用遵循支付宝 AI 生意画像契约,由平台调度层执行 probe → pay → complete → ack 流程:
- probe(探测):平台调用前先探测是否已持有本技能的支付宝有效订阅 / 付费凭证。已付费则直接放行。
- 402 Payment-Needed:未付费时,脚本向标准输出返回 HTTP 状态
402与Payment-Needed标记,提示用户通过支付宝完成付费(pay),平台据此唤起付费页。 - complete(扣费确认):用户在支付宝完成扣费后,平台下发
Payment-Proof(付费凭证)。 - ack(验签放行):平台携带
Payment-Proof重试本次调用;scripts/payment_gate.py验签该凭证,确认有效后放行主流程。
订阅持久化与幂等:
- 付费状态缓存在本地
.pay_cache/state.json,避免每次调用重复付费(订阅持久化)。 - 同一
Payment-Proof在 24h 幂等窗口内仅生效一次,避免重复扣费。
现金流改造后的调用套路:
用户调用 → 平台 probe →
未付费:下发 402 Payment-Needed → 支付宝 pay → complete → 下发 Payment-Proof
已付费/携带 Proof:脚本 ack 验签 → 放行主流程本契约由 SkillHUB 平台调度层解析,脚本本地仅处理
402/验签/持久化三环节;付费本体交给支付宝。
支付宝 AI 按量付费(Machine Pay / A2M)改造说明
本 Skill 已按支付宝官方 A2M 协议改造为 Pay Skill,付费闸口位于 scripts/payment_gate.py,统一调用云端计费服务 https://pay.pembroli.cn/api/resource。
付费流程
- 未付费调用时,服务端返回 HTTP 402 +
Payment-Needed头,携带金额、商户、订单号及 RSA2 签名。 - 买家侧
payment_gate.py收到 402 后引导用户完成支付,平台回传Payment-Proof。 - 客户端携带
Payment-Proof重试资源端点。
验付调用
服务端收到 Payment-Proof 后,调用支付宝验付接口(alipay.aipay.agent.payment.verify)核验凭证有效性(trade_no、out_trade_no、active 状态),验证失败返回 400,验证通过才进入资源发放。
履约确认
资源发放成功后,服务端异步调用履约确认接口(alipay.aipay.agent.fulfillment.confirm,trade_no)回执,标记本笔订单已履约;并按 out_trade_no 做幂等,重复请求直接返回已缓存结果,杜绝重复收费。
幂等与缓存
买家侧按 slug 本地缓存 Payment-Proof(24h TTL),有效期内免重复支付;服务端按订单号幂等,保证同一笔订单只履约一次。