Go bindings for libimagequant
libimagequant is a library for lossy recompression of PNG images to reduce their filesize. It is used by the
pngquant tool. This
go-imagequant project is a set of bindings for libimagequant to enable its use from the Go programming language.
This binding was written by hand. The result is somewhat more idiomatic than an automated conversion, but some
defer foo.Release() calls are required for memory management.
Usage example is provided by a sample utility
cmd/gopngquant which mimics some functionality of the upstream
The sample utility has the following options:
Usage of gopngquant: -In string Input filename -Out string Output filename -Speed int Speed (1 slowest, 10 fastest) (default 3) -Version
This package can be installed via go get:
go get code.ivysaur.me/imagequant
Import the package as
code.ivysaur.me/imagequant/v2 and compile via
This is a CGO package and requires a C compiler installed. However, if you use
go install then future invocations of
go build do not require the C compiler to be present.
imagequant.go file also declares a number of
CFLAGS for GCC that allow the included libimagequant to build in a reasonably optimal way without using the upstream configure/make scripts.
I am releasing this binding under the ISC license, however,
libimagequant itself is released under GPLv3-or-later and/or commercial licenses. You must comply with the terms of such a license when using this binding in a Go project.
- Update bundled libimagequant from 2.12.2 to 2.12.6
- Fix missing v2 in go.mod file causing failure to import in Modules mode
- go-imagequant: Update bundled libimagequant from 2.9.0 to 2.12.2
- build: Switch to Go Modules
- build: Update bundled CFLAGS for new CGo whitelist (reduces performance)
- build: Remove nonportable Cygwin makefile
- Previously tagged as 2.9go1.1
- go-imagequant: Update bundled libimagequant from 2.8.0 to 2.9.0
- go-imagequant: Separate
CGO_LDFLAGSfor Linux and Windows targets
- gopngquant: Fix an issue with non-square images
- ⬇️ go-imagequant-2.9go1.1-src.zip (56.13 KiB)
- ⬇️ gopngquant-2.9go1.1-win64.7z (497.54 KiB)
- Previously tagged as 2.8go1.0
- Initial public release
- ⬇️ go-imagequant-2.8go1.0-src.zip (55.40 KiB)
- ⬇️ gopngquant-2.8go1.0-win64.7z (497.98 KiB)