1JPEGOPTIM(1)                General Commands Manual               JPEGOPTIM(1)
2
3
4

NAME

6       jpegoptim - utility to optimize/compress JPEG/JFIF files.
7
8
9

SYNOPSIS

11       jpegoptim [ options ] [ filenames ]
12
13

DESCRIPTION

15       jpegoptim  is  used  to  optimize/compress jpeg files. Program supports
16       lossless optimization, which is based on optimizing the Huffman tables.
17       And  so  called  "lossy"  optimization  where in addition to optimizing
18       Huffman tables user can specify upperlimit for image quality.
19
20       NOTE! By default jpegoptim modifies the input files (if they are  opti‐
21       mized),  to  preserve original files use option -d to specify alternate
22       directory for saving the optimized files to.
23
24       Only normal files are optimized (symbolic links and special  files  are
25       skipped).   Also,  any other hard links to the file being optimized (as
26       created using link(2)) are unaffected.
27
28
29

OPTIONS

31       Options may be either the traditional POSIX one letter options, or  the
32       GNU style long options.  POSIX style options start with a single ``-'',
33       while GNU long options start with ``--''.
34
35       Options offered by jpegoptim are the following:
36
37       -d<path>, --dest=<path>
38             Sets alternative destination directory where  to  save  optimized
39             files  (default  is to overwrite the originals). Please note that
40             unchanged files won't be added to the destination directory. This
41             means  if  the  source  file can't be compressed, no file will be
42             created in the destination path.
43
44       -f, --force
45             Force optimization, even if the result would be larger  than  the
46             original file.
47
48       -h, --help
49             Displays short usage information and exits.
50
51       -m<quality>, --max=<quality>
52             Sets  the  maximum  image quality factor (disables lossless opti‐
53             mization mode, which is by default enabled). This option will re‐
54             duce  quality  of those source files that were saved using higher
55             quality setting.  While files that  already  have  lower  quality
56             setting  will  be  compressed  using  the  lossless  optimization
57             method.
58
59             Valid values for quality parameter are: 0 - 100
60
61       -n, --noaction
62             Don't really optimize files, just print results.
63
64       -S<size>, --size=<size>
65             Try to optimize file to given size (disables  lossless  optimiza‐
66             tion  mode). Target size is specified either in kilobytes (1 - n)
67             or as percentage (1% - 99%) of the original file size.
68
69       -T<threshold>, --threshold=<threshold>
70             Keep the file unchanged if the compression gain is lower than the
71             threshold (%).
72
73             Valid values for threshold are: 0 - 100
74
75       -w<max>, --workers=<max>
76             Set  the maximum number of parallel processes to launch. (Default
77             is 1)
78
79
80       -b, --csv
81             Print progress info in CSV format.
82
83       -o, --overwrite
84             Overwrite target file even if it exists (when using -d option).
85
86       -p, --preserve
87             Preserve file modification times.
88
89       -P, --preserve-perms
90             Preserve file permissions (owner/group) by overwriting the origi‐
91             nal file. This is slightly less safe than the default mode of op‐
92             eration (where new file is first saved as temporary file and then
93             renamed  over  the  original file).  In this mode a backup of the
94             original file is made with  .jpegoptim.bak  extension,  and  this
95             file is removed after the original file has been successfully re‐
96             placed.  NOTE! if running jpegoptim as root there is generally no
97             need  to  use  this option, as jpegoptim is able to preserve file
98             permissions when run by root in default mode.
99
100       -q, --quiet
101             Quiet mode.
102
103       -t, --totals
104             Print totals after processing all files.
105
106       -v, --verbose
107             Enables verbose mode (positively chatty).
108
109
110       --all-normal
111             Force all output files to be non-progressive. Can be used to con‐
112             vert  all  input  files  to  non-progressive JPEGs when used with
113             --force option.
114
115       --all-progressive
116             Force all output files to be progressive. Can be used to  convert
117             all  normal  (non-progressive)  JPEGs  input files to progressive
118             when used with --force option.
119
120
121       --all-arith
122             Force all output files to use Arithmetic Coding.  This option  is
123             experimental  and  only  available if jpegoptim was compiled with
124             Arithmetic Coding support enabled.
125
126       --all-huffman
127             Force all output files to use (traditional) Huffman coding.  This
128             option  is  experimental and only available if jpegoptim was com‐
129             piled with Arithmetic Coding support enabled.
130
131
132       --nofix
133             Skip processing of any input files that have any  errors/warnings
134             during decompression.  By default jpegoptim will attempt to opti‐
135             mize any file that it is able to decompress, even  if  decompres‐
136             sion  generates warnings. This will 'fix' some (corrupt) JPEG im‐
137             ages automatically.  If this behaviour is not desired,  this  op‐
138             tion  can  be used to make jpegoptim to skip any input files that
139             contain any errors.
140
141
142
143       --stdout
144             Send output image  to  standard  output.  Note,  if  optimization
145             didn't  create  smaller  file than the input file, then no output
146             original image is passed through  unmodified  (except  any  extra
147             data after JPEG image will be discarded).
148
149
150       --stdin
151             Read  input image from standard input and send output to standard
152             output (--stdout is assumed when this option is used).  When this
153             option  is  used then only one image is read from standard input.
154             Any (other) input files specified on  command-line  are  ignored.
155             Note, if input file '-' is seen on command line then standard in‐
156             put is also assumed.
157
158
159       --files-stdin
160             Read names of files to process from standard input. One  filename
161             per line.
162
163
164       --files-from=<filename>
165             Read  names  of  files  to  process from a file. One filename per
166             line.
167
168
169

