图片本地化插件 Pro for Typecho
插件介绍
这是一款功能强大的Typecho图片本地化插件,可以自动将文章中的外部图片下载到本地服务器或对象存储,支持WebP转换、图片水印、批量处理等高级功能。
主要功能
1. 图片本地化
- ✅ 编辑器一键本地化:在文章编辑器中点击按钮即可本地化所有外部图片
- ✅ 发布时自动本地化:文章发布时自动本地化所有外部图片
- ✅ 批量本地化:支持按分类、状态批量本地化已发布的文章
- ✅ 并发下载:编辑器插件支持并发下载,提高处理速度
- ✅ MD5去重:自动检测重复图片,避免重复下载
2. 图片处理
- ✅ WebP转换:自动将图片转换为WebP格式,减小文件体积
- ✅ 质量控制:可设置WebP质量(60-100)
- ✅ 格式过滤:可指定某些格式不转换WebP(如GIF)
3. 图片水印
- ✅ 文字水印:支持自定义文字、颜色、大小、角度
- ✅ 图片水印:支持使用自定义图片作为水印
- ✅ 九宫格定位:支持9个位置的水印定位
- ✅ 透明度保持:完美支持PNG透明水印
4. 对象存储
- ✅ 阿里云OSS:支持上传到阿里云对象存储
- ✅ 腾讯云COS:支持上传到腾讯云对象存储
- ✅ 七牛云:支持上传到七牛云存储
- ✅ 自定义域名:支持配置CDN加速域名
- ✅ 按日期保存:支持按年/月/日目录结构保存
- ✅ 本地保留:可选择上传后是否保留本地文件
5. 高级功能
- ✅ 白名单:设置域名白名单,忽略指定域名的图片
- ✅ 自定义Referer:绕过图片防盗链
- ✅ 自定义Header:自定义HTTP请求头
- ✅ 自动添加Alt:自动给图片添加Alt属性
- ✅ 域名管理:可选择是否添加域名前缀
- ✅ 日志记录:详细记录本地化过程和结果
安装方法
- 下载插件压缩包
- 解压到
/usr/plugins/ 目录
- 后台启用插件
- 进入插件设置页面配置参数
使用说明
编辑器本地化
- 在插件设置中启用"编辑器本地化插件"
- 编辑文章时,点击编辑器上方的"本地化外部图片"按钮
- 等待处理完成,图片链接会自动替换
发布时自动本地化
- 在插件设置中启用"发布时自动本地化"
- 发布或修改文章时,会自动本地化所有外部图片
- 处理结果会记录到日志中
批量本地化
- 进入"控制台" -> "图片本地化"管理页面
- 选择分类和文章状态
- 点击"开始批量本地化"按钮
- 等待处理完成
WebP转换
- 在插件设置中启用"本地化后转换为WebP格式"
- 设置WebP质量(建议80)
- 可选择性排除某些格式(如GIF)
图片水印
- 在插件设置中启用"开启图片自动加水印"
- 选择水印类型(文字或图片)
- 配置水印参数(位置、大小、颜色等)
- 本地化时会自动添加水印
对象存储
- 在插件设置中启用"开启对象存储"
- 选择存储类型(阿里云/腾讯云/七牛云)
- 填写AccessKey、SecretKey等配置
- 配置自定义域名(可选)
- 本地化后会自动上传到对象存储
接口说明
单张图片本地化接口
GET/POST /action/mo-localize?do=localize&url=图片URL&key=密钥
返回格式:
{
"code": 1,
"result": "本地化后的图片URL"
}
定时任务接口
GET /action/mo-localize?do=crontab&key=密钥
可以配置Linux Cron定时访问此接口,实现定时发布功能。
系统要求
- PHP >= 5.6(建议7.0+)
- Typecho >= 1.0
- GD库(图片处理必需)
- cURL扩展(HTTP请求必需)
- 对象存储需要安装对应的SDK
对象存储SDK安装
阿里云OSS
composer require aliyuncs/oss-sdk-php
腾讯云COS
composer require qcloud/cos-sdk-v5
七牛云
composer require qiniu/php-sdk
常见问题
1. 图片下载失败
- 检查服务器是否能访问外部网络
- 检查目标网站是否有防盗链
- 尝试配置自定义Referer
2. WebP转换失败
- 检查PHP是否安装GD库
- 检查GD库是否支持WebP
- 运行
php -i | grep webp 查看支持情况
3. 水印不显示
- 检查字体文件是否存在
- 检查图片格式是否支持
- 查看日志了解具体错误
4. 对象存储上传失败
- 检查SDK是否正确安装
- 检查AccessKey等配置是否正确
- 检查存储桶权限设置
性能优化建议
- 使用编辑器插件而非发布时自动本地化(图片多时可能超时)
- 开启对象存储并配置CDN加速
- 合理设置并发数(建议5-10)
- 定期清理日志表
安全建议
- 妥善保管接口密钥
- 定期更换密钥
- 限制接口访问频率
- 不要在公开场合暴露密钥
更新日志
v2.0.0 (2024-12-18)
- 🎉 重新实现管理面板(批量本地化、日志查看)
- ✅ 整合 ToWebp 插件的上传转 WebP 功能
- ✅ 移除数据库日志,改为文件日志
- ✅ 修复上传功能关闭时的错误
- ✅ 添加"跳过"计数功能
- ✅ 添加 30 秒超时设置
- ✅ 支持 Markdown 和 HTML 格式图片
- ✅ AJAX 实时日志查看器
- ✅ 统计信息面板
v1.0.0 (2024-12-17)
- 首次发布
- 支持基础图片本地化功能
- 支持WebP转换
- 支持图片水印
- 支持对象存储(阿里云/腾讯云/七牛云)
- 支持批量处理
- 支持编辑器插件
技术支持
- 作者:魔王
- 网站:https://yqde.com
- 原WordPress插件:https://nicen.cn/2893.html
- Typecho版本移植并增强
开源协议
GPLv2 or later
致谢
本插件基于WordPress版本的 nicen-localize-image Pro 移植而来,感谢原作者的优秀作品。