EXIFPROBE man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]


EXIFPROBE(1)							  EXIFPROBE(1)

NAME
       exifprobe  -  probe and report structure and metadata content of camera
       image files

SYNOPSIS
       exifprobe [options] filename(s)

DESCRIPTION
       Exifprobe reads image files produced by digital cameras (including sev‐
       eral  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 for‐
       mats 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  informa‐
       tion  in	 the image file, in a manner which mimics the structure of the
       file as closely as possible.

       Where possible, output is not limited to “known” data items.  I.e.  for
       tagged  file formats, unknown tags will be identified by tag number and
       type, and values shown without interpretation. Proprietary, untagged or
       fixed  format  files  do not permit this, but unknown or undefined data
       can usually be dumped in a hex/ascii format for examination, so long as
       the  file structure is understood. The program will report the contents
       of any properly structured TIFF IFD or CIFF directory encountered, even
       when entry tags are not recognized.  Recognized TIFF, TIFF/EP, DNG, and
       CIFF tags are expanded, including EXIF2.2 sections  and	camera	Maker‐
       Notes  which are found to be in TIFF IFD format.	 TIFF and/or JPEG sec‐
       tions found in MRW, RAF or JP2 files will be reported, along  with  the
       “native”	 sections of those formats. JP2 boxes will be reported whether
       known or unknown, and expanded  if  known.   Unknown  boxes  cannot  be
       expanded, since JP2 is not tagged below the box (or sub-box) level.

       An effort is made to identify all sub-images (in any image format) con‐
       tained in multi-image files; the location, size,	 and  format  of  such
       images  is  reported,  and  a  hex/ascii	 dump of the image data may be
       requested. Image data is not processed, but the program will  recognize
       and  report all standard JPEG and JPEG2000 markers (including JPEG APPn
       markers) and will expand APP0 (JFIF/JFXX) and APP1 (EXIF) sections.

       Since the program does not attempt to display images or modify the con‐
       tents  of  files, it can often recover from and report failures or warn
       about structural oddities which would confuse a display or  image  edit
       program.

       There are a wide variety of output formats, selectable in detail by the
       “lower case” options described in the  OPTIONS  section	below.	 These
       options	select	which  items to print, and within narrow confines, how
       and where to print them.	 A large number	 of  combinations  of  options
       exist, and some of those combinations may not be sensible.  In order to
       avoid the need for constant creativity or invention,  three  “prefabri‐
       cated”  output  formats are provided, selected by the upper case option
       letters.

       The structural (-S) output format (default) provides a  description  of
       the  image  file	 which	mimics	as  closely as possible the layout and
       structure of the data in the image  file,  including  file  offsets  of
       headers,	 section  and segment markers, fully described TIFF IFDs, CIFF
       directories, or JP2 boxes, and the  location  of	 actual	 image	and/or
       thumbnail  data.	 The contents of each section are indented relative to
       the beginning of the section, and ”offset” values  for  TIFF  IFDs  and
       CIFF directories are reported at the offsets where they are found (usu‐
       ally following the entry list for TIFF, or in the HEAP for CIFF).   The
       peculiar	 “reverse” structures of CIFF and X3F formats are handled sen‐
       sibly.

       The report format (-R) shows the “logical” structure of the image file,
       but  eliminates	addresses,  offsets, IFD value types and counts, etc.,
       and prints “offset” directory values inline, while otherwise preserving
       the primary structure of the data.

       The  list  format  (-L) omits all structural data. It writes only “tag”
       values from TIFF, Exif, and MakerNote IFDs, CIFF or other format direc‐
       tories  or  JP2	boxes,	including section and image offsets and sizes.
       Identifiable values from non-tagged formats are written	in  a  similar
       manner.	This format may be useful for extracting information for photo
       galleries.

       The structural format is default.  This format provides maximum	infor‐
       mation  about the contents of an image file, and may reveal information
       (sometimes important) which other formats (or image info programs)  may
       hide.

       In  all	formats, the filename, file type, file size, an image summary,
       and a summary file format will be displayed (even when all other output
       is  disabled  by	 option). The image summary includes a summary report,
       for each subimage found, giving the image type,	compression  type  (if
       any),  pixel size, data length, file offset where found, and section of
       the file which includes or references the image.	 In some cases,	 short
       remarks	may  be	 included for images mentioned but not found, etc. The
       summary concludes with the number of images found, and number of images
       not found (if any). The summary is followed by a listing of format sec‐
       tions found (TIFF/JPEG/EXIF, etc.) and  a  type	identifier  for	 TIFF-
       derived types (e.g. CR2) where possible.

       An  environment	variable  may be set to a list of options to customize
       the default output behavior (see below).

   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	detec‐
       tion  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 informa‐
       tion for “known” cameras; otherwise, tag numbers, sizes, types, and raw
       values from the IFD will be shown (if permitted by option settings).

       Some  camera makes are known to use more than one version of MakerNote,
       depending upon model.  If an unknown model from that maker  is  encoun‐
       tered,  the  note  will	be briefly examined and a noteversion assigned
       automatically if possible.  If that fails, the note will	 be  displayed
       without interpretation.

       MakerNotes  which are not in a recognizable IFD format will be reported
       (start and end offsets) in structural (-S) and report  (-R)  formats  ,
       and  the beginning of the note section hex/ascii dumped.	 The remainder
       of the note may be dumped, in whole or in part, by the -M  option  (see
       below).

       In  list	 (-L)  format, the starting file offset and length supplied by
       the MakerNote tag will be  reported,  and  three	 “pseudo”  tags	 which
       report  the  offset  (MakerNote.Offset),	 size  (MakerNote.Length)  and
       scheme (MakerNote.Scheme) will appear.

   JPEG APPn
       In JPEG interchange format files, APP0 (JFIF,JFXX) and APP1 (Exif) seg‐
       ments will be fully decoded, and the “printable” portions of APP12 sec‐
       tions 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 warn‐
       ings 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.

       The program may be compiled without support for color sequences.

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.

       Within sections, directory entries,  subdirectories,  the  contents  of
       known  APP  sections, JPEG segment markers, etc. are printed.  Non-jpeg
       image data sections will be shown with a few lines of hex/ascii dump of
       the beginning of the data.

       Each line of output is preceded by a file offset given in hex and deci‐
       mal.  File offsets are preceded by the character `@', except that  sec‐
       tion  end markers are preceded by `-' and the character `>' may be used
       to mark sections which are located outside the IFD in  which  they  are
       declared.   If  that  section  includes a subsection which is similarly
       afflicted, the '>' is replaced by '+' in the subsection.	 In JP2 files,
       the '@' is replaced by '=', for no particular reason.

       JPEG and JPEG2000 segment markers are written with the marker name, and
       the decoded values of any information associated with the marker.

       TIFF information is written in a manner which reflects the structure of
       the IFD, with all values interpreted according to the applicable speci‐
       fication where possible.	 All IFD fields are reported.	The  following
       fields will appear on each line (in the order given, following the file
       offset):

       ·      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 dou‐
	      ble quotes (e.g. “0,0 top left”).

       The list of entries will be followed by a line giving the offset to the
       next IFD (often 0) which is always found at the end of a TIFF IFD entry
       list.

       If there were offset entries found in the list  above,  the  TIFF  (and
       Exif)  specification  requires  that  they  will be located next in the
       file, immediately following the dirctory entries.   This	 stricture  is
       frequently  ignored  in	MakerNotes  and	 TIFF-derived formats.	A line
       reporting the beginning of these offset values will be printed  immedi‐
       ately  after  the next IFD offset, followed by one line for each offset
       entry, with the tag name repeated, followed by the actual  value,  fol‐
       lowed by its interpretation (if any).

       Multiple	 values	 in  entries  are  printed on a single line, but large
       lists will be elided, with just the first two or	 three	values	shown,
       followed by an ellipsis, followed by the last value, the number of val‐
       ues, and the offset of the last value in the list.  The full value list
       may be printed using the -eA option.

       In  structural  format,	ascii strings in the entry are printed for the
       entire length given in the IFD entry,  including	 nulls	and  non-ascii
       values (if present), which are printed in `backslashed' octal notation.
       The -ea option may be used to force ascii values to be printed only  up
       to  the	first  null.   This  option is often necessary for CIFF format
       files, and is enabled by default in “list” mode.

       Entries are indented slightly from the start identifier	for  the  IFD,
       and  subsegments	 (e.g. an Exif IFD, SubIFD, or MakerNote) will be fur‐
       ther indented in order to indicate the structure of the file.

       The resulting output displays the  contents  of	the  IFD  much	as  it
       appears	in  the file (see the TIFF or EXIF specifications for descrip‐
       tions of the IFD format).

       Finally, the start and end of actual image data for the	primary	 image
       (and possibly thumbnail or reduced-resolution image) is reported at the
       end.  For JPEG images, this usually includes display of the  JPEG  seg‐
       ment  markers within the image.	Binary format image data will be shown
       with a brief hex/ascii dump of the beginning of the data, between start
       and end markers.

       Note  that values preceded by `@' are always offsets from the beginning
       of the file to the actual value.	 IFD offsets are usually  recorded  in
       the file as offsets relative to the beginning of the TIFF header (which
       is offset from the beginning of the file in JPEG APP1  files)  but  are
       adjusted	 by  exifprobe	to show offset from the beginning of the file.
       If it is important to see the recorded value, the  -er  option  may  be
       used to print the recorded value in parentheses, following the adjusted
       file offset.

   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 informa‐
       tion and much of the `internal' information from the TIFF IFD (tag num‐
       ber, 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 for‐
       mat.

   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.

       The  “value” of tags or items which represent an offset to a subsection
       or image are printed in list format as “@offset:length”.

       The List format is used by the auxilliary script exifgrep,  which  per‐
       mits  selective extraction of information e.g. for photo galleries, and
       output in (almost) “shell variable” format.

   Custom Formats
       The -Z option “zeroes” all option flags	(except	 the  longnames	 modi‐
       fier),  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.

       As an example, the command:

	   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.

       The  “zero-level”  output still reports the file data and image summary
       as described above.

OPTIONS
       The environment variable EXIFPROBE_OPTIONS may  be  set	to  any	 valid
       option  string,	which  will  be evaluated before command line options.
       E.g.

       export EXIFPROBE_OPTIONS='-L -c'

       will make list format the default  output  format,  and	re-enable  the
       color sequences turned off by -L.

       Options	are evaluated from left to right, so -Z should be given first,
       while -D (decimal only) or -X (hex only) should be given last.

       -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	 deci‐
		 mal

       -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 pre‐
		     ceding 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  com‐
		     puted  (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 Mak‐
		 erNotes.  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 print‐
		 ing of the full value.

       -h	 print a help message

       -V	 print program version and copyright

SEE ALSO
       exifgrep(1)
       The TIFF6 specification:
	https://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf
       The Exif 2.2 specification:
	http://tsc.jeita.or.jp/avs/data/cp3451.pdf
       The JFIF specification:
	http://www.w3.org/Graphics/JPEG/jfif3.pdf
       The TIFF/EP specification:
	http://www.map.tu.chiba-u.ac.jp/IEC/100/TA2/recdoc/N4378.pdf
       The CIFF specification
	http://xyrion.org/ciff/CIFFspecV1R04.pdf
       The X3F public specification
	http://www.sd9.org.uk/X3F_Format.pdf
       The JPEG2000 public draft (outdated)
	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	 accu‐
       rate.

       The RAF file format support is preliminary (there is no published spec‐
       ification).

       Floating point values read from the file are expected  to  be  in  IEEE
       format (or at least, native format); i.e. no conversions are attempted.

       ANSI  color sequence support should use termcap/terminfo facilities; it
       does not.

AUTHOR
       Duane H. Hesser
       dhh@virtual-cafe.com

				     LOCAL			  EXIFPROBE(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net