GNU General Public License v3.0

项目介绍

tjko/jpegoptim 是一个托管在 GitHub 上的开源项目,主要使用 C 编写,采用 GNU General Public License v3.0 许可证,目前获得 1.8k 个 Star、127 次 Fork。

仓库全名
tjko/jpegoptim
开源许可证
GNU General Public License v3.0
Star 数
1.8k
Fork 数
127
未关闭 Issue
11

README 摘要

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…

完整内容见 GitHub 原始 README 或本页 。

常见问题

jpegoptim 用什么语言开发?

主要使用 C 编写,采用 GNU General Public License v3.0 许可证,目前有 1.8k 个 Star。

jpegoptim 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 jpegoptim 的源码?

可以直接克隆仓库:git clone https://github.com/tjko/jpegoptim.git,默认分支为 main;安装与运行步骤见仓库 README。

jpegoptim 最近还在维护吗?

仓库最近一次更新为 1 天前,当前有 11 个未关闭 Issue;Star 数为 1.8k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

jpegoptim - utility to optimize/compress JPEG files

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
2115
价值分
1137
活跃状态
活跃

语言占比

C
CMake
Makefile
Python
Roff
Shell

Release

README

Jpegoptim v1.5.7beta - Copyright © 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 release: - new option --strip-ai (thanks to Matteo Croce) - fix handling of too long filenames when reading them from a file (–files-from) - fix potential race condition when restoring file permissions - 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= 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:
            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 [email protected] 15-Sep-2026

评论

暂无评论