使用 Cloudflare Worker 处理图片, 依赖 Photon,支持缩放、剪裁、水印、滤镜等功能。
已经适配了 Vercel Edge, 见 https://github.com/ccbikai/vercel-edge-image 。
- 支持 PNG、JPEG、BMP、ICO、TIFF 格式图片处理
- 可输出 JPEG、PNG、WEBP 格式图片,默认输出 WEBP 格式图片
- 支持管道操作,可以执行多个操作
- 支持 Cloudflare 缓存
- 支持图片地址白名单,防滥用
- 异常降级,如果处理失败返回原图(异常场景不缓存)
# patch 功能依赖 pnpm, 如果不使用 pnpm, 需要自己处理 patch-package https://www.npmjs.com/package/patch-package
npm i -g pnpm
# 克隆此项目
git clone https://github.com/ccbikai/cloudflare-worker-image.git
cd cloudflare-worker-image
# 安装依赖
pnpm install
# 修改白名单配置,改为图片域名或者留空不限制图片地址
vi wrangler.toml # WHITE_LIST
# 发布
npm run deploy
修改域名和参数即可使用, 参考:https://image.miantiao.me/?url=https%3A%2F%2Fstatic.miantiao.me%2Fshare%2FMTyerw%2Fbanner-2048.jpeg&action=resize!830,400,2
url:
原图地址,需要使用 encodeURIComponent 编码
action:
操作指令, 支持 Photon 各种操作指令,指令与参数直接使用
!
分割,参考resize!830,400,2
支持管道操作,多个操作指令使用
|
分割,参考resize!830,400,2|watermark!https%3A%2F%2Fstatic.miantiao.me%2Fshare%2F6qIq4w%2FFhSUzU.png,10,10
如果参数中有 URL 或其他特殊字符,需要使用 encodeURIComponent 编码 URL 和 特殊字符
format:
输出图片格式,支持:
jpg,webp,png
,可选,默认 webp
quality:
图片质量,1-100 只有 webp 和 jpg 格式支持,可选,默认 99
由于 Github 会缓存图片,请前往我博客查看真实示例。
http://chi.miantiao.me/post/cloudflare-worker-image/