JPEGINFO(1)
π JPEGINFO π
okay bestie, welcome to jpeginfo β she lives in section 1 of the general commands manual and she is literally your new fave. periodt β¨
β¨ NAME β¨
jpeginfo β prints information and tests integrity of JPEG/JFIF files. πΌοΈπ
πΈ SYNOPSIS πΈ
jpeginfo [ options ] [ filenames ]
π¦ DESCRIPTION π¦
so jpeginfo is the girl who does two things and does them flawlessly: she generates informative listings of jpeg files, and she checks jpeg files for errors. no cap. she also supports automatic deletion of broken jpegs, which is giving "we don't keep toxic files in this house" πβοΈ
π OUTPUT FORMATS π
jpeginfo supports several different output formats, because she contains multitudes. π The default formats are meant to be displayed on screen, while there's also CSV and JSON formats that are easier to parse by another program. iykyk π§
While CSV and JSON formats always display all "columns", the other formats don't display columns that do not have any data. for example, if the -c option is not used to check JPEG integrity, then the status (and details) columns won't be displayed. π
Similarly, if the MD5/SHA-2 checksum (hash) is not calculated, then that column will not be shown. it's giving "if you didn't ask for it, you don't get it." π
β Default Format β
the default output format, bestie:
<filename> <image_width> x <image_height> <colordepth> <progressive_vs_normal> <markers> <size>
Example, because visuals matter:
$ 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 info can be displayed using the -i option, because sometimes you want the lore:
<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 the filename to be the last column, resulting in output that's a bit like output from the ls -l command (iconic behavior honestly):
<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 π
okay so 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 --. both are valid, both are slaying. β¨
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). yes she will actually delete them bestie π-f<filename>,--file<filename>β read filenames to process from the given file. to use standard input (stdin), use-as a filename. this is the alternative to the 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 the-dflag. 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 the image are listed in the "markers" column. β¨
ngl the original page says jpegoptim here and we are keeping it exactly as written, bestie. no edits, no notes, that's the vibe. π
πΈ Known Application Markers πΈ
currently jpegoptim recognizes the following common application markers found in JPEG images:
JFIFβ JPEG File Interchange FormatJFXXβ JFIF ExtensionExifβ Exchangeable Image File FormatXMPβ Extensible Metadata Platform (Adobe)ICCβ ICC Color ProfileIPTCβ IPTC (Adobe Photoshop)Adobeβ AdobeAdobeCMβ Adobe Color ManagementCIFFβ Canon RawAVI1β AVI VideoQVCIβ Casio QVCIFLIRβ FLIRFPXRβ Kodak FlashPixMPFβ CIPA Multi-Picture FormatMetaβ Kodak MetaStimβ CIPA Stereo Still ImageJPSβ JPEG Stereo ImageScaladoβ ScaladoRMETAβ Ricoh MetaEPPIMβ Toshiba PrintIMNITFβ National Imagery Transmission FormatGoProβ GoProSPIFFβ JPEG Still Picture Interchange File FormatAROTβ AppleHDRβ JPEG-HDR
π§ Other Markers π§
if the image contained any unrecognized application (APP) markers, then UNKNOWN is added to the list of found markers. π
additionally, if the image contained any comment (COM) markers, then COM is added to the list of found markers. π¬
β EXIT STATUS β
the program returns 0 on a successful run. non-zero exit status is returned if there were any errors. not a slay.
when using the --check (or -c) option, the return value is non-zero if one or more of the files checked had any errors. π¨
π SEE ALSO π
π 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/>.
and that's the whole page bestie, we ate and left no crumbs ππ§
4th Berkeley Distribution Β· 15 Jan 2023 Β· JPEGINFO(1) β mwah, love u, go check ur jpegs πβ¨π¦
π¦ where this page comes from
- debian trixie: jpeginfo 1.7.1+dfsg-1 Β· GPL-3.0-only
- epel 10: jpeginfo 1.7.1-5.el10_0 Β· GPL-3.0-or-later
- epel 9: jpeginfo 1.7.1-1.el9 Β· GPLv3+
- fedora 43: jpeginfo 1.7.1-7.fc43 Β· GPL-3.0-or-later
- fedora 44: jpeginfo 1.7.1-8.fc44 Β· GPL-3.0-or-later
- nixos 26.05: jpeginfo 1.7.1
- nixpkgs unstable: jpeginfo 1.7.1
- ubuntu noble: jpeginfo 1.7.1+dfsg-1build1 Β· GPL-3.0-only
- ubuntu questing: jpeginfo 1.7.1+dfsg-1build1
- ubuntu resolute: jpeginfo 1.7.1+dfsg-1build2 Β· GPL-3.0-only
- ubuntu stonking: jpeginfo 1.7.1+dfsg-1build2 Β· GPL-3.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms