README
September 16, 2026 · View on GitHub
Jpegoptim v1.5.7beta - Copyright (C) Timo Kokkonen, 1996-2026. All Rights Reserved.
REQUIREMENTS Independent JPEG Group's jpeg library (libjpeg) version 6b or later. (Alternatively, it should also work with libjpeg-turbo or mozjpeg)
TESTED PLATFORMS Linux macOS Windows (setargv.obj "link option" is needed for wildcards expansion to work)
INSTALLATION Installation should be very straightforward, just unpack the tar file, make necessary changes to the Makefile, and then compile the program. You may want to do something like this:
tar xzvf jpegoptim-1.5.7.tar.gz
cd jpegoptim-1.5.7
./configure
make
make strip
make install
HISTORY
v1.5.7 - 30th Aniversary (bug fix) release:
- fix to --auto-mode sometimes getting stuck in a loop
- fix --workers (and --retry) option processing
- fix --auto-mode only applying to first file (regression)
- fix duplicate output when using multipler workers/threads
- fix potential hang (deadlock) in wait_for_worker()
- fix potential security issue with symlink following during
file creation
- improved error handling if write fails when using -P option
- better -S, --size option argument validation
- fix undefined behavior after longjmp()
- fix --auto-mode combined with -m recompressing its own lossy output
- fix NITF marker processing
- safer temp file cretation on platforms withouth mkstemps()
- output --help output to stdout (thanks to diimdeep)
- count unexpected worker process exit codes as errors in parallel mode
- honor --save-extra topsion als in --stdout mode
- fix snprintf macro fo old MSVC versions
- fix calling realpath() with potentially too small buffer
- add CSV output escaping (RFC 4180)
- other minor fixes
v1.5.6 - add new option -r, --retry,
add new option --save-extra,
add new option --auto-mode,
processing image from standard input now behaves the same as from a file,
other minor fixes
v1.5.5 - improved JFIF handling (it should no longer get added
in some instances if it was not present in original),
new options --keep-jfif and --strip-jfif,
other minor fixes
v1.5.4 - make sure JPEG mode (progressive vs non-progressive) is
preserved by default,
fix parallel processing when reading file list
(thanks to Cubittus)
v1.5.3 - fix potential heap-buffer-overflow (read) when using
stdin/stdout and processing corrupt JPEG
v1.5.2 - add support for reading list of files to process from a file
(--files-from) or from standard input (--files-stdin),
improved JPEG marker reporting,
fix -d, --dest option (thanks to Almas Kunapyanov),
other minor fixes
v1.5.1 - fix logging to stdout when --stdout is used (thanks to Eta),
improved CMake support (and GitHub CI stuff) (thanks to Eta),
update --threshold option to accept decimal numbers as parameter,
fix crashes when processing certain broken JPEG images,
fix memory leaks,
fix (logging) output in parallel processing mode
v1.5.0 - add --workers=
LATEST VERSION
Latest version is always available from:
https://www.iki.fi/tjko/projects.html
Sources (GIT)
https://github.com/tjko/jpegoptim
ACKNOWLEDGEMENT
This software is based in part on the work of the Independent JPEG Group.
SPONSORS
Special thanks to the following GitHub Sponsors that have supported jpegoptim:
- midir99
Timo tjko@iki.fi 15-Sep-2026