Precompiled binaries for image_optim
.
Contains binaries for Mac OS X (>= 10.9, x86_64) and Linux (x86_64).
A test application with latest image_optim
and image_optim_pack
is available on render: https://iopack.onrender.com/.
- advpng by Andrea Mazzoleni and Filipe Estima (GNU GPLv3)
- contains parts of 7z by Igor Pavlov with modifications by Andrea Mazzoleni (license)
- and zopfli by Lode Vandevenne and Jyrki Alakuijala (license, contributors)
- gifsicle by Eddie Kohler (GNU GPLv2)
- jhead by Matthias Wandel (public domain)
- jpeg-recompress by Daniel G. Taylor (license)
- includes Image Quality Assessment (IQA) by Tom Distler (license)
- includes SmallFry by Derek Buitenhuis (license)
- statically linked against mozjpeg, see below
- jpegoptim by Timo Kokkonen (GNU GPLv2 or later)
- libjpeg and jpegtran by the Independent JPEG Group (license)
- libjpeg-turbo by libjpeg-turbo Project (license)
- based on libjpeg, see above
- includes x86 SIMD extension for IJG JPEG library by Miyasaka Masaru (license)
- liblcms2 by Marti Maria (license)
- libpng by Guy Eric Schalnat, Andreas Dilger, Glenn Randers-Pehrson and others (license)
- mozjpeg by Mozilla Research (license)
- base on libjpeg and libjpeg-turbo, see above
- optipng by Cosmin Truta (license, authors)
- oxipng by Joshua Holmer (license)
- pngcrush by Glenn Randers-Pehrson, portions by Greg Roelofs (license)
- pngout by Ken Silverman (license)
- Linux and BSD ports by Jonathon Fowler (http://www.jonof.id.au/pngout)
- Mac OS X port by Ken Silverman, with assistance by Jonathon Fowler
- pngquant by Kornel Lesiński based on code by Greg Roelofs and Jef Poskanzer after an idea by Stefan Schneider (license)
- zlib by Jean-Loup Gailly and Mark Adler (license)
NOTE: On FreeBSD and OpenBSD make
is not the GNU Make, so gmake
should be used instead.
You can download all source code using gnu make download target:
make download
gem install image_optim image_optim_pack
Or add to your Gemfile
:
gem 'image_optim'
gem 'image_optim_pack'
Mac OS X binaries and libraries are built on host, others using containers.
script/run # Build and test all for all oses and architectures
script/run NO_HALT=1 # Don't halt VMs after building
script/run NO_UP=1 # Don't start VMs before building (will fail if not already running)
script/run darwin 64 # Build only platforms matching darwin or 64
make # Build all tools and copy them to vendor/OS-ARCH for current OS and ARCH, then test
make all # same
script/livecheck # Check versions
make update-versions # Update versions in Makefile
make download # Download archives
make download-tidy-up # Remove old archives
make build # Build all without copying to output directory
make test # Test bins for current os/arch
make test -i # Continue if one of bins fail
make clean # Remove build and output directories for current os/arch
make clean-all # Remove build root and output root directories
make clobber # `clean-all` and remove download directory
This project includes a Dockerfile
in the root, which builds a minimal image with most binaries included.
docker run --rm ghcr.io/toy/image_optim --version # image_optim version
docker run --rm ghcr.io/toy/image_optim --info # image_optim info including bin versions
docker run --rm -v "$PWD":/here -w /here ghcr.io/toy/image_optim image-in-this-folder.jpg
make docker-build # will be tagged with latest and current date in format %Y%m%d
make docker-push # will push tags created by docker-build
Copyright (c) 2014-2024 Ivan Kuchin. See LICENSE.txt for details.