Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
JPEGOPTIM(1)		    General Commands Manual		  JPEGOPTIM(1)

NAME
       jpegoptim - utility to optimize/compress	JPEG/JFIF files.

SYNOPSIS
       jpegoptim [ options ] [ filenames ]

DESCRIPTION
       jpegoptim  is  used  to	optimize/compress jpeg files. Program supports
       lossless	optimization, which is based on	optimizing the Huffman tables.
       And so called "lossy" optimization  where  in  addition	to  optimizing
       Huffman tables user can specify upperlimit for image quality.

       NOTE!  By default jpegoptim modifies the	input files (if	they are opti-
       mized), to preserve original files use option -d	to  specify  alternate
       directory for saving the	optimized files	to.

       Only  normal  files are optimized (symbolic links and special files are
       skipped).  Also,	any other hard links to	the file being	optimized  (as
       created using link(2)) are unaffected.

OPTIONS
       Options	may be either the traditional POSIX one	letter options,	or the
       GNU style long options.	POSIX style options start with a single	``-'',
       while GNU long options start with ``--''.

       Options offered by jpegoptim are	the following:

       -d<path>, --dest=<path>
	     Sets alternative destination directory where  to  save  optimized
	     files  (default  is to overwrite the originals). Please note that
	     unchanged files won't be added to the destination directory. This
	     means if the source file can't be compressed,  no	file  will  be
	     created in	the destination	path.

       -f, --force
	     Force  optimization,  even	if the result would be larger than the
	     original file.

       -h, --help
	     Displays short usage information and exits.

       -m<quality>, --max=<quality>
	     Sets the maximum image quality factor  (disables  lossless	 opti-
	     mization mode, which is by	default	enabled). This option will re-
	     duce  quality  of those source files that were saved using	higher
	     quality setting.  While files that	 already  have	lower  quality
	     setting  will  be	compressed  using  the	lossless  optimization
	     method.

	     Valid values for quality parameter	are: 0 - 100

       -n, --noaction
	     Don't really optimize files, just print results.

       -S<size>, --size=<size>
	     Try to optimize file to given size	(disables  lossless  optimiza-
	     tion  mode). Target size is specified either in kilobytes (1 - n)
	     or	as percentage (1% - 99%) of the	original file size.

       -T<threshold>, --threshold=<threshold>
	     Keep the file unchanged if	the compression	gain is	lower than the
	     threshold (%).

	     Valid values for threshold	are: 0 - 100

       -w<max>,	--workers=<max>
	     Set the maximum number of parallel	processes to launch.  (Default
	     is	1)

       -b, --csv
	     Print progress info in CSV	format.

       -o, --overwrite
	     Overwrite target file even	if it exists (when using -d option).

       -p, --preserve
	     Preserve file modification	times.

       -P, --preserve-perms
	     Preserve file permissions (owner/group) by	overwriting the	origi-
	     nal file. This is slightly	less safe than the default mode	of op-
	     eration (where new	file is	first saved as temporary file and then
	     renamed  over  the	 original file).  In this mode a backup	of the
	     original file is made with	 .jpegoptim.bak	 extension,  and  this
	     file is removed after the original	file has been successfully re-
	     placed.  NOTE! if running jpegoptim as root there is generally no
	     need  to  use  this option, as jpegoptim is able to preserve file
	     permissions when run by root in default mode.

       -q, --quiet
	     Quiet mode.

       -t, --totals
	     Print totals after	processing all files.

       -v, --verbose
	     Enables verbose mode (positively chatty).

       --all-normal
	     Force all output files to be non-progressive. Can be used to con-
	     vert all input files to  non-progressive  JPEGs  when  used  with
	     --force option.

       --all-progressive
	     Force  all	output files to	be progressive.	Can be used to convert
	     all normal	(non-progressive) JPEGs	 input	files  to  progressive
	     when used with --force option.

       --all-arith
	     Force  all	output files to	use Arithmetic Coding.	This option is
	     experimental and only available if	jpegoptim  was	compiled  with
	     Arithmetic	Coding support enabled.

       --all-huffman
	     Force all output files to use (traditional) Huffman coding.  This
	     option  is	 experimental and only available if jpegoptim was com-
	     piled with	Arithmetic Coding support enabled.

       --nofix
	     Skip processing of	any input files	that have any  errors/warnings
	     during decompression.  By default jpegoptim will attempt to opti-
	     mize  any	file that it is	able to	decompress, even if decompres-
	     sion generates warnings. This will	'fix' some (corrupt) JPEG  im-
	     ages  automatically.   If this behaviour is not desired, this op-
	     tion can be used to make jpegoptim	to skip	any input  files  that
	     contain any errors.

       --stdout
	     Send  output  image  to  standard	output.	 Note, if optimization
	     didn't create smaller file	than the input file,  then  no	output
	     original  image  is  passed  through unmodified (except any extra
	     data after	JPEG image will	be discarded).

       --stdin
	     Read input	image from standard input and send output to  standard
	     output (--stdout is assumed when this option is used).  When this
	     option  is	 used then only	one image is read from standard	input.
	     Any (other) input files specified on  command-line	 are  ignored.
	     Note, if input file '-' is	seen on	command	line then standard in-
	     put is also assumed.

       --files-stdin
	     Read  names of files to process from standard input. One filename
	     per line.

       --files-from=<filename>
	     Read names	of files to process from  a  file.  One	 filename  per
	     line.

