JPEGINFO(1)

NAME
jpeginfo - prints information and tests integrity of JPEG/JFIF files.

SYNOPSIS
jpeginfo [ options ] [ filenames ]

DESCRIPTION
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>

Example:

    $ 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>

Example:

    $ 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>

Example:

    $ 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

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.

--sha512
    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).

--version
    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:

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

    erronly
        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 Name | Description
    JFIF | JPEG File Interchange Format
    JFXX | JFIF Extension
    Exif | Exchangeable Image File Format
    XMP | Extensible Metadata Platform (Adobe)
    ICC | ICC Color Profile
    IPTC | IPTC (Adobe Photoshop)
    Adobe | Adobe
    AdobeCM | Adobe Color Management
    CIFF | Canon Raw
    AVI1 | AVI Video
    QVCI | Casio QVCI
    FLIR | FLIR
    FPXR | Kodak FlashPix
    MPF | CIPA Multi-Picture Format
    Meta | Kodak Meta
    Stim | CIPA Stereo Still Image
    JPS | JPEG Stereo Image
    Scalado | Scalado
    RMETA | Ricoh Meta
    EPPIM | Toshiba PrintIM
    NITF | National Imagery Transmission Format
    GoPro | GoPro
    SPIFF | JPEG Still Picture Interchange File Format
    AROT | Apple
    HDR | JPEG-HDR

  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
jpegoptim(1)

AUTHOR
Timo Kokkonen (tjko@iki.fi)

COPYING
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 <https://www.gnu.org/licenses/>.