Skip to content

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覆盖已存在的输出文件