图片本地化插件 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属性
  • ✅ 域名管理:可选择是否添加域名前缀
  • ✅ 日志记录:详细记录本地化过程和结果

安装方法

  1. 下载插件压缩包
  2. 解压到 /usr/plugins/ 目录
  3. 后台启用插件
  4. 进入插件设置页面配置参数

使用说明

编辑器本地化

  1. 在插件设置中启用"编辑器本地化插件"
  2. 编辑文章时,点击编辑器上方的"本地化外部图片"按钮
  3. 等待处理完成,图片链接会自动替换

发布时自动本地化

  1. 在插件设置中启用"发布时自动本地化"
  2. 发布或修改文章时,会自动本地化所有外部图片
  3. 处理结果会记录到日志中

批量本地化

  1. 进入"控制台" -> "图片本地化"管理页面
  2. 选择分类和文章状态
  3. 点击"开始批量本地化"按钮
  4. 等待处理完成

WebP转换

  1. 在插件设置中启用"本地化后转换为WebP格式"
  2. 设置WebP质量(建议80)
  3. 可选择性排除某些格式(如GIF)

图片水印

  1. 在插件设置中启用"开启图片自动加水印"
  2. 选择水印类型(文字或图片)
  3. 配置水印参数(位置、大小、颜色等)
  4. 本地化时会自动添加水印

对象存储

  1. 在插件设置中启用"开启对象存储"
  2. 选择存储类型(阿里云/腾讯云/七牛云)
  3. 填写AccessKey、SecretKey等配置
  4. 配置自定义域名(可选)
  5. 本地化后会自动上传到对象存储

接口说明

单张图片本地化接口

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等配置是否正确
  • 检查存储桶权限设置

性能优化建议

  1. 使用编辑器插件而非发布时自动本地化(图片多时可能超时)
  2. 开启对象存储并配置CDN加速
  3. 合理设置并发数(建议5-10)
  4. 定期清理日志表

安全建议

  1. 妥善保管接口密钥
  2. 定期更换密钥
  3. 限制接口访问频率
  4. 不要在公开场合暴露密钥

更新日志

v2.0.0 (2024-12-18)

  • 🎉 重新实现管理面板(批量本地化、日志查看)
  • ✅ 整合 ToWebp 插件的上传转 WebP 功能
  • ✅ 移除数据库日志,改为文件日志
  • ✅ 修复上传功能关闭时的错误
  • ✅ 添加"跳过"计数功能
  • ✅ 添加 30 秒超时设置
  • ✅ 支持 Markdown 和 HTML 格式图片
  • ✅ AJAX 实时日志查看器
  • ✅ 统计信息面板

v1.0.0 (2024-12-17)

  • 首次发布
  • 支持基础图片本地化功能
  • 支持WebP转换
  • 支持图片水印
  • 支持对象存储(阿里云/腾讯云/七牛云)
  • 支持批量处理
  • 支持编辑器插件

技术支持

开源协议

GPLv2 or later

致谢

本插件基于WordPress版本的 nicen-localize-image Pro 移植而来,感谢原作者的优秀作品。


https://www.123865.com/s/zd3UVv-iEuOA 提取码:htPU