电商主图批量瘦身
双十一前运营团队需上传 200 张商品主图,每张原图 3-5MB,平台限制单图 1MB。用 PS 逐张压缩耗时 3 小时,且画质损失明显。本工具使用 pngquant 算法将 32 位 PNG 降为 8 位索引色,再经 zopfli 无损重压缩,200 张图 15 分钟完成,体积降至 600KB 以内,肉眼几乎看不出色差,直接通过平台审核。
专做 PNG 有损量化压缩 · 保留透明通道 · 可多选批量 · 单张 ≤ 50MB
其它格式(JPG/WebP/GIF)也收,统一输出 PNG · 截图直接 CtrlV 粘贴
设计师在 Sketch 里导出 PNG 时,文件体积常比预期大出一倍,拖慢网页加载。这个工具用 pngquant 把 24 位图压缩到 8 位,再用 zopfli 做无损重编码,在肉眼难辨的色差范围内,压掉 40%–70% 的体积。图片留在本地浏览器处理,不上传服务器,适合批量压缩电商素材或 H5 页面切片。
双十一前运营团队需上传 200 张商品主图,每张原图 3-5MB,平台限制单图 1MB。用 PS 逐张压缩耗时 3 小时,且画质损失明显。本工具使用 pngquant 算法将 32 位 PNG 降为 8 位索引色,再经 zopfli 无损重压缩,200 张图 15 分钟完成,体积降至 600KB 以内,肉眼几乎看不出色差,直接通过平台审核。
Android 应用内嵌 50 张启动引导图,均为 24 位 PNG,总包体 18MB。渠道方要求安装包不超过 20MB,去掉这些图则功能展示不全。用本工具批量压缩后,图片总大小从 18MB 降到 6.2MB,画质保留 95% 以上,安装包最终 19.1MB 达标,且无任何图片加载异常。
设计师交付的印刷级海报是 300DPI 的 PNG,单张 25MB,客户要求发微信预览。直接发原图打不开,截图又丢失细节。用本工具将 32 位色深保留,仅压缩像素冗余,文件从 25MB 降到 1.8MB,客户在手机上放大仍能看到 10 磅小字,无需二次沟通确认。
独立游戏开发者为 Steam 版准备 80 张技能图标 PNG,每张 512×512,原始大小 1.2MB/张。打包后资源文件夹 96MB,超出 Steam 上传限制的 50MB。使用本工具将每张图标压缩至 200KB 以下,总包 16MB,且索引色模式让半透明边缘无锯齿,在 4K 显示器上测试无瑕疵。
公众号封面图要求宽 900×高 500,文件 ≤ 5MB。运营拍了一张 6000×4000 的 PNG 原图,裁切后仍有 8MB。用本工具将色彩深度从 48 位降到 24 位,再启用 zopfli 重编码,最终 4.2MB 上传成功,且文章内嵌的缩略图在微信内打开速度从 3 秒降到 0.8 秒。
| 输入 | 输出 | 说明 |
|---|---|---|
| 一张 1920×1080 的 PNG 截图(文件大小 1.2 MB) | 压缩后文件大小 320 KB(压缩率 73%),视觉质量与原图几乎无差异 | 常规:典型截图场景,pngquant 能高效减少颜色数而肉眼不易察觉,zopfli 进一步优化压缩流 |
| 一张 800×600 的 PNG 图标(文件大小 50 KB,含透明通道) | 压缩后文件大小 18 KB(压缩率 64%),透明区域保留完整,无锯齿 | 常规:带透明通道的图标,验证工具对 alpha 通道的处理——pngquant 默认保留透明度 |
| 一张 1×1 像素的纯白 PNG(文件大小 68 字节) | 压缩后文件大小 68 字节(压缩率 0%) | 边界:极小图片,pngquant 无法进一步减少颜色数(只有 1 色),zopfli 对极短数据流增益有限 |
| 一张 4000×3000 的摄影 PNG(文件大小 15 MB,含大量渐变和噪点) | 压缩后文件大小 8.2 MB(压缩率 45%),渐变区域出现轻微色带(需肉眼贴近看) | 边界:大尺寸高噪点图,pngquant 的颜色量化会损失渐变细节,zopfli 无法弥补此损失 |
| 一张已用 TinyPNG 压缩过的 PNG(文件大小 200 KB) | 压缩后文件大小 198 KB(压缩率 1%),几乎无变化 | 易错:用户常以为可反复压缩,实际 pngquant 对已量化的图片二次压缩收益极低 |
| 一张 16 色索引 PNG(文件大小 10 KB) | 压缩后文件大小 9.5 KB(压缩率 5%),颜色表不变 | 易错:低色深图片(如 GIF 转 PNG)颜色数已很少,pngquant 不做降色,zopfli 仅优化 Huffman 编码 |
| 一张 10000×10000 的纯色渐变 PNG(文件大小 3 MB) | 压缩后文件大小 1.1 MB(压缩率 63%),渐变平滑度下降(出现明显色阶) | 边界:超大尺寸渐变图,pngquant 的 dithering 算法在此场景下色阶问题最突出 |
1.上传非 PNG 格式图片
上传 JPEG、GIF、WebP 等格式图片仅上传 .png 后缀的图片本工具使用 pngquant + zopfli 专为 PNG 格式设计,其他格式无法被正确处理,会直接报错或产生无意义输出。
2.图片已使用过有损压缩,再次压缩效果不明显
将已用 TinyPNG 压缩过的 PNG 再次上传上传原始未压缩或仅无损压缩过的 PNGpngquant 是有损压缩,二次压缩时图片颜色已减少,算法无法进一步降低体积,反而可能引入可见色块。
3.图片包含透明通道时,未注意颜色数量限制
上传带透明通道的 24 位 PNG,期望压缩后保留全部 256 级透明度接受压缩后透明度会被量化到更少级别(如 256 色时最多 256 种 RGBA 组合)pngquant 将 RGBA 视为整体索引,透明通道也参与颜色量化,过多透明级别会导致颜色数不足,出现锯齿边缘。
4.期望无损压缩,却使用有损模式
上传重要图标,要求体积减少 80% 且像素完全不变若需像素级无损,应使用 zopfli 或 optipng 等纯无损工具,而非本工具本工具默认使用 pngquant 进行有损量化,会合并相似颜色,无法保证像素值不变。
5.图片尺寸过大,超出浏览器内存限制
上传 10000×10000 像素的 PNG(约 200MB)上传尺寸在 4000×4000 像素以内、文件小于 50MB 的图片本工具在浏览器端处理(WASM),大图会耗尽浏览器内存导致崩溃或标签页无响应。
6.忽略颜色数量设置,导致压缩比过低
使用默认 256 色,但原图只有 16 色,压缩后体积几乎不变手动将颜色数设为与原图接近的值(如 16 或 32),可进一步减小文件pngquant 默认输出 256 色索引图,如果原图颜色数远少于 256,降低颜色数能进一步压缩。
7.压缩后图片出现色带,误以为是工具缺陷
渐变背景图压缩后出现明显色带,认为是 bug压缩前检查原图是否有渐变区域,或接受轻微色带;也可在工具中启用抖动(dithering)选项减少颜色数必然导致渐变区域出现色带,这是量化算法的固有特性,不是工具错误。
8.批量上传时,未注意单个文件独立处理
上传 10 张图片,认为工具会批量优化整体颜色分布每张图片独立压缩,颜色表互不共享pngquant 对每张图片单独生成调色板,不同图片的颜色不会合并,因此压缩比不会因批量而提升。
压缩率 = (1 - 压缩后文件大小 / 原始文件大小) × 100%
压缩后文件大小经 pngquant 量化 + zopfli 压缩后的 PNG 字节数原始文件大小输入 PNG 文件的原始字节数原始 PNG 文件 256 KB(262,144 字节),压缩后 89 KB(91,136 字节):压缩率 = (1 - 91,136 / 262,144) × 100% = (1 - 0.3477) × 100% ≈ 65.2%,即文件体积减少约 65%。
底层算法相同:先用 pngquant 把 PNG 转成 256 色以内的索引色,再用 zopfli 做最慢但压缩率最高的 Deflate 编码。实测同一张 24 位 PNG 下,本工具压缩率与 TinyPNG 偏差通常在 1-3% 以内,视觉差异肉眼不可见。区别在于 TinyPNG 是上传到远程服务器处理,本工具直接在浏览器里跑 WASM,不上传任何文件。
pngquant 默认用 256 色(8 位索引色),如果原图是摄影类渐变丰富的 PNG,颜色数压缩后可能出现色斑或细节丢失。本工具没有暴露 pngquant 的 --quality 参数(如 60-80),所以无法在界面上调节质量。如果需要保留更高颜色精度,建议用支持有损压缩参数的桌面工具(如 ImageAlpha)或直接输出 24 位 PNG。
受浏览器内存限制。WASM 版的 pngquant + zopfli 需要把整张图片解码到内存里处理,对于 4000×4000 像素以上的大图,或原文件超过 20 MB 的 PNG,手机上可能直接崩溃,PC 上也可能卡死。建议在 2000×2000 以内、文件 5 MB 以下的 PNG 使用体验最佳。超大图请用桌面端工具或分块处理。
如果原图已经是用 pngquant 或 TinyPNG 压缩过的 8 位 PNG,再次压缩时 pngquant 会尝试重新索引颜色,但 zopfli 对已经高度压缩的数据再压缩收益极小,甚至因为重编码开销导致文件变大。另外,如果原图是 24 位但颜色极少的纯色图(如只有 10 种颜色的 UI 图标),pngquant 降色到 256 色不会减少体积,zopfli 的额外处理反而增加。
不会。所有处理代码(pngquant + zopfli 的 WASM 版本)都在浏览器本地运行,图片数据从始至终不离开本机。可以断网测试:加载页面后断开网络,仍然可以正常压缩。隐私敏感场景(如设计稿、证件照、合同截图)可以放心使用。
pngquant 降色时会把相近颜色合并到一个色表中。如果原图包含大量接近白色但略有差异的像素(如 #FFFFFF 和 #FEFEFE),合并后可能整体偏灰。另外,pngquant 默认使用「中值切割」算法,对某些渐变区域的颜色映射不够精确。解决方法:如果颜色精度要求高,可以考虑在 Photoshop 里先转成 8 位索引色并手动优化色表,再用本工具做最后的 zopfli 无损压缩。
主要耗时在 zopfli 阶段。pngquant 降色通常 0.5-2 秒,zopfli 对同一张图会尝试几千种压缩策略,耗时是普通 PNG 压缩的 50-100 倍。一张 1000×1000 的 PNG 在 PC 上约需 5-15 秒,手机浏览器可能 30-60 秒。如果觉得太慢,可以缩小图片尺寸再压缩,或者改用只做 pngquant 的工具(如 pngquant 官网的在线版)。
本工具界面只支持单文件上传。如果需要批量处理,可以考虑:1)用 pngquant 命令行工具(brew install pngquant)配合 find 命令批量处理;2)用 TinyPNG 的 API(付费,有每月免费额度);3)如果文件数量少(≤10 个),可以逐个上传,本工具不限制压缩次数。
可以,但颜色信息已经损失。pngquant 把 24 位真彩色降为 8 位索引色后,原图的渐变色细节不可恢复。如果后续需要在 Photoshop 里调色或添加图层,建议保留一份未压缩的原图。如果只是用于网页展示或微信发送,压缩后的版本足够,且再次压缩不会进一步变小(颜色数已经固定)。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。