在写下第一行 Chrome 插件代码之前,我们做了多数团队会跳过的一件事:调研了 Chrome 商店里每一款图片压缩插件。我们按评价数安装了前 20 名,用真实照片试用,读 1 星差评,并查看安装量。
我们发现,这是一个既未被充分服务又被误解的市场。
没错——官方的 TinyPNG Chrome 插件安装量不到 1000。整个 Chrome 商店排名最高的图片压缩器,也只在 1000 安装量上下,评分 3.8 星。
这并不意味着没有需求。需求是有的——「image compressor」这个关键词全球每月搜索量超过 9 万次。那为什么插件如此少人用?
两个规律解释了这一点:
我们认为在这两个维度上都能做得更好。
插件的全部意义——相对于在新标签页打开一个 Web 应用——在于能触及Web 应用够不到的时刻。具体来说:
这些时刻没有一个能被「开个新标签页、把文件拖进去」很好地服务。这就是为什么我们为 ImgMin Chrome 插件设计了四个不同的入口,每个都针对一个特定的浏览器内时刻。
在任意网页右键任意图片。选择 「用 ImgMin 压缩」。一个小浮层会在页面本身的右下角打开——不是新标签,不是 popup。你能看到原始大小、压缩后大小,以及一个下载按钮。三个质量预设。完成。
该浮层使用带封闭 shadow DOM 的沙盒化 iframe,所以你所在的页面读不到里面的内容。图片数据只存在于内存中。
在页面背景(不是图片上)右键。选择 「压缩本页所有图片」。新标签会打开,把源页面上的每一个 <img> 以缩略图网格展示(最多 50 张,已去重)。选你想要的,挑一个质量预设,点 「下载 ZIP」。
ZIP 用内置的 JSZip 库在你的浏览器里构建——没有网络往返,没有第三方 CDN。整个过程可离线工作。
这正是 Web 应用无法复制的功能:只有插件知道你此刻正在看的页面上有哪些图片。
开启上传助手。此后,每当你在任何带文件选择器的网站——Gmail、Twitter、Slack、你的 CMS——选中一张大图(默认阈值:2 MB),右下角会弹出一个小提示:「sunset.jpg · 5.2 MB。发送前压缩?[压缩并替换] [跳过]」。
如果你点压缩,上传输入框中的原始文件会通过标准的 DataTransfer API 被替换成压缩后的版本,然后表单的 change 事件再次触发。网站看到的是一个更小的文件,照常进行。
你可以全局禁用、设置按域名跳过的清单,或在设置中更改阈值。这一项是安静的生产力倍增器——多数用户没意识到自己在未缩放的手机照片上烧掉了多少带宽。
HEIC 格式的 iPhone 照片多年来一直是痛点,尤其在无法原生打开它们的 Windows 和 Linux 机器上。ImgMin 内置了一个 WebAssembly libheif 解码器(约 1 MB,仅在需要时懒加载),并完全在你的浏览器中把 HEIC → JPG / WebP。
你把一个 .heic 文件拖进 popup,ImgMin 解码它、压缩它,并给你一个任何设备都能打开的格式的下载。无需单独的转换器,也不用上传到某个来路不明的「免费 HEIC 转 JPG」网站。
多数「私密」工具靠的是你信任它们的隐私政策。我们采取了不同的做法:把系统设计成隐私不是一项政策,而是一个技术属性。
| 能力 | ImgMin | TinyPNG 式插件 |
|---|---|---|
| 图片数据离开浏览器 | 从不 | 是(传到服务器) |
| 压缩过程中的网络请求 | 零 | 多个 |
| 是否需要账号 | 否 | 常需要 |
| 能否离线工作 | 能 | 不能 |
| 追踪 Cookie | 无 | 不一定 |
| 开源 | MIT | 闭源 |
压缩本身运行在HTML5 Canvas API 上,它内置于你的浏览器。HEIC 解码运行在一个内置的 WASM 模块上,同样在本地。插件唯一的出站请求是页脚里可选的「打开 ImgMin 网页版」链接,而那显然得你自己点。
如果你想自己验证这一切,全部源码都在 github.com/hunkwu/imgmin。
imgmin.pro 网页版已支持 6 种语言(English、中文、日本語、Français、Deutsch、Español)。把 Chrome 插件做成只有英文会很傻——Chrome 的用户群比整体 Web 更国际化,而非更少。
所以插件通过 chrome.i18n.getUILanguage() 自动检测你的浏览器语言,并把整个界面——popup、页面内浮层、批量页、上传提示、设置,甚至右键菜单标题——都以你的语言呈现。你也可以在设置里覆盖这个选择。
v1.3 带来了上面的四个入口。为了让首个版本保持精简,我们刻意推迟了这些:
ImgMin 完全在你的浏览器中用 Canvas API 运行——任何图片数据都不会被发送到任何服务器。TinyPNG 的免费服务会把你的图片上传到它的压缩服务器,在那里保留 24 小时后删除。对敏感图片(证件照、医学扫描、私人时刻),这个差异很重要。ImgMin 还增加了 TinyPNG 插件没有的整页批量、上传自动建议和 HEIC 支持。
三个原因:(1) 读取你右键的图片,(2) 在你触发整页批量时枚举 <img> 标签,(3) 在你开启上传助手时监听文件选择。插件是被动的——它只在你显式调用某个功能时才动作。它从不读取、抓取或传输其他页面内容。完整说明见 extension-privacy.html。
能。安装后,插件在压缩过程中发出零网络请求。Canvas API 和内置的 libheif WASM 解码器都在本地运行。你可以在飞行模式、无网络的企业网络,或任何离线场景下压缩图片。
用户安装图片压缩器是因为想要更小的文件。以最大压缩为首选符合这一意图。ImgMin 的「最小」预设使用质量 0.70——对绝大多数照片,能在保留人脸、文字和细节完好的同时实现约 75% 的体积缩减。如果你需要纯净画质,「最佳质量」只需一次点击。
开源——Chrome 插件和 imgmin.pro 网页版都在 github.com/hunkwu/imgmin。代码可审计。你可以自己验证这些隐私声明。
发布于 2026 年 5 月 15 日。安装量取自撰文时的 Chrome 商店。该插件免费且以 MIT 许可开源。