将图片压缩到指定大小

不用再靠猜测调整质量滑块。告诉它你需要的大小,比如 100 KB,它会自动找到符合要求的最高质量,并默认保留图片原始的宽度和高度。

点击选择图片,拖放到此处,或使用 Ctrl+V 粘贴

支持 JPG、PNG、WebP。文件保留在你的设备上,不会上传。

允许调整尺寸
默认关闭,保留原始宽高。开启后可同时缩小尺寸,适用于仅靠降低质量无法达到的更小目标。

生成后,压缩后的图片将显示在这里。

对于 JPEG/WebP 格式,工具会在图片原始尺寸下用二分法搜索合适的质量。如果“允许调整尺寸”关闭,且仅靠质量无法达到目标,你将得到在不改变尺寸的前提下能生成的最小文件。PNG 是无损格式,要达到较小的目标大小需要开启调整尺寸功能。JPEG 或 WebP 能在保持原始尺寸的同时更接近较小的目标大小。

工作原理

针对 JPEG 和 WebP 的质量搜索会进行八轮二分查找,遍历编码器的质量参数:以 0.5 编码,比较字节数与目标大小,再根据结果向上或向下折半区间重新编码。八轮足以将质量值精确到其完整范围的约 0.4% 以内,这也是为什么结果通常会略低于目标值而不是远低于目标值。启用调整尺寸后,同样的搜索会在逐步缩小的尺寸下重复进行,每步缩小 15%,直到找到仅凭质量就能补齐差距的比例。

PNG 需要完全不同的处理方式,因为浏览器画布编码器只会写出完整真彩色文件,完全没有质量旋钮。因此本页面自带了一个索引色 PNG 编码器:中位切分量化器构建出一个 128 到 8 种代表色的调色板,Floyd-Steinberg 抖动算法扩散舍入误差以避免渐变出现明显色带,调色板索引通过浏览器原生的 CompressionStream 压缩并逐字节写入有效的 3 色类型 PNG,每像素只占一个字节而不是三或四个。这与 pngquant 和 TinyPNG 使用的是同一种技术。

这一切都在本标签页内存中的画布上运行。你可以自行验证:打开开发者工具,切换到网络面板,压缩一张图片。无论方向如何,都没有任何请求携带你的图片,断网状态下工具依然能正常工作。

来自博客: 如何在不损失画质的情况下压缩图片