NAME

exiftool - Read/write meta information in image files

SYNOPSIS

exiftool [OPTIONS] [-TAG[[+-<]=[VALUE]] or --TAG...] FILE ...

DESCRIPTION

Read or write meta information in image files. FILE may be an image file name, a directory name, or - for the standard input. Information is read from the specified file and output in readable form to the console (or written to an output text file with the -w option).

To write information in an image file, specify new values using either the -TAG=VALUE syntax or the -AllTagsFromFile option. This causes exiftool to rewrite FILE with the specified information, preserving the original file by renaming it to FILE_original. (Note: Be sure to verify that the new file is OK before erasing the original.)

Below is a list of meta information formats and file types supported by exiftool (r = read support, w = write support):

 Meta Information                   File Types
------------------          --------------------------
EXIF           r/w          JPEG   r/w      NEF    r/w
GPS            r/w          JP2    r        ORF    r
IPTC           r/w          TIFF   r/w      PEF    r/w
XMP            r/w          GIF    r/w
MakerNotes     r/w          THM    r/w
GeoTIFF        r            CRW    r/w
ICC Profile    r            CR2    r/w
Photoshop IRB  r            DNG    r/w
PrintIM        r            MRW    r

OPTIONS

Note: Case is not significant for any command-line option (including tag and group names), except for certain single-character options where the corresponding upper case option is defined.

-TAG

Extract information for specified tag. See Image::ExifTool::TagNames for documentation on available tag names. The tag name may begin with an optional group name followed by a colon. (ie. -TAG:GROUP, where GROUP is any valid family 0 or 1 group name. Use the -group option to list valid group names.) If no tags are specified, all available information is extracted.

--TAG

Exclude specified tag from extracted information. Same as the -x option.

-TAG[+-<]=[VALUE]

Writes a new value for the specified tag, or deletes the tag if VALUE is not specified. Use += to add a value to a list without replacing existing values, and -= to delete a specific value from a list. Use <= to set the value of a tag from the contents of a file with name VALUE. (Note: Quotes are required around the argument in this case to prevent shell redirection.)

-a

Allow duplicate tag names in the output (otherwise duplicates are suppressed).

-AllTagsFromFile SRCFILE

Set the value of all writable tags from information in the specified source file.

-b

Output requested data in binary format. Mainly used for extracting embedded images.

-d FMT

Set date/time format (consult strftime man page for FMT syntax).

-D

Show tag ID number in Decimal.

-e

Print existing tags only -- don't calculate composite tags.

-E

Escape characters in output values for HTML.

-f

Force printing of tags even if their values are not found.

