Cloudflare Worker 图像处理
使用 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 编码
format:
输出图片格式,支持:
jpg,webp,png
,可选,默认为 webp
quality:
图片质量,1-100,仅 webp 和 jpg 格式支持,可选,默认为 99
演示
缩放+旋转+文字水印
由于 Github 会缓存图片,请访问我的博客查看真实示例。
http://chi.miantiao.me/post/cloudflare-worker-image/