获得徽章 0
图片缩放看起来只是 drawImage 改个宽高,但做成产品级工具后发现细节太多了:
🔒 锁定宽高比连续调整时精度漂移怎么解决?
🔄 旋转 90° 后 Canvas 宽高要交换,transform 矩阵怎么算?
👀 用 CSS 做零开销的实时预览
踩了不少坑,整理成了一篇完整实现。核心是 OffscreenCanvas 的 transform 矩阵在旋转/翻转场景下的应用。
🔗 在线体验:pixelswift.site/resize-image
📖 文章:juejin.cn/spost/7620728823731011590
展开
4
Canvas API vs WebAssembly,浏览器端图片处理到底该用哪个?
实测了一下,同一张 3MB JPEG 转 WebP:
Canvas convertToBlob() → 80ms
WASM (libwebp) → 400ms
Canvas 快了 5 倍,但压缩质量 WASM 完胜。
详细对比 👉 juejin.cn
基于这个思路做了个工具:pixelswift.site
展开
评论
TinyPNG:上传图片 → 服务器压缩 → 下载结果,10 张图要 15-30 秒
PixelSwift:浏览器本地 WASM 压缩,10 张图约 3 秒搞定,不发任何网络请求
用 MozJPEG + OxiPNG 的 WebAssembly 版本,压缩质量不输 TinyPNG,但更快而且隐私安全。支持压缩、格式转换、尺寸调整,手机上也能用。
踩了不少坑(Vite 加载 WASM、批量处理内存溢出、SIMD 兼容),写了篇文章记录 👇
juejin.cn
在线体验:pixelswift.site
展开
3
个人成就
文章被点赞 17
文章被阅读 776
掘力值 78
收藏集
0
关注标签
20
加入于