-g[#]

Organize output by tag group (-g0 assumed if # not specified).

-G[#]

Same as -g but print Group name for each tag.

-H

Show tag ID number in Hexadecimal.

-group[#]

List all tag groups for family #. Family 0 assumed if # not specified.

-h

Use HTML formatting for output (implies -E option).

-i DIR

Ignore specified directory name. May be multiple -i options.

-l

Use long output format (2-line Canon-style output).

-L

Convert Unicode characters in output to Windows Latin1 (cp1252) instead of the default UTF8.

-list

List all valid tag names.

-listw

List all writable tag names.

-m

Ignore minor errors (allows writing if some minor errors occur, or extraction of embedded images that aren't in standard JPG format).

-n

Do not apply print conversion to displayed tag values.

-o OUTFILE

Set output file or directory name when writing information (otherwise the source file is renamed to FILE_original and the output file is FILE).

-p FMTFILE

Print output in the format specified by the given file (and ignore other format options). Tag names in the format file begin with a $ symbol and may contain an optional group name. Case is not significant. Lines beginning with # are ignored. For example, this format file:

# this is a comment line
File $FileName was created on $DateTimeOriginal
(f/$Aperture, $ShutterSpeed sec, ISO $EXIF:ISO)

produces output like this:

File test.jpg was created on 2003:10:31 15:44:19
(f/5.6, 1/60 sec, ISO 100)
-P

Preserve date/time of original file when writing.

-r

Recursively scan subdirectories (only meaningful if FILE is a directory name).

-s

Use short output format (add up to 3 -s options for even shorter formats).

-S

Print tag names instead of descriptions (very short format, same as two -s options).

-t

Output a tab-delimited list of description/values (useful for database import).

-u

Extract values of unknown tags (add another -u to also extract unknown information from binary data blocks).

-U

Extract values of unknown tags as well as unknown information from binary data blocks (same as two -u options).

-v[#]

Print verbose messages (# may be 1-4, higher is more verbose).

-ver

Print version number and exit.

-w EXT

Write console output to a file with name ending in EXT for each source file. The output file name is obtained by replacing the source file extension (including the .) with the specified extension.

-x TAG

Exclude specified tag (may be many -x options). Same as --TAG.

-z

Extract information from .gz and .bz2 compressed images.

EXAMPLES

exiftool -g a.jpg

Print all EXIF information sorted by group (for family 0).

exiftool -common dir

Print common EXIF information for all images in dir.

exiftool -S -ImageSize -ExposureTime b.jpg

Print ImageSize and ExposureTime tag names and values.

exiftool -l -canon c.jpg d.jpg

Print standard Canon information from 2 image files.

exiftool -r -w .txt -common pictures

Recursively save common EXIF information for files in pictures directory into files with the same names as the images but with a .txt extension.

exiftool -b -ThumbnailImage image.jpg > thumbnail.jpg

Save thumbnail image from image.jpg to a file called thumbnail.jpg.

exiftool -b -JpgFromRaw -w _JFR.JPG -r .

Recursively extract JPG image from all Canon RAW files in the current directory, adding '_JFR.JPG' for the name of the output JPG files.

exiftool -b -PreviewImage 118_1834.JPG > preview.jpg

Extract preview image from JPG file and write it to preview.jpg.

exiftool -d '%r %a, %B %e, %Y' -DateTimeOriginal -S -s *.jpg

Print formatted date/time for all JPG files in a directory.

exiftool -IFD1:XResolution -IFD1:YResolution

Extract image resolution from IFD1.

WRITING EXAMPLES

exiftool -comment='This is a new comment' dst.jpg

Set comment in file (replaces any existing comment).

exiftool -comment= *.jpg

Remove comment from all JPG files.

exiftool -keywords=EXIF -keywords=editor dst.jpg

Replace existing keyword list with two new keywords (EXIF and editor).

exiftool -keywords+=word dst.jpg

Add a keyword (word) to the current list of keywords.

exiftool -category-=xxx dir

Delete only the specified category (xxx) from all files in directory.

exiftool -AllTagsFromFile src.crw dst.jpg

Set the values of all writable tags from information in src.crw, and update dst.jpg with this new information.

exiftool '-ThumbnailImage<=thumb.jpg' dst.jpg

Set the thumbnail image from specified file (Note: The quotes are neccessary to prevent shell redirection).

exiftool -xmp:city=Kingston dst.jpg

Write a tag to the XMP group (otherwise in this case the tag would get written to the IPTC group since City exists in both, and IPTC has priority).

exiftool -Canon:ISO=100 dst.jpg

Set ISO only in the Canon maker notes.

exiftool -LightSource-='Unknown (0)' dst.tiff

Delete LightSource tag only if it is unknown with a value of 0.

exiftool -whitebalance-=auto -WhiteBalance=tung dst.jpg

Set WhiteBalance to Tungsten only if it was previously Auto.

PIPING EXAMPLES

cat a.jpg | exiftool -

Extract information from stdin.

cat a.jpg | exiftool -iptc:keywords+=fantastic - > b.jpg

Add an IPTC keyword in a pipeline, saving output to a new file.

AUTHOR

Copyright 2003-2005, Phil Harvey

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

Image::ExifTool, ExifTool Tag Names, Shortcut Tags