pngquant-bin

`pngquant` wrapper that makes it seamlessly available as a local dependency

Usage no npm install needed!

<script type="module">
  import pngquantBin from 'https://cdn.skypack.dev/pngquant-bin';
</script>

README

pngquant-bin GitHub Actions Status

pngquant is a PNG compressor that significantly reduces file sizes by converting images to a more efficient 8-bit PNG format

You probably want imagemin-pngquant instead.

Install

$ npm install pngquant-bin

Make sure you have the correct version of libimagequant.

# via Homebrew for macOS
$ brew install libimagequant

# via apt-get for Debian distributions
$ sudo apt-get install libimagequant-dev

Usage

import {execFile} from 'node:child_process';
import pngquant from 'pngquant-bin';

execFile(pngquant, ['-o', 'output.png', 'input.png'], error => {
    console.log('Image minified!');
});

CLI

$ npm install --global pngquant-bin
$ pngquant --help

Updating pre-compiled binaries

The Linux binaries are statically linked so they should work on all Linux distributions. To recompile them:

  1. sudo apt-get install libpng-dev
  2. ./configure CFLAGS=-static && make && cp pngquant pngquant-64
  3. Repeat the above commands, but in a 32-bin docker container started with: docker run -ti -v pwd:/source i386/debian:9.3 bash