Node.js + pngquant 图片压缩
pngquant 是一个 PNG 图像压缩工具,通过量化算法减小文件大小,同时保持图像质量和透明度。
安装
官网下载:https://pngquant.org
原理简介
使用改进的 Median Cut 量化算法减少颜色数量 + Voronoi 迭代(K-means) 校正颜色 + 选择性误差扩散。通过减少 PNG 的调色板颜色数来降低文件大小。
Node.js 调用(child_process)
js
import { exec } from 'child_process'
// 基本压缩
exec('pngquant input.png --output output.png')常用参数
js
// 控制质量(0-100,值越大质量越高文件越大)
exec('pngquant input.png --quality=82 --output output.png')
// 配合 execSync
import { execSync } from 'child_process'
execSync(`pngquant 73kb.png --output compressed.png`, { stdio: 'inherit' })效果示例:73KB → 22KB(约压缩 70%)
| 参数 | 说明 |
|---|---|
--output | 输出文件路径 |
--quality=N | 图片质量 0-100,值越大效果越好文件越大 |
--speed=N | 速度 1-11,1 最慢(压缩率最高),11 最快 |
--force | 覆盖已存在的输出文件 |