
HY
折腾进行时
Hello, I'm HY.








平时处理图片的需求其实很碎:博客封面要压一下体积、截图要转 webp、偶尔想把一张糊图放大、做动态卡片又得抠个背景。
以前这些活儿我散在好几个站上干。压图用 Squoosh,抠图用某个在线抠图站,放大再换一个。麻烦倒不算麻烦,就是每次都得把图片传上去。传私人照片、传还没发的东西,心里总归有点别扭。
前几天刷到一个叫 image-tools 的项目。
所以现在它挂在我自己域名底下了:
一共五个工具,共用同一个页面外壳,顶上胶囊标签直接切,不刷新页面:
| 工具 | 地址 | 说明 |
|---|---|---|
| 图片压缩 / 格式转换 | / | 输出 AVIF、JPEG(MozJPEG)、JPEG XL、PNG(OxiPNG)、WebP,支持批量、拖拽、整个文件夹丢进去 |
| AI 超分放大 | /upscale/ | Real-ESRGAN x4,分块推理 |
| AI 抠图去背景 | /cutout/ | MODNet / BiRefNet Lite 两档 |
| 点选抠图 | /segment/ | MobileSAM,自己点一下指定要留的主体 |
| 裁剪 / 旋转 / 九宫格切片 | /edit/ | 纯 Canvas,不加载模型 |
关键点是:压缩走 WASM 编解码器,放大和抠图走浏览器里的 ONNX Runtime。也就是说计算全在你自己的设备上,图片从头到尾没离开过本机,服务器那边只是发静态文件。
我实测过一遍,抠图的边缘处理比不少在线站干净,尤其头发丝那种,BiRefNet 那一档能看出来是认真调过的。放大的速度看你有没有 WebGPU,有的话几秒出图,没有的话降级单线程 WASM,会慢好几倍。
项目本身是给 Cloudflare Pages 准备的,仓库里的 wrangler.toml 写的是 pages_build_output_dir,README 的推荐路线也是连 Git 建 Pages。
我要求部署到 Worker 里,所以这里得改一手。
fork 到我自己仓库之后,配置改成 Workers 静态资源那套:
1name = "image-tools"2compatibility_date = "2026-09-21"3
4[assets]5directory = "./dist"6not_found_handling = "404-page"package.json 里的 deploy 脚本从 wrangler pages deploy dist --project-name=image-tools 换成 wrangler deploy。然后 Cloudflare 后台建 Worker、连仓库、构建命令 npm run build、部署命令 npx wrangler deploy,环境变量加一个 NODE_VERSION=22(Vite 8 要 Node 22.12+)。
第一,第一次用 AI 功能要等模型下载。 权重是运行时从 HuggingFace 拉的,我钉了 revision,缓存之后就好了。第一次点放大或者抠图,会看到进度条在下载,别以为卡死了。
第二,你的设备决定速度。 有 WebGPU 的浏览器(Chrome / Edge 新版)最快;没有的话会自动降级,能用,就是慢。手机也能跑,但别拿它处理几十兆的图。
第三,别拿它当全功能修图软件。 它只干「压缩、转格式、放大、抠图、切图」这五件事,没有图层、没有调色、没有画笔。想干这些还是得开 PS。
代码是原作者的,MIT 协议,我做的只是 fork 一份、把部署目标从 Pages 换成 Workers、再挂到自己域名下。署名和许可证都在仓库里留着,放大和抠图用的权重版权归各自作者。
地址再放一次:https://img.9ll.uk/
压缩、转格式、放大、抠图、切图,五个功能都能用,不用注册、不用登录、不传图。有需要直接用,有什么问题留言告诉我。

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
部分内容可能已过时
分享你的想法,与大家交流讨论