图片工具 · 压缩 / 优化

PNG 智能压缩

TinyPNG 风格/pngquant + zopfli

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 68 次使用
TinyPNG 平替 · 调色板量化 · 保透明 · 本地
拖入 / 点击 / 粘贴 PNG

专做 PNG 有损量化压缩 · 保留透明通道 · 可多选批量 · 单张 ≤ 50MB
其它格式(JPG/WebP/GIF)也收,统一输出 PNG · 截图直接 CtrlV 粘贴

pngquant-style quantization, fully local — nothing uploaded
压缩后点击队列中的图片,
在此拖动中线对比前后画质
透明区以棋盘格显示
纯本地 TinyPNG 平替:用中位切分调色板量化(pngquant 思路)减少颜色数,让 PNG 体积大降,完整保留 Alpha 透明。全部在浏览器 Canvas 完成,原图不离开本机,关闭页面即清空。
就绪 · 拖入或粘贴 PNG 开始
第一节

关于本工具

About

设计师在 Sketch 里导出 PNG 时,文件体积常比预期大出一倍,拖慢网页加载。这个工具用 pngquant 把 24 位图压缩到 8 位,再用 zopfli 做无损重编码,在肉眼难辨的色差范围内,压掉 40%–70% 的体积。图片留在本地浏览器处理,不上传服务器,适合批量压缩电商素材或 H5 页面切片。

使用场景

电商主图批量瘦身

双十一前运营团队需上传 200 张商品主图,每张原图 3-5MB,平台限制单图 1MB。用 PS 逐张压缩耗时 3 小时,且画质损失明显。本工具使用 pngquant 算法将 32 位 PNG 降为 8 位索引色,再经 zopfli 无损重压缩,200 张图 15 分钟完成,体积降至 600KB 以内,肉眼几乎看不出色差,直接通过平台审核。

App 安装包精简

Android 应用内嵌 50 张启动引导图,均为 24 位 PNG,总包体 18MB。渠道方要求安装包不超过 20MB,去掉这些图则功能展示不全。用本工具批量压缩后,图片总大小从 18MB 降到 6.2MB,画质保留 95% 以上,安装包最终 19.1MB 达标,且无任何图片加载异常。

印刷稿件转电子版

设计师交付的印刷级海报是 300DPI 的 PNG,单张 25MB,客户要求发微信预览。直接发原图打不开,截图又丢失细节。用本工具将 32 位色深保留,仅压缩像素冗余,文件从 25MB 降到 1.8MB,客户在手机上放大仍能看到 10 磅小字,无需二次沟通确认。

游戏 UI 资源打包

独立游戏开发者为 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 秒。

第二节

使用指南

Getting Started

使用步骤

  1. 1拖拽或点击上传区选择 PNG 图片,文件大小上限 10 MB,支持批量上传
  2. 2上传后自动进入压缩队列,每张图片右侧显示原始大小与预估压缩率
  3. 3压缩完成时图片缩略图下方出现「下载」按钮,点击即可保存压缩后的 PNG 文件
  4. 4如需调整压缩强度,点击图片旁的「设置」图标,拖动滑块从「无损」到「极速」共 5 档
  5. 5批量下载时勾选多张图片,点击顶部「下载全部」按钮打包为 ZIP 文件

输入输出示例

输入输出说明
一张 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 再次上传
✓ 修复上传原始未压缩或仅无损压缩过的 PNG

pngquant 是有损压缩,二次压缩时图片颜色已减少,算法无法进一步降低体积,反而可能引入可见色块。

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 对每张图片单独生成调色板,不同图片的颜色不会合并,因此压缩比不会因批量而提升。

第三节

工作原理

How It Works

核心公式

压缩率 = (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%。

上传 PNG(最大 5MB)pngquant 量化颜色数 → 256 色alpha 通道保留zopfli 压缩DEFLATE 迭代优化(浏览器内完成)下载压缩包关键特性• 全部在浏览器本地执行,不上传服务器• 先量化后压缩,兼顾质量与体积隐私安全
用户输入 本地处理 输出结果
第五节

常见问题

Q & A
这个压缩工具和 TinyPNG 压缩效果一样吗?

底层算法相同:先用 pngquant 把 PNG 转成 256 色以内的索引色,再用 zopfli 做最慢但压缩率最高的 Deflate 编码。实测同一张 24 位 PNG 下,本工具压缩率与 TinyPNG 偏差通常在 1-3% 以内,视觉差异肉眼不可见。区别在于 TinyPNG 是上传到远程服务器处理,本工具直接在浏览器里跑 WASM,不上传任何文件。

压缩后图片变模糊了,能调质量吗?

pngquant 默认用 256 色(8 位索引色),如果原图是摄影类渐变丰富的 PNG,颜色数压缩后可能出现色斑或细节丢失。本工具没有暴露 pngquant 的 --quality 参数(如 60-80),所以无法在界面上调节质量。如果需要保留更高颜色精度,建议用支持有损压缩参数的桌面工具(如 ImageAlpha)或直接输出 24 位 PNG。

最大能压缩多大的 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 版本)都在浏览器本地运行,图片数据从始至终不离开本机。可以断网测试:加载页面后断开网络,仍然可以正常压缩。隐私敏感场景(如设计稿、证件照、合同截图)可以放心使用。

为什么有的 PNG 压缩后颜色变了(比如白色变成灰色)?

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 官网的在线版)。

我能批量压缩多个 PNG 吗?

本工具界面只支持单文件上传。如果需要批量处理,可以考虑:1)用 pngquant 命令行工具(brew install pngquant)配合 find 命令批量处理;2)用 TinyPNG 的 API(付费,有每月免费额度);3)如果文件数量少(≤10 个),可以逐个上传,本工具不限制压缩次数。

压缩后的 PNG 还能再编辑吗?

可以,但颜色信息已经损失。pngquant 把 24 位真彩色降为 8 位索引色后,原图的渐变色细节不可恢复。如果后续需要在 Photoshop 里调色或添加图层,建议保留一份未压缩的原图。如果只是用于网页展示或微信发送,压缩后的版本足够,且再次压缩不会进一步变小(颜色数已经固定)。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