jpegoptim - utility to optimize/compress JPEG files https://www.kokkonen.net/tjko/projects.html

dependabot[bot] 4552d312c2 Bump lukka/get-cmake from 3.28.3 to 3.29.2 (#174) 4 months ago
.github 4552d312c2 Bump lukka/get-cmake from 3.28.3 to 3.29.2 (#174) 4 months ago
CMake 1131b443a8 Typographical fixes. 1 year ago
redhat 22b1dd82f3 Improved JFIF marker handling (#153) 1 year ago
test a200b97749 Add initial unit tests. (#162) 11 months ago
tools 9c17d20777 Update install-sh to latest version. 1 year ago
.gitattributes 7624a5eb40 Enforce LF 1 year ago
.gitignore a200b97749 Add initial unit tests. (#162) 11 months ago
CMakeLists.txt 02d322b4d1 CMake: Do not compile/use included "getopt" if OS has native implementation. (#163) 11 months ago
COPYRIGHT 6fc9f60d5d Fix copyright notices. 2 years ago
LICENSE 07f64cb629 Update to GPL 3.0 2 years ago
Makefile.in a200b97749 Add initial unit tests. (#162) 11 months ago
README 21d626df1f Bump version to v1.5.5 1 year ago
config.h.in 782aeb4ef1 Cleanup: remove trailing whitespace 1 year ago
configure 7e3dce6924 Update configure.in and rebuild configure script. 1 year ago
configure.in 7e3dce6924 Update configure.in and rebuild configure script. 1 year ago
getopt.c 88d5891a98 cleanup, no more warnings... 22 years ago
getopt.h 86d25f6907 initial autoconf support added 22 years ago
getopt1.c 86d25f6907 initial autoconf support added 22 years ago
jpegdest.c 6fc9f60d5d Fix copyright notices. 2 years ago
jpegmarker.c 82436c39ca Merge updates from jpeginfo. 1 year ago
jpegmarker.h 234b01e882 Switch to usign same (special) marker detection as jpegoptim. 1 year ago
jpegoptim.1 22b1dd82f3 Improved JFIF marker handling (#153) 1 year ago
jpegoptim.c 21d626df1f Bump version to v1.5.5 1 year ago
jpegoptim.h 234b01e882 Switch to usign same (special) marker detection as jpegoptim. 1 year ago
jpegoptim.manifest 1131b443a8 Typographical fixes. 1 year ago
jpegsrc.c 3401f250ac Add missing skip_input_data function reference. 1 year ago
misc.c eed2482965 - Add support for reading files to be processed from standard input 1 year ago
win32_compat.h e47b04ae80 Changed lstat definition to stat 7 years ago

README


Jpegoptim v1.5.5 - Copyright (C) Timo Kokkonen, 1996-2023. All Rights Reserved.


REQUIREMENTS
Independent JPEG Group's jpeg library (libjpeg) version 6b or later.
(Alternatively 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 wanna do something like this:

tar xzvf jpegoptim-1.5.5.tar.gz
cd jpegoptim-1.5.5
./configure
make
make strip
make install


HISTORY
v1.5.5 - improved JFIF handling (it should not 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 --treshold option 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= option to enable parallel processing
fix --stdin option,
other minor fixes
v1.4.7 - experimental support for arithmetic coding (enable with
configure option --with-arith),
add option --nofix,
add support for JFIF Extension (JFXX) markers,
support for nanosecond timestamps (thanks to GerbilSoft),
optimization now works same with stdin as with standard files,
fixed --size (-S) option not working correctly when processing
multiple files,
new --keep-* options to use with --strip-all (see man page),
other minor fixes
v1.4.6 - fix double free introduced in previous release
v1.4.5 - fix --overwrite option,
better error reporting for -d option,
fix memcmp() potentially reading past end of buffer,
some minor fixes
v1.4.4 - more detailed error messages (thanks to Denis Fateyev),
CMake support (thanks to Ghostkeeper),
other minor fixes
v1.4.3 - fix bug that could cause jpegoptim crash when processing
certain jpeg files
v1.4.2 - add option -P, --preserve-perms,
some minor fixes
v1.4.1 - fix --stdin option (assume -f when reading from stdin),
workaround to bug in libjpeg-turbo (v1.3.1) triggered
when option -V or --version was used,
other minor fixes
v1.4.0 - use memory (instead of temporary files) during optimization,
support for reading input from stdin (and sending output to
stdout),
report also libjpeg version when --version option used,
new option --strip-none to preserve "all" markers,
other minor fixes & cleanup
v1.3.1 - XMP marker support and new --csv option (by Matteo Croce),
use DESTDIR instead of INSTALL_ROOT (by Samuli Suominen),
changes to make compiling under Win32 and Win64
easier (thanks to Javier Gutiérrez),
preserve permissions of files being optimized,
skip symlinks (and other special files),
other minor fixes
v1.3.0 - support for progressive jpegs added (fixes long standing
"bug" of progressive jpegs becoming non-progressive during
optimization),
new options --all-normal & --all-progressive for
converting jpegs to non-progressive & progressive,
new -S / --size option to set target size for output
file (enables lossy optimization),
updated GPL/Copyrights language (thanks to Nicolas Vieville)
v1.2.5 - safer temp file handling (if mkstemps() available),
patch to make "quiet mode" (-q) be quiet by Mathieu Malaterre
v1.2.4 - new -T / --threshold option by Matteo Croce,
minor fixes (potential memory leaks),
merged some patches from Debian jpegoptim package (1.2.3-2)
v1.2.3 - IPTC marker support by Dustin Ward,
ICC profile support by Dwight Kelly,
minor fixes
v1.2.2 - Now Exif and COM markers are not discarded
(all other markers are discarded as before).
New options --strip-all, --strip-exif, and --strip-com
added for controlling what markers to strip.
v1.2.1 - fixed buggy temp file handling
v1.2.0 - Added new options --overwrite and --preserve.
GNU autoconf support added, also.
v1.1 - new -f option, and other minor changes, improved
support for other platforms
v1.0a - some changes in docs & makefile
v1.0 - first public release



LATEST VERSION

Latest version is always available from:
http://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 for following Github Sponsors that have supported jpegoptim:

- midir99



Timo
09-Aug-2023