table of contents
| EXIFPROBE(1) | General Commands Manual | EXIFPROBE(1) |
NAME¶
exifprobe - probe and report structure and metadata content of camera image filesSYNOPSIS¶
exifprobe [ options] filename(s)DESCRIPTION¶
Exifprobe reads image files produced by digital cameras (including several so-called "raw" file formats) and reports the structure of the files and the auxilliary data and metadata contained within them. In addition to TIFF, JPEG, and EXIF, the program understands several formats which may contain "raw" camera data, including MRW, CIFF/CRW, JP2/JPEG2000, RAF, and X3F, as well as most most TIFF-derived "raw" formats, including DNG, ORF, CR2, NEF, K25/KDC/DCR, and PEF. Other TIFF or JPEG-derived formats (which begin with a TIFF header or JPEG marker) should also be readable. The program attempts to display ALL information in the image file, in a manner which mimics the structure of the file as closely as possible.MakerNotes¶
Camera-generated images which contain EXIF sections may also contain sections introduced by a MakerNote tag, which may contain information about camera or firmware settings used to produce the image. The structure and contents of MakerNote sections is not mandated by the Exif specification, but many camera MakerNotes are written in TIFF IFD format, possibly offset following an ID string or new TIFF header (or both), and sometimes with inventive handling of “offsets”. Exifprobe currently understands and automatically detects such schemes and prints the contents of the IFD (and the ID string, if present). This detection is not dependent upon make or model of camera. Make and Model information will usually be available from the first TIFF IFD in the file; this information may be used to interpret the MakerNote information for “known” cameras; otherwise, tag numbers, sizes, types, and raw values from the IFD will be shown (if permitted by option settings).JPEG APPn¶
In JPEG interchange format files, APP0 (JFIF,JFXX) and APP1 (Exif) segments will be fully decoded, and the “printable” portions of APP12 sections will be displayed. APP3 (Meta) sections will be expanded and the contained TIFF IFD will be displayed, although little interpretation is done. Other APP markers will be reported, and the sections may be hex/ascii dumped in whole or in part using the -A option. APP1 sections not marked as Exif will be treated as unknown.ANSI Color¶
The program (by default) emits ANSI color escape sequences to highlight Exif, MakerNote , and Interoperability sub-sections. Errors and warnings are highlighted in red. These sequences are effective, of course, only for terminals or terminal emulators (e.g. xterm) which respond to ANSI color escape sequences. If a pager is used to display the output when these sequences are present, a “raw” option to the pager may be required (e.g. less -R). The use of these sequences may be toggled by the -c option. LIST mode turns color sequences off.OUTPUT FORMATS¶
In all formats, and regardless of option setting, the first three lines of output for each file processed are the filename, image type (TIFF, CIFF, JP2, etc.), and the file size. If the type (taken from the file header) specifies a data byte order, the byte order will be indicated with the type as `II' (Intel byte order) or `MM' (Motorola byte order). The image summary and summary format will always be printed at the end.Structural Format¶
Structural format output begins with a display of the file header. The header is followed by lines of the form<IFD0>
...
</IFD0>
<APP0>
...
</APP0>
<DIRECTORY>
...
</DIRECTORY>
etc. to indicate the beginning and end of each “section” of the
file. Actual section names will, of course, depend upon the file format and/or
the tags encountered. Only the TIFF IFD format is described here; other
formats are similar, except that JP2 box names are printed inside square
(rather than angle) brackets, and MRW section names inside curly braces.
- •
- Tag number in hex and decimal representations, enclosed in brackets.
- •
- Tag name (where known); names for unknown tags are created as a hex representation of the tag number prefixed by the string 'TAG_'.
- •
- The TIFF type number, name, and byte count for the associated value, enclosed in square brackets.
- •
- The “value/offset” for the entry. If the value
fits in the four bytes of the entry, the value is printed directly.
If the value for the entry did not fit in the four bytes of the entry, then the value found is an offset to the actual location of the data; that offset is printed preceded by an '@' symbol. The actual value will be printed later, at the file offset where it was found (except in some non-conforming MakerNote IFDs). If the value requires interpretation (e.g. TIFF Orientation) it is followed by an '=' sign and the interpretation, enclosed in double quotes (e.g. “0,0 top left”).
Report Format¶
The report format (-R) displays all sections and segments of the image file, including start and end of sections, but eliminates much of the “cruft” of the structural format by eliminating address/offset information and much of the `internal' information from the TIFF IFD (tag number, type and count). Offset values are printed inline with the tag name. The output is indented to show the logical structure of the image file, but is much less difficult to view than the structural format.List format¶
The list format (-L) suppresses structural information, writing only content in the format tagname = value or tagname = value = “what value means”. For non-tagged file formats, the tagname will be replaced by a fixed identifier for the item. In LIST format, “long” tagnames are used, which include the names of all parent sections of the section in which the data is found. Long tagnames can be toggled off, although this is unwise if the file contains multiple image sections.Custom Formats¶
The -Z option “zeroes” all option flags (except the longnames modifier), after which the lower-case options may be used to set desired options. The lower-case options are `toggles', which may also be used to turn off items in the pre-defined formats.
exifprobe -Z -et somefile.tif
may be used to list just the TIFF and Exif tags, without values (or anything
else) in “long name” format.
exifprobe -eNnT somefile.tif
will print in structural format, suppressing output of hex and decimal tag
numbers, and tag type and count.
OPTIONS¶
The environment variable EXIFPROBE_OPTIONS may be set to any valid option string, which will be evaluated before command line options. E.g.- -S
- Structure mode: (default) almost everything; offset values not inline
- -R
- Report mode: like structural, but only tagnames and decimal values, indented, inline
- -L
- List mode: print only tags and values (including interpreted values); no section info; no color
- -Z
- turn off (zero) all optional output. Prints only filename, filetype, filesize, image summary, and file format.
- -c
- toggle use of ANSI color control sequences to emphasize EXIF sections. (default 'on' except list mode, unless compiled with no color support)
- -a
- toggle printing of addresses (file offsets) in hex and decimal
- -I
- three-way toggle indent (after address -> before -> none)
- -o
- toggle “inline” print of offset IFD values
- -p[items]
- toggle print identifiers for:
- s
- - sections (IFDs, APPn)
- g
- - segments (JPEG segments)
- a
- - JPEG APP0...APPn entries
- l
- - long names (dot-separated list of parent sections preceding item name)
- e
- - entries. Includes tag names, numbers, types, values.
- m
- - print MakerNote scheme description
- M
- - watch debug of MakerNote scheme detection
- -e[items]
- toggle print IFD entry items:
- t
- - tagname
- n
- - tag number in decimal
- N
- - tag number in hex
- T
- - entry type and count
- v
- - value in decimal
- V
- - value in hex
- o
- - file offset to value in decimal
- O
- - file offset to value in hex
- r
- - relative (unadjusted) offset in decimal
- R
- - also print “raw” values where normal values are computed (e.g. rational values, or some MakerNote values where APEX values must be computed from a raw value).
- A
- - print ALL elements of multiple-value tags
- a
- - ascii "ignore length" (stop at first null)
- -D
- limit all enabled numerical values to decimal only (addresses, tag numbers, offsets, values)
- -X
- limit all enabled numerical values to hex only (addresses, tag numbers, offsets, values)
- -U[len|a]
- dump len (or all) bytes of UNDEFINED data found in TIFF IFDS in hex/ascii form (but only if the structure of the data is not known)
- -M[len|a]
- dump len (or all) bytes of unrecognized MakerNotes in hex/ascii form (but only if the structure of the data is not known)
- -A[len|a]
- dump len (or all) bytes of unrecognized JPEG APP segments in hex/ascii form (but only if the structure of the data is not known)
- -B[len|a]
- dump len (or all) bytes of binary image data or failed JPEG image data
- -C[make]+[model]
- print a list of camera makes/models matching make or model as substrings. `+' by itself prints everything
- -O start_offset
- start processing at file offset start_offset
- -n
- print filename at beginning of each line of output (useful when grepping multiple files in LIST mode)
- -N noteversion
- force use of note version noteversion when interpreting MakerNotes. Useful only if you know what you're doing.
- -m make
- Force the makernote code to interpret the note according to the make given, rather than that contained in the file.
- -l model
- force the makernote code to interpret the note according to the model given, rather than that contained in the file.
- -t
- This option has effect only if set in EXIFPROBE_OPTIONS. If set when command line options are processed, color will be be off by default if the output is not to a tty. Any command line option which toggles or sets color (e.g. “-R”) will turn color back on.
- -u
- Print “raw” Unicode data. Normally 16 bit data is printed as though the high byte is zero (which is often the case). Writing the nulls would annoy most ascii terminal devices, so the default is more hospitable. The -u option forces printing of the full value.
- -h
- print a help message
- -V
- print program version and copyright
SEE ALSO¶
exifgrep(1)https://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf
http://tsc.jeita.or.jp/avs/data/cp3451.pdf
http://www.w3.org/Graphics/JPEG/jfif3.pdf
http://www.map.tu.chiba-u.ac.jp/IEC/100/TA2/recdoc/N4378.pdf
http://xyrion.org/ciff/CIFFspecV1R04.pdf
http://www.sd9.org.uk/X3F_Format.pdf
http://www.jpeg.org/public/fcd15444-1.pdf
DIAGNOSTICS¶
Most diagnostics are printed “inline” to stdout, in red if color is enabled, and the program attempts to proceed.BUGS¶
Interpretation of MakerNote data for specific cameras is incomplete and probably always will be. The X3F specification is incomplete, and the final JPEG2000/JP2 specification is not freely available; support for these formats is therefore not complete, and may not be entirely accurate.AUTHOR¶
Duane H. Hesser| LOCAL |