jpeginfo - Man Page

prints information and tests integrity of JPEG/JFIF files.


jpeginfo [ options ] [ filenames ]


jpeginfo is used to generate informative listings of jpeg files, and also to check jpeg files for errors. Program also supports automatic deletion of broken jpegs.

Output Formats

jpeginfo supports several different output formats. Default formats are meant to be displayed on screen, while there is also CSV and JSON formats that are easier to parse by another program.

While CSV and JSON formats always display all "columns", other formats don't display columns that do not have any data. For example if -c option is not used to check JPEG integrity, then the `status` (and `details`) columns won't be displayed.

Similarly if MD5/SHA-2 checksum (hash) is not calculated, then that column will not be shown.

Default Format

Default output format:

<filename> <image_width> x <image_height> <colordepth> <progressive_vs_normal> <markers> <size>

$ jpeginfo *.jpeg
IMG_1439.jpeg                    3282 x 3024 24bit N JFIF,Exif                2961607
IMG_1560.jpeg                    3815 x 2862 24bit N JFIF                     1045063
IMG_2520.jpeg                    3964 x 2900 24bit N JFIF,Exif,ICC            4712099

Extra information format

Additional information can be displayed using -i option:

<filename> <image_width> x <image_height> <colordepth> <progressive_vs_normal> <markers> <extra_info> <size>

$ jpeginfo -i *.jpeg
IMG_1439.jpeg                    3282 x 3024 24bit N JFIF,Exif                Huffman,300dpi       2961607
IMG_1560.jpeg                    3815 x 2862 24bit N JFIF                     Huffman,300dpi       1045063
IMG_2520.jpeg                    3964 x 2900 24bit N JFIF,Exif,ICC            Huffman,300dpi       4712099

Ls command style output format

Option -l moves filename to be last column, resulting output that is bit like output from `ls -l` command:

<image_width> x <image_height> <colordepth> <progressive_vs_normal> <markers> <size> <filename>


$ jpeginfo -l *.jpeg
3282 x 3024 24bit N JFIF,Exif                2961607 IMG_1439.jpeg
3815 x 2862 24bit N JFIF                     1045063 IMG_1560.jpeg
3964 x 2900 24bit N JFIF,Exif,ICC            4712099 IMG_2520.jpeg


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 jpeginfo are the following:

-c,  --check

Check files also for errors. (default is just to read the headers).

-C,  --comments

Display file comments (from COM markers).

-d,  --delete

Delete files that have errors. (default is not to delete any files).

-f<filename>, --file<filename>

Read filenames to process from given file. To use standard input (stdin) use '-' as a filename. This is alternative to default where filenames are given as parameters to the program.

-h,  --help

Display short usage information and exits.

-H,  --header

Display column names header in output.

-2,  --sha256

Calculates SHA-256 checksum for each file.


Calculates SHA-512 checksum for each file.

-5,  --md5

Calculates MD5 checksum for each file.

-i,  --info

Displays even more information about each picture. Prints image coding (Huffman/Arithmetic), density (in dpi/dpc), and whether CCIR601 sampling was used or not.

-j,  --json

JavaScript Object Notation (JSON) output format.

-l,  --lsstyle

Uses alternate listing format (ls -l style).

-v,  --verbose

Enables verbose mode (positively chatty).


Displays program version.

-q,  --quiet

Quiet mode, output just the jpeg infos.

-s,  --csv

Comma separated values (CSV) output format.

-m<mode>, --mode=<mode>

Sets the delete mode, meaningful only when used with -d flag. Mode can be one of the following:


Files containing any type of errors/warnings, not necessary preventing the decoding. (default)


Only files with serious errors (i.e. cannot be decoded at all).

-, --stdin

Read input from standard input (instead of a file).

Known JPEG Markers

jpegoptim scans through application (APP) markers in the JPEG image and will display information about "well known" markers found in the image. Markers found in image are listed in the "markers" column.

Known Application Markers

Currently jpegoptim recognizes following common application markers found in JPEG images:

Marker NameDescription
JFIFJPEG File Interchange Format
JFXXJFIF Extension
ExifExchangeable Image File Format
XMPExtensible Metadata Platform (Adobe)
ICCICC Color Profile
IPTCIPTC (Adobe Photoshop)
AdobeCMAdobe Color Management
CIFFCanon Raw
FPXRKodak FlashPix
MPFCIPA Multi-Picture Format
MetaKodak Meta
StimCIPA Stereo Still Image
JPSJPEG Stereo Image
RMETARicoh Meta
EPPIMToshiba PrintIM
NITFNational Imagery Transmission Format
SPIFFJPEG Still Picture Interchange File Format

Other Markers

If image contained any unrecognized application (APP) markers then "UNKNOWN" is added to the list of found markers.

Additionally if image contained any comment (COM) markers then "COM" is added to the list of found markers.

Exit Status

Program returns 0 on successful run. Non-zero exit status is returned if there were any errors.

When using --check (or -c) option return value is non-zero if one or more of the files checked had any errors.

See Also



Timo Kokkonen (


Copyright (C) 1995-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 3 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 MERCHANTABILITY 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, see <>.

Referenced By


15 Jan 2023