METADATA OPTIONS
       By  default jpetoptim will keep common metadata (JPEG markers) and dis-
       card any	other (unknown ones).

       Following markers are kept by default:
	- EXIF
	- IPTC
	- ICC
	- XMP
	- COM (JPEG Comment markers)

       JFIF marker will	be regenerated (by libjpeg) during the	process	 (this
       cannot  be changed).  However, Adobe marker is also generated (or omit-
       ted) by libjpeg based on	the image colorspace, etc.  This behavior  de-
       pends  on libjpeg library version being used. To	make sure Adobe	marker
       is preserved option --keep-adobe	can be used.

       To remove additional markers one	or more	the --strip-* options  can  be
       used.

       For example:	 --strip-icc --strip-xmp --strip-com

       Alternatively  it  is  possible	to specify --strip-all and then	one or
       more of the --keep-* options to explicitly list which markers to	keep

       For example:	 --strip-all --keep-exif --keep-iptc

       Options for controlling metadata	(markers) in output files:

       -s, --strip-all
	     Strip all markers from output file. (NOTE!	by default  only  Com-
	     ment  &  Exif/IPTC/PhotoShop/ICC/XMP markers are kept, everything
	     else is discarded).  Output JPEG still likely will	 contains  one
	     or	 two  markers  (JFIF  and Adobe	APP14) depending on colorspace
	     used in the image,	as these markers are generated by the  libjpeg
	     encoder automatically.

       --strip-none, --keep-all
	     Preserve  "all" markers in	the image. This	will leave all markers
	     untouched in the image, except  JFIF  (APP0)  and	Adobe  (APP14)
	     markers as	those get regenerated by the libjpeg library.

	     NOTE!  If	this  option  is specified then	any other --strip-* or
	     --keep-* options are ignored.

       --strip-com
	     Strip Comment (COM) markers from output file.

       --strip-exif
	     Strip EXIF	markers	from output file.

       --strip-iptc
	     Strip IPTC	/ Adobe	Photoshop (APP13) markers from output file.

       --strip-icc
	     Strip ICC profiles	from output file.

       --strip-xmp
	     Strip XMP profiles	from output file.

       --strip-jfif
	     Strip JFIF	markers	from output file.

       --strip-jfxx
	     Strip JFXX	(JFIF Extensions) markers from output file.

       --strip-Adobe
	     Strip Adobe markers from output file.

       --keep-com
	     Do	not strip any Comment (COM) markers from output	file.

       --keep-exif
	     Do	not strip any EXIF markers from	output file.

       --keep-iptc
	     Do	not strip any IPTC / Adobe Photoshop (APP13) markers from out-
	     put file.

       --keep-icc
	     Do	not strip any ICC profiles from	output file.

       --keep-xmp
	     Do	not strip any XMP profiles from	output file.

       --strip-jfif
	     Do	not strip any JFIF markers from	output file.

       --strip-jfxx
	     Do	not strip any JFXX (JFIF Extensions) markers from output file.

       --keep-Adobe
	     Do	not strip Adobe	markers	from output file.

BUGS
       When using --size option, resulting file	is not always exactly the  re-
       quested	size. Workaround is to re-run jpegoptim	on the same file again
       which often will	result file closer to target size.

SEE ALSO
       jpeginfo(1)

AUTHOR
       Timo Kokkonen <tjko@iki.fi>

COPYING
       Copyright (C) 1996-2023	Timo Kokkonen

       This program is free software; you can redistribute it and/or modify it
       under the terms of the GNU General Public License as published  by  the
       Free  Software Foundation; either version 2 of the License, or (at your
       option) any later version.
	This program is	distributed in the hope	that it	will  be  useful,  but
       WITHOUT	ANY  WARRANTY;	without	 even  the  implied  warranty  of MER-
       CHANTABILITY or FITNESS FOR A PARTICULAR	PURPOSE.  See the GNU  General
       Public License for more details.
	You  should  have  received  a	copy of	the GNU	General	Public License
       along with this program;	if not,	write to the Free Software Foundation,
       Inc., 51	Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

4th Berkeley Distribution	  21 Jun 2023			  JPEGOPTIM(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=jpegoptim&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help