METADATA OPTIONS

171       By default jpetoptim will keep common metadata (JPEG markers) and  dis‐
172       card any other (unknown ones).
173
174       Following markers are kept by default:
175        - EXIF
176        - IPTC
177        - ICC
178        - XMP
179        - COM (JPEG Comment markers)
180
181       JFIF  marker  will be regenerated (by libjpeg) during the process (this
182       cannot be changed).  However, Adobe marker is also generated (or  omit‐
183       ted)  by libjpeg based on the image colorspace, etc.  This behavior de‐
184       pends on libjpeg library version being used. To make sure Adobe  marker
185       is preserved option --keep-adobe can be used.
186
187       To  remove  additional markers one or more the --strip-* options can be
188       used.
189
190       For example:      --strip-icc --strip-xmp --strip-com
191
192
193       Alternatively it is possible to specify --strip-all  and  then  one  or
194       more of the --keep-* options to explicitly list which markers to keep
195
196       For example:      --strip-all --keep-exif --keep-iptc
197
198
199       Options for controlling metadata (markers) in output files:
200
201
202       -s, --strip-all
203             Strip  all  markers from output file. (NOTE! by default only Com‐
204             ment & Exif/IPTC/PhotoShop/ICC/XMP markers are  kept,  everything
205             else  is  discarded).  Output JPEG still likely will contains one
206             or two markers (JFIF and Adobe  APP14)  depending  on  colorspace
207             used  in the image, as these markers are generated by the libjpeg
208             encoder automatically.
209
210       --strip-none, --keep-all
211             Preserve "all" markers in the image. This will leave all  markers
212             untouched  in  the  image,  except  JFIF (APP0) and Adobe (APP14)
213             markers as those get regenerated by the libjpeg library.
214
215             NOTE! If this option is specified then  any  other  --strip-*  or
216             --keep-* options are ignored.
217
218
219       --strip-com
220             Strip Comment (COM) markers from output file.
221
222       --strip-exif
223             Strip EXIF markers from output file.
224
225       --strip-iptc
226             Strip IPTC / Adobe Photoshop (APP13) markers from output file.
227
228       --strip-icc
229             Strip ICC profiles from output file.
230
231       --strip-xmp
232             Strip XMP profiles from output file.
233
234       --strip-jfif
235             Strip JFIF markers from output file.
236
237       --strip-jfxx
238             Strip JFXX (JFIF Extensions) markers from output file.
239
240       --strip-Adobe
241             Strip Adobe markers from output file.
242
243
244
245       --keep-com
246             Do not strip any Comment (COM) markers from output file.
247
248       --keep-exif
249             Do not strip any EXIF markers from output file.
250
251       --keep-iptc
252             Do not strip any IPTC / Adobe Photoshop (APP13) markers from out‐
253             put file.
254
255       --keep-icc
256             Do not strip any ICC profiles from output file.
257
258       --keep-xmp
259             Do not strip any XMP profiles from output file.
260
261       --strip-jfif
262             Do not strip any JFIF markers from output file.
263
264       --strip-jfxx
265             Do not strip any JFXX (JFIF Extensions) markers from output file.
266
267       --keep-Adobe
268             Do not strip Adobe markers from output file.
269
270
271
272

BUGS

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

SEE ALSO

280       jpeginfo(1)
281
282

AUTHOR

284       Timo Kokkonen <tjko@iki.fi>
285
286

COPYING

288       Copyright (C) 1996-2023  Timo Kokkonen
289
290       This program is free software; you can redistribute it and/or modify it
291       under  the  terms of the GNU General Public License as published by the
292       Free Software Foundation; either version 2 of the License, or (at  your
293       option) any later version.
294        This  program  is  distributed in the hope that it will be useful, but
295       WITHOUT ANY  WARRANTY;  without  even  the  implied  warranty  of  MER‐
296       CHANTABILITY  or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
297       Public License for more details.
298        You should have received a copy of  the  GNU  General  Public  License
299       along with this program; if not, write to the Free Software Foundation,
300       Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
301
302
303
3044th Berkeley Distribution         21 Jun 2023                     JPEGOPTIM(1)
Impressum