diff -Nru libimage-exiftool-perl-11.88/arg_files/xmp2exif.args libimage-exiftool-perl-12.40+dfsg/arg_files/xmp2exif.args
--- libimage-exiftool-perl-11.88/arg_files/xmp2exif.args 2019-01-10 14:15:16.000000000 +0000
+++ libimage-exiftool-perl-12.40+dfsg/arg_files/xmp2exif.args 2021-09-30 15:04:06.000000000 +0000
@@ -13,6 +13,7 @@
# 2015/01/12 - PH Avoid copying from non-standard namespaces
# 2016/09/26 - PH Write Composite SubSec tags
# 2018/05/07 - PH Added support for GPSDestXxxRef tags
+# 2021/09/30 - PH Removed erroneous "-" when copying CreatorTool
#
# References: http://www.metadataworkinggroup.org/specs/
#
@@ -34,7 +35,7 @@
-Composite:SubSecDateTimeOriginal < XMP-photoshop:DateCreated
-Composite:SubSecCreateDate < XMP-xmp:CreateDate
-Composite:SubSecModifyDate < XMP-xmp:ModifyDate
--EXIF:Software < -XMP-xmp:CreatorTool
+-EXIF:Software < XMP-xmp:CreatorTool
-EXIF:Copyright < XMP-dc:Rights
-EXIF:Artist < XMP-dc:Creator
# XMP flash information is translated by the Composite Flash tag
diff -Nru libimage-exiftool-perl-11.88/Changes libimage-exiftool-perl-12.40+dfsg/Changes
--- libimage-exiftool-perl-11.88/Changes 2020-02-20 14:44:19.000000000 +0000
+++ libimage-exiftool-perl-12.40+dfsg/Changes 2022-02-09 12:19:14.000000000 +0000
@@ -4,8 +4,762 @@
RSS feed: https://exiftool.org/rss.xml
-Note: The most recent production release is Version 11.85. (Other versions are
-considered development releases, and are not uploaded to CPAN.)
+Note: The most recent production release is Version 12.30. (Other versions are
+considered development releases, and are not uploaded to MetaCPAN.)
+
+Feb. 9, 2022 - Version 12.40
+
+ - Added a new Nikon LensID (thanks Wolfgang Exler)
+ - Added PageCount tag to return the number of pages in a multi-page TIFF
+ - Added a few more Sony LensTypes (thanks Jos Roost)
+ - Decode some new Canon tags (thanks Mark Reid)
+ - Decode another Nikon Z9 tag (thanks Warren Hatch)
+ - Decode Nikon NKSC GPSImgDirection (thanks Olaf)
+ - Improved handling of empty XMP structures in lists
+ - Tolerate leading UTF-8 BOM in -geotag log files
+ - Updated photoshop_paths.config to include WorkingPath
+ - Patched to allow writing of MP4 videos which have url tracks with a missing
+ sample description entry
+ - Fixed typo in the name of a new Nikon tag (thanks Herb)
+ - Fixed description of GPR (General Purpose RAW) file type
+ - Fixed potential deep recursion runtime error when writing nested XMP
+ structures
+ - Fixed warning which could be generated when writing new
+ Composite:GPSCoordinates tag
+ - Fixed deep recursion error when reading multi-page TIFF images with more
+ than 100 pages
+
+Jan. 13, 2022 - Version 12.39
+
+ - Added a new Pentax LensType (thanks Christian Shulz)
+ - Added a couple of new Nikon LensID's
+ - Added support for Nikon NKSC sidecar files
+ - Decode more tags for the Nikon Z7 and Z9 (thanks Warren Hatch)
+ - Decode a couple more FLIR tags
+ - Extract ZIP file comments
+ - Made PNG ProfileName, SRGBRendering and Gamma writable
+ - Patched to avoid possible problem running "more" to show documentation in
+ Windows version
+ - Fixed problem writing Composite:GPSPosition with coordinates in DMS format,
+ and made this tag protected when writing
+ - Fixed bug where invalid date/time tags could be written to PNG files when
+ attempting to shift a non-existent date/time tag
+ - Fixed spelling of a few Matroska tag names (thanks Martin Hoppenheit)
+
+Dec. 20, 2021 - Version 12.38
+
+ - Decode a number of new tags for the Nikon Z9 (thanks Warren Hatch)
+ - Patched incorrect decoding of AEBShotCount for the Canon EOS 90D
+ - Patched EXR reader to support long tag names
+ - Patched security issue (thanks Joe Lothan)
+ - Fixed an incorrect tag ID for a new Nikon MakerNote tag (github #108)
+ - Fixed XMP-exif:GPSMeasureMode conversions to match EXIF
+ - Fixed problem where some namespaces may be undeclared in the -X output when
+ using the -struct option
+
+Dec. 8, 2021 - Version 12.37
+
+ - Decode timed GPS from Vantrue S1 dashcam MP4 videos
+ - Decode ColorData tags for the Canon EOS R3 (thanks LibRaw)
+ - Decode more makernotes tags for Nikon Z cameras (thanks Warren Hatch)
+ - Extract TransparentColor from GIF images
+ - Improved parsing of input time values for GPSTimeStamp to properly handle a
+ "." separator
+ - Improved warning when incorrectly using "
+
+Nov. 16, 2021 - Version 12.36
+
+ - IMPORTANT: Fixed bug introduced in 12.35 which corrupted JPEG 2000 images
+ when removing all metadata with -all=
+ - Added feature to bypass processing of specified XMP namespaces and
+ properties (to improve performance in cases where the XMP suffers from
+ Adobe-editing bloat)
+ - Added a number of new XMP tags used by Lightroom 11.0
+ - Decode a number of new Nikon tags (thanks Warren Hatch)
+ - Made the Composite GPSPosition tag writable
+ - Fixed erroneous "Skipped unknown bytes after JPEG SOS" warning
+ - Fixed group for new writable Jpeg2000 color tags in -listx output
+ - Fixed problem finding files in Windows when using wildcards in file name and
+ a drive letter with no slash
+
+Nov. 11, 2021 - Version 12.35
+
+ - Added ability to write ICC_Profile (and other color specifications) to
+ Jpeg2000 images
+ - Added %o code to -W option format string
+ - Added %f code to -d option for fractional seconds
+ - Added a couple of new Sony LensType values (thanks Jos Roost)
+ - Added a new CanonModelID (thanks Norbert Wasser)
+ - Added a new Nikon LensID
+ - Decode more Nikon MakerNotes tags for some new models (thanks Warren Hatch)
+ - Extract ThumbnailImage from some DJI drone videos
+ - Enhanced -ee option to extract metadata from all frames in a SEQ file
+ - Patched to avoid possible "Use of uninitialized value" runtime warning
+ - Fixed a couple of misspelt new ICC_Profile tag names (thanks Herb)
+ - Fixed problem generating the correct file extension when extracting
+ OriginalRawImage from a DNG file using the -W option with the %s format code
+ - Fixed bug introduced in 11.91 where exiftool couldn't find its libraries
+ when run via a soft link. Also changed to look for config file in the link
+ target directory instead of the directory of the link itself
+
+Oct. 27, 2021 - Version 12.34
+
+ - Added support for ICC.2:2019 (Profile version 5.0.0 - iccMAX) color profiles
+ - Added ability to detect/delete a Windows Zone.Identifier alternate data
+ stream (ADS) via the new ZoneIdentifier tag (thanks Alex Xu)
+ - Added support for the Sony ILCE-7M4 (thanks Jos Roost)
+ - Added a new Sony lens (thanks LibRaw and Jos Roost)
+ - Added a new SonyModelID (thanks LibRaw)
+ - Added a new Canon RF lens (thanks Norbert Wasser)
+ - Improved handling of some SVG files
+ - Patched -overwrite_original_in_place option to open the output file in
+ update mode rather than write mode (to allow some write optimizations on
+ certain filesystems) (thanks Joel Low)
+ - Fixed case of tag ID for new XMP-iptcExt:EventID (thanks Michael Steidl)
+ - Fixed problem extracting ICC_Profile information from some PDF files
+ - API Changes:
+ - Added QuickTimePad option
+
+Oct. 16, 2021 - Version 12.33
+
+ - Added support for DNG version 1.6.0.0
+ - Added two new Sony LensType values (thanks Jos Roost and LibRaw)
+ - Added some new elements to the XMP-crs:Look structure (thanks Herb)
+ - Added a few new IPTC XMP tags (thanks Michael Steidl)
+ - Added a new Canon RF lens (thanks Norbert Wasser)
+ - Decode Canon ShutterMode (thanks John Moyer)
+ - Extract LensModel from some Olympus MOV videos
+ - Generate MediaDataOffset/Size for MOV videos with zero-sized MDAT chunk
+ - Improvements to CBOR reader, including hex dump with -v3 option
+ - Recognize Final Cut Pro XML files
+ - Allow binary data of Protected tags to be extracted with the -X -j and -php
+ options with -b by setting the API RequestAll option to 3
+ - Changed name of "Canon EF 80-200mm f/4.5-5.6" lens with LensType 38 to add
+ "II" to the name (Exiv2 issue 1906)
+ - Fixed runtime warning when processing files with a .DIR extension
+
+Sept. 30, 2021 - Version 12.32
+
+ - Added support for CBOR-format metadata in JUMBF (note that JUMBF support is
+ still experimental)
+ - Added a new Nikon LensID
+ - Added a new Pentax LensType
+ - Decode timed GPS for two more dashcam formats
+ - Support reference direction columns in -geotag CSV input
+ - Removed generation of GPSSpeedRef and GPSTrackRef tags in timed metadata for
+ most dashcam formats when speed is km/h and track is relative to true north
+ - Patched to allow writing of console output to named pipes
+ - Fixed formatting of InternalSerialNumber for some Panasonic cameras
+ - Fixed bug in arg_files/xmp2exif.args support file
+
+Sept. 22, 2021 - Version 12.31
+
+ - Added a new SonyModelID and a couple of new Sony lenses (thanks Jos Roost)
+ - Added a new Canon LensType (thanks Chris Skopec)
+ - Added Composite GPSLatitude/Longitude tags for Sony videos to combine the
+ reference hemispheres as with the Composite tags for EXIF GPS
+ - Decode DPX AspectRatio
+ - Decode more GoPro MP4 tags
+ - Extract ICC_Profile from CS0 object in PDF files
+ - Extract encrypted GPS from Akaso V1 dashcam videos (can't yet decrypt)
+ - Improved handling of QuickTime iTunesInfo tags, and created new "iTunes"
+ family 1 group for these
+ - Patched so NoPDFList option also applies when writing
+ - Patched to allow user-defined PNG TextualData tags to be written only as iTXt
+ - Patched PDF reader to avoid concatenating values of multiple List-type tags
+ into a single tag
+
+Aug. 12, 2021 - Version 12.30 (production release)
+
+ - Added read support for Portable FloatMap (PFM) images (this was a bit of a
+ pain because they have the same file extension as Printer Font Metrix files)
+ - Added a few new Nikon LensID values (thanks LibRaw)
+ - Added a new Canon LensType
+ - Added a new Olympus CameraType (thanks LibRaw)
+ - Added minor warning about unknown data between JPEG segments
+ - Added a couple of new NikonSettings tags (thanks Warren Hatch)
+ - Added a new Sony LensType (thanks Jos Roost)
+ - Decode 'id3 ' chunk in WAV audio files
+ - Decode timed GPS from concatenated Garmin dashcam videos
+ - Decode SamsungTrailer information from sefd atom in HEIC images
+ - Decode more Sony MakerNote tags for the ZV-E10 (thanks Jos Roost)
+ - Decode DepthMapTiff from JPEG images of more Samsung models
+ - Decode timed GPS from M2TS videos of yet another type of dashcam
+ - Extract PreviewImage from Xaiomi MP4 videos
+ - Changed name of second EmbeddedImage in Samsung trailer to EmbeddedImage2
+ - Improved Dutch translations for GPS tags (thanks Peter Dubbelman)
+ - Allow ICC_Profile to be "deleted" from AVIF files (actually, the profile
+ isn't really deleted. Instead, a zero-length profile is written to allow a
+ profile to be added back later since QuickTime item property containers
+ currently can't be created)
+ - Patched to remove 2 GB size limit when reading Photoshop ImageSourceData
+
+July 9, 2021 - Version 12.29
+
+ - Added a few new Nikon and Olympus lenses (thanks LibRaw)
+ - Improved a QuickTime "File format error" message to be more meaningful, and
+ made it a minor error
+ - Changed PNG writer to add EXIF before IDAT
+ - Some changes the way JUMBF metadata is handled
+ - Patched to read timed GPS from a different type of INSV videos
+ - Patched a security issue
+ - Fixed problem where ExifTool could hang when processing mebx timed metadata
+
+June 22, 2021 - Version 12.28
+
+ - Added read support for Leica Image File (LIF) images
+ - Added a new Olympus LensType (thanks LibRaw)
+ - Decode another Panasonic tag (thanks LibRaw)
+ - Decode more timed metadata from Sony MP4 videos
+ - Attempt to shorten tag names for metadata in CZI files
+ - Allow full QuickTime Keys tag ID's in UserDefined tags (fixes backward
+ incompatibility introduced in 12.02)
+ - Patched to handle special characters in Torrent tag values
+
+June 9, 2021 - Version 12.27
+
+ - Added a new SonyModelID value
+ - Added two new Nikon LensID values (thanks Daniel)
+ - Added a new Pentax RawDevelopmentProcess value
+ - Added a few new Sony LensType values (thanks Jos Roost)
+ - Added warning if IPTCDigest is not current
+ - Decode a couple more Pentax tags (thanks LibRaw)
+ - Decode streaming GPS from Novatek INNOVV MP4 and TS videos
+ - Improved tag names in config_files/covert_regions.config (thanks StarGeek)
+ - Changed MIME types for MS Office macro-enabled formats to add the .12
+ - Patched Canon LensID logic to properly identify the Canon RF 24-105mm F4 L
+ IS USM lens
+ - Patched decoding of camm6 GPSDateTime to use a flexible epoch because other
+ apps don't seem to use a consistent time zero
+ - Fixed family 7 group names for QuickTime Keys tags
+ - Fixed problem reading BeatsPerMinute from some MP4 files
+ - Fixed hemisphere problem when extracting GPS from 70mai dashcam videos
+
+May 20, 2021 - Version 12.26 (production release)
+
+ - Added support for JPEG Stereo (JPS) images
+ - Added a new Sony LensType (thanks LibRaw)
+ - Added a new PentaxModelID (thanks LibRaw)
+ - Changed ExifTool namespace URI to use exiftool.org instead of exiftool.ca in
+ the -X option output (exiftool.ca is still recognized when reading XML)
+ - Improved handling of large-array warnings in -htmldump output
+ - Changed handling of escaped characters in #[CSTR] lines of -@ argfile
+ - Patched security vulnerability in argument of -lang option
+ - Fixed problem which could cause a "Wide character" warning and generate a
+ corrupted output file when writing some illegal values
+
+History of older versions (back to Nov. 19, 2003 - Version 1.00) -->
+
+Apr. 22, 2021 - Version 12.25
+
+ - JPEG XL support is now official
+ - Added read support for Medical Research Council (MRC) image files
+ - Added ability to write a number of 3gp tags in video files
+ - Added a new Sony PictureProfile value (thanks Jos Roost)
+ - Added a new Sony LensType (thanks LibRaw)
+ - Added a new Nikon LensID (thanks Niels Kristian Bech Jensen)
+ - Added a new Canon LensType
+ - Decode more GPS information from Blackvue dashcam videos
+ - Decode a couple of new NikonSettings tags (thanks Warren Hatch)
+ - Decode a few new RIFF tags
+ - Improved Validate option to add minor warning if standard XMP is missing
+ xpacket wrapper
+ - Avoid decoding some large arrays in DNG images to improve performance unless
+ the -m option is used
+ - Patched bug that could give runtime warning when trying to write an empty
+ XMP structure
+ - Fixed decoding of ImageWidth/Height for JPEG XL images
+ - Fixed problem were Microsoft Xtra tags couldn't be deleted
+
+Apr. 13, 2021 - Version 12.24
+
+ - Added a new PhaseOne RawFormat value (thanks LibRaw)
+ - Decode a new Sony tag (thanks Jos Roost)
+ - Decode a few new Panasonic and FujiFilm tags (thanks LibRaw and Greybeard)
+ - Updated acdsee.config in distribution (thanks StarGeek)
+ - Recognize AutoCAD DXF files
+ - More work on experimental JUMBF read support
+ - More work on experimental JPEG XL read/write support
+ - Patched security vulnerability in DjVu reader
+
+Apr. 1, 2021 - Version 12.23
+
+ - Added support for Olympus ORI files
+ - Added experimental read/write support for JPEG XL images
+ - Added experimental read support for JUMBF metadata in JPEG and Jpeg2000
+ images
+ - Added built-in support for parsing GPS track from Denver ACG-8050 videos
+ with the -ee option
+ - Added a some new Sony lenses (thanks Jos Roost and LibRaw)
+ - Changed priority of Samsung trailer tags so the first DepthMapImage takes
+ precedence when -a is not used
+ - Improved identification of M4A audio files
+ - Patched to avoid escaping ',' in "Binary data" message when -struct is used
+ - Removed Unknown flag from MXF VideoCodingSchemeID tag
+ - Fixed -forcewrite=EXIF to apply to EXIF in binary header of EPS files
+ - API Changes:
+ - Added BlockExtract option
+
+Mar. 17, 2021 - Version 12.22
+
+ - Added a few new Sony LensTypes and a new SonyModelID (thanks Jos Roost and
+ LibRaw)
+ - Added Extra BaseName tag
+ - Added a new CanonModelID (thanks LibRaw)
+ - Decode timed GPS from unlisted programs in M2TS videos with the -ee3 option
+ - Decode more Sony rtmd tags
+ - Decode some tags for the Sony ILME-FX3 (thanks Jos Roost)
+ - Allow negative values to be written to XMP-aux:LensID
+ - Recognize HEVC video program in M2TS files
+ - Enhanced -b option so --b suppresses tags with binary data
+ - Improved flexibility when writing GPS coordinates:
+ - Now pulls latitude and longitude from a combined GPSCoordinates string
+ - Recognize full word "South" and "West" to write negative coordinates
+ - Improved warning when trying to write an integer QuickTime date/time tag and
+ Time::Local is not available
+ - Convert GPSSpeed from mph to km/h in timed GPS from Garmin MP4 videos
+
+Feb. 24, 2021 - Version 12.21
+
+ - Added a few new iOS QuickTime tags
+ - Decode a couple more Sony rtmd tags
+ - Patch to avoid possible "Use of uninitialized value" warning when attempting
+ to write QuickTime date/time tags with an invalid value
+ - Fixed problem writing Microsoft Xtra tags
+ - Fixed Windows daylight savings time patch for file times that was broken in
+ 12.19 (however directory times will not yet handle DST properly)
+
+Feb. 23, 2021 - Version 12.20
+
+ - Added ability to write some Microsoft Xtra tags in MOV/MP4 videos
+ - Added two new Canon LensType values (thanks Norbert Wasser)
+ - Added a new Nikon LensID
+ - Fixed problem reading FITS comments that start before column 11
+
+Feb. 18, 2021 - Version 12.19
+
+ - Added -list_dir option
+ - Added the "ls-l" Shortcut tag
+ - Extract Comment and History from FITS files
+ - Enhanced FilePermissions to include device type (similar to "ls -l")
+ - Changed the name of Apple ContentIdentifier tag to MediaGroupUUID
+ (thanks Neal Krawetz)
+ - Fixed a potential "substr outside of string" runtime error when reading
+ corrupted EXIF
+ - Fixed edge case where NikonScanIFD may not be copied properly when copying
+ MakerNotes to another file
+ - API Changes:
+ - Added ability to read/write System tags of directories
+ - Enhanced GetAllGroups() to support family 7 and take optional ExifTool
+ reference
+ - Changed QuickTimeHandler option default to 1
+
+Feb. 9, 2021 - Version 12.18
+
+ - Added a new SonyModelID
+ - Decode a number of Sony tags for the ILCE-1 (thanks Jos Roost)
+ - Decode a couple of new Canon tags (thanks LibRaw)
+ - Patched to read differently formatted UserData:Keywords as written by iPhone
+ - Patched to tolerate out-of-order Nikon MakerNote IFD entries when obtaining
+ tags necessary for decryption
+ - Fixed a few possible Condition warnings for some NikonSettings tags
+
+Feb. 3, 2021 - Version 12.17
+
+ - Added a new Canon FocusMode value
+ - Added a new FujiFilm FilmMode value
+ - Added a number of new XMP-crs tags (thanks Herb)
+ - Decode a new H264 MDPM tag
+ - Allow non-conforming lower-case XMP boolean "true" and "false" values to be
+ written, but only when print conversion is disabled
+ - Improved Validate option to warn about non-capitalized boolean XMP values
+ - Improved logic for setting GPSLatitude/LongitudeRef values when writing
+ - Changed -json and -php options so the -a option is implied even without the
+ -g option
+ - Avoid extracting audio/video data from AVI videos when -ee -u is used
+ - Patched decoding of Canon ContinuousShootingSpeed for newer firmware
+ versions of the EOS-1DXmkIII
+ - Re-worked LensID patch of version 12.00 (github issue #51)
+ - Fixed a few typos in newly-added NikonSettings tags (thanks Herb)
+ - Fixed problem where group could not be specified for PNG-pHYs tags when
+ writing
+
+Jan. 21, 2021 - Version 12.16 (production release)
+
+ - Extract another form of video subtitle text
+ - Enhanced -ee option with -ee2 and -ee3 to allow parsing of the H264 video
+ stream in MP4 files
+ - Changed a Nikon FlashMode value
+ - Fixed problem that caused a failed DPX test on Strawberry Perl
+ - API Changes:
+ - Enhanced ExtractEmbedded option
+
+Jan. 18, 2021 - Version 12.15 (production release)
+
+ - Added a couple of new Sony LensType values (thanks LibRaw and Jos Roost)
+ - Added a new Nikon FlashMode value (thanks Mike)
+ - Decode NikonSettings (thanks Warren Hatch)
+ - Decode thermal information from DJI RJPEG images
+ - Fixed extra newline in -echo3 and -echo4 outputs added in version 12.10
+ - Fixed out-of-memory problem when writing some very large PNG files under
+ Windows
+
+Jan. 6, 2021 - Version 12.14
+
+ - Added support for 2 more types of timed GPS in video files (that makes 49
+ different formats now supported)
+ - Added validity check for PDF trailer dictionary Size
+ - Added a new Pentax LensType
+ - Extract metadata from Jpeg2000 Association box
+ - Changed -g:XX:YY and -G:XX:YY options to show empty strings for non-existent
+ groups
+ - Patched to issue warning and avoid writing date/time values with a zero
+ month or day number
+ - Patched to avoid runtime warnings if trying to set FileName to an empty
+ string
+ - Fixed issue that could cause GPS test number 12 to fail on some systems
+ - Fixed problem extracting XML as a block from Jpeg2000 images, and extract
+ XML tags in the XML group instead of XMP
+
+Dec. 24, 2020 - Version 12.13
+
+ - Added -i HIDDEN option to ignore files with names that start with "."
+ - Added a few new Nikon ShutterMode values (thanks Jan Skoda)
+ - Added ability to write Google GCamera MicroVideo XMP tags
+ - Add time zone automatically to most string-based QuickTime date/time tags
+ when writing unless the PrintConv option is disabled
+ - Decode a new Sony tag (thanks LibRaw)
+ - Changed behaviour when writing only pseudo tags to return an error and avoid
+ writing any other tags if writing FileName fails
+ - Print "X image files read" message even if only 1 file is read when at least
+ one other file has failed the -if condition
+
+Dec. 4, 2020 - Version 12.12
+
+ - Added ability to geotag from DJI CSV log files
+ - Added a new CanonModelID
+ - Added a couple of new Sony LensType values (thanks LibRaw)
+ - Enhanced -csvDelim option to allow "\t", "\n", "\r" and "\\"
+ - Unescape "\b" and "\f" in imported JSON values
+ - Fixed bug introduced in 12.10 which generated a "Not an integer" warning
+ when attempting to shift some QuickTime date/time tags
+ - Fixed shared-write permission problem with -@ argfile when using -stay_open
+ and a filename containing special characters on Windows
+
+Nov. 27, 2020 - Version 12.11
+
+ - Added -csvDelim option
+ - Added new Canon and Olympus LensType values (thanks LibRaw)
+ - Added a warning if ICC_Profile is deleted from an image (github issue #63)
+ - EndDir() function for -if option now works when -fileOrder is used
+ - Changed FileSize conversion to use binary prefixes since that is how the
+ conversion is currently done (eg. MiB instead of MB)
+ - Patched -csv option so columns aren't resorted when using -G option and one
+ of the tags is missing from a file
+ - Fixed incompatiblity with Google Photos when writing UserData:GPSCoordinates
+ to MP4 videos
+ - Fixed problem where the tags available in a -p format string were limited to
+ the same as the -if[NUM] option when NUM was specified
+ - Fixed incorrect decoding of SourceFileIndex/SourceDirectoryIndex for Ricoh
+ models
+
+Nov. 12, 2020 - Version 12.10
+
+ - Added -validate test for proper TIFF magic number in JPEG EXIF header
+ - Added support for Nikon Z7 LensData version 0801
+ - Added a new XMP-GPano tag
+ - Decode ColorData for the Canon EOS 1DXmkIII (thanks LibRaw)
+ - Decode more tags for the Sony ILCE-7SM3 (thanks Jos Roost)
+ - Automatically apply QuickTimeUTC option for CR3 files
+ - Improved decoding of XAttrMDLabel from MacOS files
+ - Ignore time zones when writing date/time values and using the -d option
+ - Enhanced -echo3 and -echo4 options to allow exit status to be returned
+ - Changed -execute so the -q option no longer suppresses the "{ready}" message
+ when a synchronization number is used (eg. -execute123)
+
+Oct. 29, 2020 - Version 12.09
+
+ - Added ability to copy CanonMakerNotes from CR3 images to other file types
+ - Added read support for ON1 presets file (.ONP)
+ - Added two new CanonModelID values
+ - Added trailing "/" when writing QuickTime:GPSCoordinates
+ - Added a number of new XMP-crs tags
+ - Added a new Sony LensType (thanks Jos Roost)
+ - Added a new Nikon Z lens (thanks LibRaw)
+ - Added a new Canon LensType
+ - Decode ColorData for Canon EOS R5/R6
+ - Decode a couple of new HEIF tags
+ - Decode FirmwareVersion for Canon M50
+ - Improved decoding of Sony CreativeStyle tags (thanks Jos Roost)
+ - Improved parsing of Radiance files to recognize comments
+ - Renamed GIF AspectRatio tag to PixelAspectRatio
+ - Patched EndDir() feature so subdirectories are always processed when -r is
+ used (previously, EndDir() would end processing of a directory completely)
+ - Yet another tweak to the EventTime formatting rules (also allow time-only
+ values with fractional seconds and a time zone)
+ - Avoid loading GoPro module unnecessarily when reading MP4 videos from some
+ other cameras
+ - Fixed problem with an incorrect naming of CodecID tags in some MKV videos
+ - Fixed verbose output to avoid "adding" messages for existing flattened XMP
+ tags
+
+Oct. 15, 2020 - Version 12.08
+
+ - Added read support for MacOS "._" sidecar files
+ - Added a new Sony LensType (thanks Jos Roost)
+ - Recognize Mac OS X xattr files
+ - Extract ThumbnailImage from MP4 videos of more dashcam models
+ - Improved decoding of a number of Sony tags (thanks Jos Roost)
+ - Fixed problem where the special -if EndDir() function didn't work properly
+ for directories after the one in which it was initially called
+ - Patched to read DLL files which don't have a .rsrc section (thanks Hank)
+ - Patched to support new IGC date format when geotagging
+ - Patched to read DLL files with an invalid size in the header
+
+Oct. 2, 2020 - Version 12.07
+
+ - Added support for GoPro .360 videos
+ - Added some new Canon RF and Nikkor Z lenses (thanks LibRaw)
+ - Added some new Sony LensType and CreativeStyle values and decode some
+ ILCE-7C tags (thanks Jos Roost)
+ - Added a number of new Olympus SceneMode values (thanks Herb)
+ - Added a new Nikon LensID
+ - Decode more timed metadata from Insta360 videos (thanks Thomas Allen)
+ - Decode timed GPS from videos of more Garmin dashcam models
+ - Decode a new GoPro video tag
+ - Reformat time-only EventTime values when writing and prevent arbitrary
+ strings from being written
+ - Patched to accept backslashes in SourceFile entries for -csv option
+
+Sept. 11, 2020 - Version 12.06
+
+ - Added read support for Lyrics3 metadata (and fixed problem where APE
+ metadata may be ignored if Lyrics3 exists)
+ - Added a new Panasonic VideoBurstMode value (thanks Klaus Homeister)
+ - Added a new Olympus MultipleExposureMode value
+ - Added a new Nikon LensID
+ - Added back conversions for XMP-dwc EventTime that were removed in 12.04 with
+ a patch to allow time-only values
+ - Decode GIF AspectRatio
+ - Decode Olympus FocusBracketStepSize (thanks Karsten)
+ - Extract PNG iDOT chunk in Binary format with the name AppleDataOffsets
+ - Process PNG images which do not start with mandatory IHDR chunk
+
+Aug. 24, 2020 - Version 12.05
+
+ - Added a new Panasonic SelfTimer value (thanks Herb)
+ - Decode a few more DPX tags (thanks Harry Mallon)
+ - Extract AIFF APPL tag as ApplicationData
+ - Fixed bug writing QuickTime ItemList 'gnre' Genre values
+ - Fixed an incorrect value for Panasonic VideoBurstResolution (thanks Herb)
+ - Fixed problem when applying a time shift to some invalid makernote date/time
+ values
+
+Aug. 10, 2020 - Version 12.04
+
+ - Added read support for Zeiss ZISRAW CZI files
+ - Added some new values for a couple of Olympus tags (thanks Sebastian)
+ - Decode a number of new tags for the Sony ILCE-7SM3 (thanks Jos Roost)
+ - Removed formatting restrictions on XMP-dwc:EventTime to allow a time-only
+ value to be written
+ - Moved new QuckTime ItemList tags added in version 12.02 to the proper group
+ (they were incorrectly added to the Keys group)
+ - Improved QuickTime -v3 output to show default language codes
+ - Patched -lang option to work for the values of somet tags with coded
+ translations
+ - Patched the format of a number of QuickTime tags when writing for improved
+ compatibility with iTunes and AtomicParsley
+ - Patched to write a default QuickTime language code of 0x0000 (null) instead
+ of 0x55c4 ('und')
+
+July 29, 2020 - Version 12.03
+
+ - Added family 7 group names to allow tag ID's to be specified when reading
+ and writing
+ - Fixed a couple of typos in tag values (thanks Herb)
+ - API Changes:
+ - Added HexTagIDs option
+ - Enhanced GetNewValue() to allow family 7 groups names to be used
+ - Internal Changes:
+ - Changed Composite tag ID's to use "-" instead of "::" as a separator
+
+July 27, 2020 - Version 12.02
+
+ - Added support for a number of new QuickTime ItemList tags
+ - Added support for writing XMP-xmp:RatingPercent
+ - Added a new Sony LensType (thanks Jos Roost and LibRaw)
+ - Added a new Pentax LensType (thanks James O'Neill)
+ - Decode barcodes from Ricoh APP5 RMETA segment
+ - Decode a few new QuickTime tags written by Ricoh and Garmin cameras
+ - Decode timed GPS from Sony A7R IV MP4 videos
+ - Decode timed GPS from 70mai dashcam videos
+ - Decode a few new Panasonic tags (thanks Klaus Homeister)
+ - Decode altitude and more accurate latitude/longitude from Transcend Driver
+ Pro 230 MP4 videos
+ - Improved decoding of some Canon EOS 1DXmkIII custom functions
+ - Allow integer QuickTime TrackNumber and DiskNumber values
+ - Relax validity check of QuickTime:ContentCreateDate when writing with -n
+ - Removed "Com" from the start of some unknown QuickTime ItemList tag names
+ - Patched CanonCustom decoding for bug in Canon EOS-1DX firmware
+ - Changed QuickTime CleanAperture tags decode as signed rationals
+
+June 24, 2020 - Version 12.01
+
+ - Added a new NEFCompression value (thanks Warren Hatch)
+ - Added a new Sony LensType (thanks Jos Roost)
+ - Decode timed GPS from Rove Stealth 4K dashcam videos
+ - Fixed bug which would corrupt TIFF images with 16-bit image data offsets
+ when writing (these are very rare)
+
+June 11, 2020 - Version 12.00 (production release)
+
+ - Added two new Olympus LensTypes (thanks Don Komarechka for one)
+ - Added two new Sony LensType values (thanks Jos Roost)
+ - Added a few new Nikon LensID's (thanks Mathieu Carbou)
+ - Added support for the Sony ZV-1 (thanks Jos Roost)
+ - Added a new CanonModelID (thanks Jos Roost)
+ - Added missing MimeType values for HEICS and HEIFS files
+ - Added definitions for a number of new XMP-crs tags
+ - Recognize WOFF and WOFF2 font files
+ - Decode streaming GPS from Roadhawk, EEEkit and 360Fly MP4 videos
+ - Decode a number of new tags for the Nikon D6 (thanks Warren Hatch)
+ - Decode a couple more AF tags for the D500/D850
+ - Decode a number of new Panasonic tags
+ - Improved Composite LensID logic (thanks Matt Stancliff)
+ - Enhanced -v option to state when a directory has 0 entries
+ - Removed a couple of incorrect Validate warnings for bilevel TIFF images
+ - Drop ContrastCurve tag when copying from NEF to JPEG
+ - Changed -csv output to add "Unknown" group name to column headings for
+ missing tags when -f and -G options are used
+ - Patched to support new XMP LensID format for Nikon cameras as written by
+ Apple Photos (thanks Mattsta)
+ - Fixed problem extracting metadata from Sigma DP2 Quattro X3F files
+ - Fixed End() and EndDir() functions so they work when writing and when the -v
+ option is used
+ - Fixed problem recognizing some PGM files
+ - Fixed bug in offsets for some Photoshop information in -v3 output
+ - Fixed problem writing a list containing empty elements inside an XMP
+ structure
+ - API Changes:
+ - Added NoMultiExif option
+ - Changed FilterW option to not write tag if $_ is set to undef
+
+May 11, 2020 - Version 11.99
+
+ - Added a new Nikon LensID (thanks Mykyta Kozlov)
+ - Added a new Canon LensType
+ - Added a newn PentaxModelID
+ - Decode a few new QuickTime tags
+ - Decode new ID3 Grouping tag
+ - Decode a few more MinoltaRaw tags (thanks LibRaw)
+ - Fixed runtime warning which could occur when reading corrupted RTF files
+ - Fixed another potential pitfall in M2TS Duration calculation
+ - Fixed problem extracting some unknown QuickTime:Keys tags
+ - Fixed problem decoding Nikon D850 orientation tags
+ - Fixed bug where TIFF image data may not be padded to an even number of bytes
+
+May 1, 2020 - Version 11.98
+
+ - Added a new Nikon LensID (thanks Warren Hatch)
+ - Added a new Sony LensType (thanks LibRaw)
+ - Added a new Canon LensType
+ - Patched to extract EXIF with an "Exif\0\0" header from WebP images
+ - Enhanced -efile option and added to the documentation
+ - Minor tweak to -htmlDump output (disallow locking of empty selection)
+ - Fixed problem determining Duration of some M2TS videos
+
+Apr. 27, 2020 - Version 11.97
+
+ - Added experimental -efile option (undocumented)
+ - Decode NMEA GGA sentence from streaming GPS of some dashcam videos
+
+Apr. 24, 2020 - Version 11.96
+
+ - Decode streaming GPS from Lucas LK-7900 Ace AVI videos
+ - Changed new Exit/ExitDir function names to End/EndDir
+ - Fixed inconsistencies when using "-use mwg" together with the -wm option
+
+Apr. 23, 2020 - Version 11.95
+
+ - Added Exit() and ExitDir() functions for use in -if conditions (NOTE: these
+ function names changed to End() and EndDir() in ExifTool 11.96)
+ - Enhanced -geotag feature to support a more flexible input CSV file format
+ - Enhanced -if and API Filter options to allow access to ExifTool object via
+ $self
+ - Fixed problem reading HEIC Exif with a missing header
+
+Apr. 17, 2020 - Version 11.94
+
+ - Added support for QuickTime ItemList:GPSCoordinates
+ - Added additional Validate test for overlapping EXIF values
+ - Added a new Sony LensType (thanks Jos Roost)
+ - Added a new Nikon LensID
+ - Decode a few more Nikon tags (thanks Warren Hatch)
+ - Decode Pentax ShutterType
+ - Changed color of locked highlighted selection in -htmlDump output
+ - Fixed problem reading PDF files written by Microsoft Print-to-PDF
+ - Fixed problem where -X output would produce invalid XML for MP4 files
+ containing an HTCTrack
+
+Apr. 3, 2020 - Version 11.93
+
+ - Added new config file to the distribution for writing Pix4D XMP-Camera tags
+ (config_files/pix4d.config)
+ - Added support for the DOSCyrillic (cp866) character set
+ - Added IO::String to the Windows EXE version
+ - Improved identification of Canon RF lenses (thanks LibRaw)
+ - Enhanced -htmlDump output to add "File offset" entry for EXIF tags and
+ ability lock highlighted selection by clicking the mouse
+ - Enhanced -srcfile option to generate OriginalFileName and OriginalDirectory
+ UserParam tags
+ - Patched HEIC writer to add missing pitm box if necessary
+ - Fixed problem adding back EXIF after deleting it from HEIC file
+ - Fixed minor problem with incorrect number of bytes being reported for
+ invalid header in corrupt files
+ - API Changes:
+ - Enhanced UserParam option to allow parameters to be extracted as if
+ they were normal tags
+
+Mar. 19, 2020 - Version 11.92
+
+ - Added a new Nikon LensID (thanks Wolfgang Exler)
+ - Decode a few new Leica tags (thanks Tim Gray)
+ - Decode AccelerometerData from Samsung Gear 360 videos
+ - Fixed a couple of problems decoding timed GPS metadata from NextBase dashcam
+ videos
+ - Fixed problem where -X option could produce invalid XML when reading
+ corrupted XMP
+
+Mar. 5, 2020 - Version 11.91
+
+ - Added undocumented -xpath option for use by alternate Windows version
+ - Decode a couple of new Panasonic tags
+ - Documented -ec option (available since version 11.54)
+ - Reverted -htmlDump fix of 11.90 because it broke more than it fixed, and
+ instead applied a targeted patch to fix this problem for RW2 files
+
+Mar. 3, 2020 - Version 11.90
+
+ - Added a new Sony LensType (thanks LibRaw and Jos Roost)
+ - Added two new Olympus LensType values
+ - Added a new Canon LensType
+ - Added some new Canon RecordMode values
+ - Added some new QuickTime GeneralProfileIDC values
+ - Added new values for a couple of FujiFilm tags
+ - Added a number of new QuickTime GenreID values
+ - Decode Nikon Z6/Z7 phase-detect AF points (thanks Andy Dragon)
+ - Patched to avoid possible "Undefined subroutine" error in MacOS 10.15
+ - Fixed incorrect offsets in -htmlDump output for some file types
+
+Feb. 25, 2020 - Version 11.89
+
+ - Added support for Exif 2.32 for XMP
+ - Recognize the HIF file extension
+ - Improved verbose output for QuickTime iref items
+ - Patched to create new GPS metadata in Canon CR3 images using a default byte
+ order that is the same as existing EXIF boxes
+ - Patched to add missing newline that could occur in XMP with the API Compact
+ Shorthand option
Feb. 20, 2020 - Version 11.88
@@ -864,8 +1618,8 @@
- Added a new Canon LensType (thanks LibRaw)
- Minor improvements to verbose dump of streaming GPS metadata
- Reverted change of version 10.71 which resulted in Windows not recognizing
- PNG CreationTime as written by ExifTool (added this feature to the
- StrictDate API option instead)
+ PNG CreationTime as written by ExifTool (added this feature to the API
+ StrictDate option instead)
- Improved decoding of Nikon CropHiSpeed (thanks LibRaw)
- Improved -fast option to reduce memory usage when reading JPG, PNG,
QuickTime-based and RIFF-based files via a sequential stream
@@ -979,7 +1733,7 @@
June 13, 2018 - Version 11.02
- Added support for a different format of Apple iWorks files
- - Added undocumented FixCorruptedMOV API option to allow fixing MOV videos
+ - Added undocumented API FixCorruptedMOV option to allow fixing MOV videos
with multiple 'mdat' atoms which were corrupted by ExifTool
- Decode more QuickTime tags
- Decode more PanasonicRaw tags (thanks Klaus Homeister)
@@ -8934,7 +9688,7 @@
Apr. 6, 2004 - Version 3.36
- Added support for Sanyo and Minolta maker notes
- - Added skeleton for interpeting Sony maker notes
+ - Added skeleton for interpreting Sony maker notes
- Interpret Pentax PrintIM
Apr. 6, 2004 - Version 3.35
diff -Nru libimage-exiftool-perl-11.88/config_files/acdsee.config libimage-exiftool-perl-12.40+dfsg/config_files/acdsee.config
--- libimage-exiftool-perl-11.88/config_files/acdsee.config 2020-02-05 13:52:28.000000000 +0000
+++ libimage-exiftool-perl-12.40+dfsg/config_files/acdsee.config 2022-02-09 12:08:05.000000000 +0000
@@ -2,20 +2,76 @@
# File: acdsee.config
#
# Description: This config file defines ACDSee XMP region tags for writing.
+# The following tags are created in the XMP-acdsee-rs group
#
-# Usage: exiftool -config acdsee.config -ACDSEETAG=VALUE FILE ...
+# RegionInfoACDSee : The structured tag for the ACDSee regions
+# (similar to XMP-mwg-rs:RegionInfo)
+#
+# The following tags are the width, height, and unit of the
+# image at the time of processing when storing image region
+# metadata. They are similar to the AppliedToDimensions tags
+# of the MWG regions.
+# ACDSeeRegionAppliedToDimensionsH : Height of the image
+# ACDSeeRegionAppliedToDimensionsUnit : Unit of the image
+# ACDSeeRegionAppliedToDimensionsW : Width of the image
+#
+# Actual region data, stored in an array. These flattened tags
+# are treated as List Type tags. There are two region types,
+# the ALYArea and the DLYArea. The ALYArea tags tags assigned
+# by ACDSee and are usually square in dimensions. The DLYArea
+# tags are both the tags assigned by ACDSee (but possibly
+# rectangular instead of square) as well as any manual
+# assigned tags. They are similar to the area tags of the MWG
+# regions.
+# ACDSeeRegionDLYAreaH : Height of DLY region
+# ACDSeeRegionDLYAreaW : Width of DLY region
+# ACDSeeRegionDLYAreaX : X centerpoint of DLY region
+# ACDSeeRegionDLYAreaY : Y centerpoint of DLY region
+# ACDSeeRegionALYAreaH : Height of ALY region
+# ACDSeeRegionALYAreaW : Width of ALY region
+# ACDSeeRegionALYAreaX : X centerpoint of ALY region
+# ACDSeeRegionALYAreaY : Y centerpoint of ALY region
+# ACDSeeRegionName : Name of region
+# ACDSeeRegionType : Type of region
+# ACDSeeRegionNameAssignType : How the type was assigned.
+# "Manual" is the only known
+# entry at this time
+#
+# Conversion tags. These tags can be used to convert other region
+# type tags to ACDSee regions.
+# MPRegion2ACDSeeRegion : Converts a Microsoft RegionInfoMP
+# IPTCRegion2ACDSeeRegion : Converts an IPTC ImageRegion
+# MWGRegion2ACDSeeRegion : Converts a MWG RegionInfo
+#
+# Usage: To set individual tags
+# exiftool -config acdsee.config -ACDSEETAG=VALUE FILE ...
+#
+# To convert Microsoft Regions to ACDSee regions
+# exiftool -config acdsee.config "-RegionInfoACDSee Note: This page gives the history of older exiftool versions. See
history.html for the recent history. Examples: Return Value: ImageInfo returns a reference to a hash of tag
-key/value pairs. The tag keys are identifiers -- essentially case-sensitive tag
-names with an appended instance number if multiple tags with the same name were
-extracted from the image. Many of the ExifTool functions require a tag key as
-an argument. Use GetTagName to get the tag name for a
-given tag key. Note that the case of the tag names may not be the same as
+ ImageInfo returns a reference to a hash of
+tag-key/value pairs. The tag keys are identifiers -- essentially case-sensitive
+tag names with an appended instance number if multiple tags with the same name
+were extracted from the image. Many of the ExifTool functions require a tag key
+as an argument. Use GetTagName to get the tag name
+for a given tag key. Note that the case of the tag names may not be the same as
requested. Values of the returned hash are usually simple scalars, but a scalar
@@ -380,6 +380,8 @@
my $exifTool = new Image::ExifTool;
+ One ExifTool object may be used to process many files, so creating multiple
+ExifTool objects usually is not necessary. Note that ExifTool uses AUTOLOAD to load non-member methods, so any class
using Image::ExifTool as a base class must define an AUTOLOAD which calls
Image::ExifTool::DoAutoLoad(). ie) Get/set ExifTool options. This function can be called to set the default
-options for an ExifTool object. Options set this way are in effect for
-all function calls but may be overridden by options passed as arguments
-to some functions. Option names are not case sensitive.
+
+
+Apr. 13, 2021 - Version 12.24
+
+
+
+Apr. 1, 2021 - Version 12.23
+
+
+
+Mar. 17, 2021 - Version 12.22
+
+
+
+
+
+Feb. 24, 2021 - Version 12.21
+
+
+
+
+
+Feb. 23, 2021 - Version 12.20
+
+
+
+Feb. 18, 2021 - Version 12.19
+
+
+
+Feb. 9, 2021 - Version 12.18
+
+
+
+
+
+Feb. 3, 2021 - Version 12.17
+
+
+
+Jan. 21, 2021 - Version 12.16 (production release)
+
+
+
+Jan. 18, 2021 - Version 12.15 (production release)
+
+
+
+
+
+Jan. 6, 2021 - Version 12.14
+
+
+
+Dec. 24, 2020 - Version 12.13
+
+
+
+Dec. 4, 2020 - Version 12.12
+
+
+
+Nov. 27, 2020 - Version 12.11
+
+
+
+Nov. 12, 2020 - Version 12.10
+
+
+
+Oct. 29, 2020 - Version 12.09
+
+
+
+Oct. 15, 2020 - Version 12.08
+
+
+
+Oct. 2, 2020 - Version 12.07
+
+
+
+Sept. 11, 2020 - Version 12.06
+
+
+
+Aug. 24, 2020 - Version 12.05
+
+
+
+Aug. 10, 2020 - Version 12.04
+
+
+
+July 29, 2020 - Version 12.03
+
+
+
+July 27, 2020 - Version 12.02
+
+
+
+
+
+
+
+June 24, 2020 - Version 12.01
+
+
+
+June 11, 2020 - Version 12.00 (production release)
+
+
+
+May 11, 2020 - Version 11.99
+
+
+
+
+
+May 1, 2020 - Version 11.98
+
+
+
+Apr. 27, 2020 - Version 11.97
+
+
+
+Apr. 24, 2020 - Version 11.96
+
+
+
+Apr. 23, 2020 - Version 11.95
+
+
+
+Apr. 17, 2020 - Version 11.94
+
+
+
+Apr. 3, 2020 - Version 11.93
+
+
+
+Mar. 19, 2020 - Version 11.92
+
+
+
+
+
+Mar. 5, 2020 - Version 11.91
+
+
+
+Mar. 3, 2020 - Version 11.90
+
+
+
+Feb. 25, 2020 - Version 11.89
+
+
+
+Feb. 20, 2020 - Version 11.88
+
+
+
+Feb. 13, 2020 - Version 11.87
+
+
+
+Feb. 4, 2020 - Version 11.86
+
+
+
+Jan. 28, 2020 - Version 11.85 (production release)
+
+
+
+
+
+Jan. 10, 2020 - Version 11.84
+
+
+
+Jan. 9, 2020 - Version 11.83
+
+
+
+Jan. 8, 2020 - Version 11.82
+
+
+
+Jan. 2, 2020 - Version 11.81
+
+
+
+Dec. 17, 2019 - Version 11.80
+
+
+
+Dec. 12, 2019 - Version 11.79
+
+
+
+Dec. 5, 2019 - Version 11.78
+
+
+
+Nov. 27, 2019 - Version 11.77
+
+
+
+Nov. 12, 2019 - Version 11.76
+
+
+
+Nov. 4, 2019 - Version 11.75
+
+
+
+Oct. 29, 2019 - Version 11.74
+
+
+
+Oct. 23, 2019 - Version 11.73
+
+
+
+Oct. 22, 2019 - Version 11.72
+
+
+
+Oct. 16, 2019 - Version 11.71
+
+
+
+Oct. 10, 2019 - Version 11.70 (production release)
+
+
+
+
+
Oct. 2, 2019 - Version 11.69
diff -Nru libimage-exiftool-perl-11.88/html/config.html libimage-exiftool-perl-12.40+dfsg/html/config.html
--- libimage-exiftool-perl-11.88/html/config.html 2020-02-12 13:19:15.000000000 +0000
+++ libimage-exiftool-perl-12.40+dfsg/html/config.html 2021-09-22 18:09:05.000000000 +0000
@@ -23,12 +23,12 @@
#
# To activate this file, rename it to ".ExifTool_config" and
# place it in your home directory or the exiftool application
-# directory. (On Windows and Mac systems this must be done via
-# the command line since the GUI's don't allow filenames to begin
-# with a dot. Use the "rename" command in Windows or "mv" on the
-# Mac.) This causes ExifTool to automatically load the file when
-# run. Your home directory is determined by the first defined of
-# the following environment variables:
+# directory. (On Mac and some Windows systems this must be done
+# via the command line since the GUI's may not allow filenames to
+# begin with a dot. Use the "rename" command in Windows or "mv"
+# on the Mac.) This causes ExifTool to automatically load the
+# file when run. Your home directory is determined by the first
+# defined of the following environment variables:
#
# 1. EXIFTOOL_HOME
# 2. HOME
@@ -141,7 +141,7 @@
# Example 12. PNG:NewPngTag1
NewPngTag1 => { },
# Example 13. PNG:NewPngTag2
- NewPngTag2 => { },
+ NewPngTag2 => { iTXt => 1 }, # (force this tag to be written as iTXt)
# Example 14. PNG:NewPngTag3
NewPngTag3 => { },
},
diff -Nru libimage-exiftool-perl-11.88/html/data_members.html libimage-exiftool-perl-12.40+dfsg/html/data_members.html
--- libimage-exiftool-perl-11.88/html/data_members.html 2019-12-17 13:14:43.000000000 +0000
+++ libimage-exiftool-perl-12.40+dfsg/html/data_members.html 2021-11-16 16:10:44.000000000 +0000
@@ -64,7 +64,7 @@
-DemoteErrors Errors are demoted to warnings and this count is
incremented if non-zero to begin with
+DIR_COUNT Hash reference for counters of various types of directorys (ICC, IPTC,...) DIR_COUNT Hash reference for counters of various types of directories (ICC, IPTC,...)
@@ -85,9 +85,17 @@
writing (Note: entry may exist but be undefined for top-level
directory!)
+DIR_NAME Name of directory currently being processed
+
+End Used by application to signal end of processing
+
EndDir Used by application to signal end of the current directory
-ESCAPE_PROC Routine for XML or HTML escaping if Escape option is set
+EXCL_TAG_LOOKUP Hash for looking up excluded tags (keys are lower case tag names)
+
+EXCL_TAG_LOOKUP Hash for looking up excluded tags (keys are lower case tag names without group) EXCL_XMP_LOOKUP Hash for looking up excluded "XMP-xxx:yyy" tags (keys are lower case including group).
+ "XMP-xxx" may be any ExifTool family 1 XMP group name, or "XMP-all" for any XMP group. "yyy" may
+ be any XMP property name (NOT ExifTool tag name), or "all" for all tags in a group
diff -Nru libimage-exiftool-perl-11.88/html/ExifTool.html libimage-exiftool-perl-12.40+dfsg/html/ExifTool.html
--- libimage-exiftool-perl-11.88/html/ExifTool.html 2020-02-20 14:12:56.000000000 +0000
+++ libimage-exiftool-perl-12.40+dfsg/html/ExifTool.html 2022-01-12 22:51:53.000000000 +0000
@@ -170,7 +170,7 @@
EXIF_DATA EXIF data block (valid while reading from file)
2-N) [optional] list of tag names to find (or tag list reference or
options hash reference, see below)
-
+Returns Reference to hash of tag key/value pairs Returns Reference to hash of tag-key/value pairs Options
The default option values may be changed by defining a %Image::ExifTool::UserDefined::Options hash. See the -ExifTool_config file in the full ExifTool -distribution for examples.
+ExifTool_config file in the full ExifTool distribution +for examples. A default of undef has the same behaviour as a value of 0 for +numerical options.
Prototype Options($$;@) + Inputs 0) ExifTool object reference @@ -427,6 +430,13 @@ are not necessarily extracted unless this option is set or the tag is specifically requested by name. 0 or 1 undef BlockExtract Flag to extract some directories + (mentioned in the Tag Name documentation) as a block. ++
+ 0 = Extract as block only if tag specified by name + 1 = Extract as block, and extract contained tags + 2 = Extract as block without contained tags undef ByteOrder The byte order for newly created EXIF segments when writing. Note that if EXIF information already exists, the existing order is maintained. If ByteOrder is not defined, then the order of the maker notes is @@ -455,6 +465,7 @@ Thai (cp874) DOSLatinUS (cp437) + DOSLatin1 (cp850) DOSCyrillic (cp866) MacRoman (cp10000, Mac, Roman) MacLatin2 (cp10029) @@ -495,13 +506,14 @@ Note that 'NoPadding' effects only embedded XMP since padding is never written for stand-alone XMP files. Also note that 'OneDesc' is not recommended when writing XMP larger than 64 kB to a JPG file because it interferes with ExifTool's technique - of splitting off the large description elements into the extended XMP. Case is not - significant for any of these options. MacCyrillic (cp10007) -
- NoPadding = Avoid 2 kB of recommended padding at end of XMP - NoIndent = Avoid spaces to indent lines for readability + of splitting off large rdf:Description elements into the extended XMP. Case is not + significant for any of these options. Some options have aliases (shown in brackets). + NoNewline = Avoid unnecessary newlines @@ -1097,8 +1142,8 @@ WriteInfo: +
@@ -1030,7 +1066,16 @@ to additional files without the need to call SetNewValue again. -+ NoPadding = Avoid 2 kB of recommended padding at end of XMP (NoPad) + NoIndent = Avoid spaces to indent lines for readability (NoSpace, NoSpaces) NoNewline = Avoid unnecessary newlines (NoNewlines) - Shorthand = Use XMP Shorthand format + OneDesc = Combine XMP properties into a single rdf:Description OneDesc = Combine XMP properties into a single rdf:Description (OneDescr) AllSpace = 'NoPadding,NoIndent,NoNewline' AllFormat = 'Shorthand,OneDesc' @@ -566,8 +578,12 @@ All = 'AllSpace,AllFormat' Flag to extract information from embedded documents in EPS files, embedded EPS information and JPEG and Jpeg2000 images in PDF files, embedded MPF images in JPEG and MPO files, timed - metadata in videos, and the resource fork of Mac OS files. -0 or 1 undef + metadata in videos, and the resource fork of Mac OS files. A setting of 2 + also causes the H264 video stream in MP4 files to be parsed until the first + SEI message is decoded, or 3 to parse the entire H264 stream in MP4 videos + and the entire M2TS file to look for any unlisted program containing GPS + metadata. +0, 1, 2 or 3 undef + based on the file's extension. For 5, generation of Composite tags is also + disabled (like setting Composite to 0). + FastScan Flag to increase speed when reading files by avoiding extraction of some types of metadata. With this option set to 1, ExifTool will not scan to the @@ -583,23 +599,26 @@ MakerNote information, and will stop parsing at the IDAT chunk of PNG images. (By the PNG specification, metadata is allowed after IDAT, but ExifTool always writes it before because some utilities will ignore it - otherwise.) When set to 3 or 4, only pseudo system tags and FileType are + otherwise.) When set to 3 or higher, only pseudo system tags and FileType are generated. For 3, the file header is read to provide an educated guess at FileType. For 4, the file is not read at all and FileType is determined - based on the file's extension. -0, 1, 2, 3 or 4 undef 0, 1, 2, 3, 4 or 5 undef Filter Perl expression used to filter all returned tag values. Applies to PrintConv values only. List items are filtered individually. Expression to act on the value of the Perl default variable ($_), - changing the value of this variable as required. The value is not changed - if $_ is set to undef. + changing the value of this variable as required. The current ExifTool + object may be accessed through $self. The value is not changed if $_ is + set to undef.undef FilterW Perl expression used to filter PrintConv values when writing. Expression to act on the value of the Perl default variable ($_), - changing the value of this variable as required. The value is not changed - if $_ is set to undef. + changing the value of this variable as required. The current ExifTool + object may be accessed through $self. The tag is not written if $_ is + set to undef.undef + FixBase Fix maker notes base offset. Allows values to be extracted from maker notes @@ -661,6 +680,9 @@ See GetGroup for a description of group families, and GetAllGroups for a list of available groups. undef HexTagIDs Use hexadecimal instead of decimal for the family 7 + group names of tags with numerical ID's. +0 or 1 undef + HtmlDump Dump information in hex to a dynamic HTML web page. Option value sets a limit on the maximum block size. Output file is specified by the TextOut option. @@ -733,6 +755,8 @@ expression returns undef). If not set, a minor error is issued for missing values, or the value is set to '' if IgnoreMinorErrors is set.Any string, or undef undef NoMultiExif Raise error when attempting to write multi-segment + EXIF in a JPEG image. 0 or 1 undef @@ -745,8 +769,17 @@ NoPDFList Flag to avoid splitting PDF list-type tag values into separate items. 0 or 1 undef + QuickTimeHandler Flag set to add an 'mdir' Handler to a newly created Meta box when adding QuickTime ItemList tags. Adobe Bridge does not add this - Handler, but it is commonly found in samples from other software, so it is - possible that this could affect the interoperability of ItemList tags. + Handler, but it is commonly found in samples from other software, and it has been + reported that Apple QuickTime Player and Photos.apps will ignore ItemList tags + if this is missing. +0 or 1 +1 QuickTimePad Flag to preserve the padding of + some QuickTime atoms when writing. QuickTime-based Canon CR3 files pad + the values of container atoms with null bytes. This padding is removed by + default when the file is rewritten, but setting this option to 1 adds + padding to preserve the original atom size if the new atom would be smaller + than the original. 0 or 1 undef QuickTimeUTC Flag set to assume that QuickTime @@ -754,16 +787,17 @@ extracted and from local time when written. According to the QuickTime specification date/time values should be UTC, but many digital cameras store local time instead (presumably because they don't know the time zone), so - the default is to not convert these times. This option also disables the - autodetection of incorrect time-zero offsets in QuickTime date/time values, - and enforces a time zero of 1904 as per the QuickTime specification. + the default is to not convert these times (except for Canon CR3 files, which + always use UTC times). This option also disables the autodetection of + incorrect time-zero offsets in QuickTime date/time values, and enforces a + time zero of 1904 as per the QuickTime specification.0 or 1 undef RequestAll Flag to request all tags to be extracted. This causes some tags to be generated which normally would not be unless specifically requested (by passing the tag name to ImageInfo or ExtractInfo). May be set to 2 or 3 to enable generation - of some additional tags as mentioned in the tag name documentation. + of some additional tags as mentioned in the Tag Name documentation.0, 1, 2 or 3 undef - RequestTags List of additional tag and/or group names to request in the next call to ExtractInfo. This option is @@ -851,8 +885,10 @@ PARAM is the user-defined parameter name (case insensitive). These parameters may be accessed in tag name expressions by prefixing the parameter name with a dollar sign just like normal tags, or via the API by calling Options('UserParam','PARAM')
. - If called without no additional arguments,Options('UserParam')
returns - a reference to the hash of all user parameters (with lower-case names). + Appending a hash tag (#
) to the parameter name also causes the parameter + to be extracted as a normal tag (in the UserParam group). If called without + additional arguments,Options('UserParam')
returns a reference to the + hash of all user parameters (with lower-case names).
@@ -865,7 +901,7 @@ PARAM - Get parameter undef - Clear UserParam hash { } Validate Flag to perform extra validation checks + Validate Flag to perform extra metadata validation checks when reading, causing extra warnings to be generated if problems are found. 0 or 1 undef Verbose Print verbose messages to file specified by TextOut option. @@ -893,7 +929,7 @@ MacOS XAttr Tags documentation for more information). 0 or 1 undef XMPAutoConv Flag to enable automatic conversion - for unknown XMP tags with values that look like rational numbers or dates. + when reading unknown XMP tags with values that look like rational numbers or dates.0 or 1 1 Note that it is NOT necessary to call ExtractInfo +
ExifTool queues all new values that are assigned via calls to +SetNewValue, then applies them to any number of files +through one or more calls to WriteInfo. These queued +values may be accessed through GetNewValue, and are +completely separate from metadata extracted from files via +ExtractInfo or ImageInfo +and accessed through GetInfo or +GetValue.
+ +To be clear, it is NOT necessary to call ExtractInfo or ImageInfo before WriteInfo. WriteInfo changes only metadata specified by previous calls to SetNewValue.
@@ -1042,8 +1087,8 @@ create a file from scratch. A reference to a File::RandomAccess object is also allowed as a source, but in this case the destination is not optional.
2) [optional] Destination file name, file reference, scalar - reference, or undef to overwrite the original file. May be '-' to write to - stdout. + reference to write to memory, or undef to overwrite the original file. May + be '-' to write to stdout.
3) [optional] Destination file type. Ignored if a source is defined.ByteOrder, Charset, CharsetEXIF, CharsetFileName, CharsetIPTC, Compact, -Compress, FixBase, IgnoreMinorErrors, Password, QuickTimeHandler, Verbose -and WriteMode. +Compress, FixBase, IgnoreMinorErrors, NoMultiExif, NoPDFList, Password, +QuickTimeHandler, QuickTimePad, Verbose and WriteMode.GetTagList
@@ -1257,8 +1302,8 @@ to using a Group option argument. Also, a '#
' may be appended to the tag name (eg. 'EXIF:Orientation#
'), with the same effect as setting Type to 'ValueConv'. Wildcards ('*
' and - '?
') may be used in the tag name to assign multiple tags - simultaneously A tag name of '*
' is special when deleting + '?
') may be used in the tag name to assign or delete multiple + tags simultaneously. A tag name of '*
' is special when deleting information, and will delete an entire group even if some individual tags in the group are not writable, but only if a single family 0 or 1 group name is specified (otherwise, the tags are deleted individually). Use @@ -1311,7 +1356,7 @@NoFlat Treat flattened tags as 'unsafe' 0 or 1 0 - NoShortcut Disables default behaviour of looking up tag in shortcuts if not found otherwise. 0 or 1 0 Protected Allow protected tags to be written +Protected Allow unsafe and protected tags to be written Bitmask of tag protection levels to write:
0x01 = @@ -1461,7 +1506,8 @@
Prototype GetNewValue($$) Inputs 0) ExifTool object reference -
1) Tag name (case sensitive, may be prefixed by family 0 or 1 group name) +
1) Tag name (case sensitive, may be prefixed by family 0, 1 or 7 + group names, separated by colons)Returns List of new Raw tag values, or first value in list when called in scalar context. The list may be empty either if the tag @@ -1487,8 +1533,8 @@
1) File name, file reference, or scalar reference
2-N) [optional] List of tag names to set or options hash references. All writable tags are set if none are specified. The tag names - are not case sensitive, and may be prefixed by one or more family 0, 1 or 2 - group names with optional leading family numbers, separated by colons (eg. + are not case sensitive, and may be prefixed by one or more family 0, 1, 2 + or 7 group names with optional leading family numbers, separated by colons (eg. 'exif:iso
'). A leading '-
' indicates tags to be excluded (eg. '-comment
'), or a trailing '#
' causes the ValueConv value to be copied (same as setting the Type option to @@ -1729,7 +1775,8 @@Notes:
Will not overwrite existing files. New directories are created as -necessary.
+necessary. If the file is successfully renamed, the new file name may be +accessed via$$exifTool{NewName}
.SetNewGroups
Set the order of the preferred groups when adding new information. In @@ -1829,7 +1876,8 @@
3 Document Number Main, Doc1, Doc3-2 4 Instance Number Copy1, Copy2, Copy3... - 5 Metadata Path eg. JPEG-APP1-IFD0-ExifIFD + 6 EXIF/TIFF Format int8u, int32u, undef, string... + 6 EXIF/TIFF Format int8u, int32u, undef, string 7 Tag ID ID-271, ID-rights, ID-a9aut Families 0 and 1 are based on the file structure, and are similar except that @@ -1870,6 +1918,15 @@
Family 6 is currently used only for EXIF/TIFF metadata, and gives the format type of the extracted value. Generated only if the SaveFormat option is used when extracting.
+Family 7 is used for tag ID's. The group names are the actual tag ID's with +a leading "ID-" string. Non-numerical tag ID's have characters other than +[-_A-Za-z0-9] converted to hex. Numerical tag ID's are returned in hex if the +HexTagIDs option is set, otherwise decimal is used. +When specifying a family 7 group name, numerical ID's may be in hex (with +leading "0x") or decimal, and non-numerical ID's may or may not have characters +other than [-_A-Za-z0-9] converted to hex. Note that unlike other group names, +the tag ID's in family 7 group names are case sensitive (but the leading "ID-" +is not).
See GetAllGroups for lists of group names.
Examples:
@@ -2025,7 +2082,7 @@Get list of all group names in specified family.
- Prototype GetAllGroups($) Inputs 0) Group family number (0-4) + Inputs 0) Group family number (0-7) @@ -2034,55 +2091,56 @@ Returns A list of all groups in the specified family in alphabetical order +
Family Group Names 0 (Information Type) -AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP4, APP5, -APP6, APP8, ASF, Audible, CanonVRD, Composite, DICOM, DNG, DV, DjVu, Ducky, -EXE, EXIF, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font, + AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP3, APP4, +APP5, APP6, APP8, ASF, Audible, CanonVRD, Composite, DICOM, DNG, DV, DjVu, +Ducky, EXE, EXIF, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font, FotoStation, GIF, GIMP, GeoTiff, GoPro, H264, HTML, ICC_Profile, ID3, IPTC, -ISO, ITC, JFIF, JPEG, JSON, Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE, MIFF, -MNG, MOI, MPC, MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg, OpenEXR, -Opus, PDF, PICT, PLIST, PNG, PSP, Palm, Parrot, PanasonicRaw, PhotoCD, -PhotoMechanic, Photoshop, PostScript, PrintIM, QuickTime, RAF, RIFF, RSRC, -RTF, Radiance, Rawzor, Real, Red, SVG, SigmaRaw, Stim, Theora, Torrent, -Trailer, VCard, Vorbis, WTV, XML, XMP, ZIP +ISO, ITC, JFIF, JPEG, JSON, JUMBF, Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE, +MIFF, MNG, MOI, MPC, MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg, +OpenEXR, Opus, PDF, PICT, PLIST, PNG, PSP, Palm, Parrot, PanasonicRaw, +PhotoCD, PhotoMechanic, Photoshop, PostScript, PrintIM, QuickTime, RAF, +RIFF, RSRC, RTF, Radiance, Rawzor, Real, Red, SVG, SigmaRaw, Stim, Theora, +Torrent, Trailer, UserParam, VCard, Vorbis, WTV, XML, XMP, ZIP 1 (Specific Location) AC3, AFCP, AIFF, APE, ASF, AVI1, Adobe, AdobeCM, AdobeDNG, Apple, Audible, -CIFF, CameraIFD, Canon, CanonCustom, CanonRaw, CanonVRD, Casio, Chapter#, -Composite, DICOM, DJI, DNG, DV, DjVu, DjVu-Meta, Ducky, EPPIM, EXE, EXIF, -ExifIFD, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font, +CBOR, CIFF, CameraIFD, Canon, CanonCustom, CanonRaw, CanonVRD, Casio, +Chapter#, Composite, DICOM, DJI, DNG, DV, DjVu, DjVu-Meta, Ducky, EPPIM, +EXE, EXIF, ExifIFD, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font, FotoStation, FujiFilm, FujiIFD, GE, GIF, GIMP, GPS, GeoTiff, GlobParamIFD, GoPro, GraphConv, H264, HP, HTC, HTML, HTML-dc, HTML-ncc, HTML-office, HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm, ICC-clrt, ICC-header, ICC-meas, ICC-meta, ICC-view, ICC_Profile, ICC_Profile#, ID3, ID3v1, ID3v1_Enh, ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1, IPTC, IPTC#, ISO, ITC, Insta360, -InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JSON, JVC, Jpeg2000, -KDC_IFD, Keys, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD, -KyoceraRaw, LNK, Leaf, LeafSubIFD, Leica, Lytro, M2TS, MAC, MIE-Audio, -MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS, MIE-Geo, -MIE-Image, MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta, MIE-Orient, -MIE-Preview, MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video, MIFF, MNG, -MOBI, MOI, MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, MacOS, MakerNotes, -MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD, Microsoft, Minolta, -MinoltaRaw, Motorola, NITF, Nikon, NikonCapture, NikonCustom, NikonScan, -Nintendo, Ocad, Ogg, Olympus, OpenEXR, Opus, PDF, PICT, PNG, PNG-pHYs, PSP, -Palm, Panasonic, PanasonicRaw, Pentax, PhaseOne, PhotoCD, PhotoMechanic, -Photoshop, PictureInfo, PostScript, PreviewIFD, PrintIM, ProfileIFD, -Qualcomm, QuickTime, RAF, RAF2, RIFF, RMETA, RSRC, RTF, Radiance, Rawzor, -Real, Real-CONT, Real-MDPR, Real-PROP, Real-RA3, Real-RA4, Real-RA5, -Real-RJMD, Reconyx, Red, Ricoh, SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#, -SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw, Sony, SonyIDC, Stim, SubIFD, -System, Theora, Torrent, Track#, UserData, VCalendar, VCard, Version0, -Vorbis, WTV, XML, XMP, XMP-DICOM, XMP-Device, XMP-GAudio, XMP-GDepth, -XMP-GFocus, XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-LImage, XMP-MP, -XMP-MP1, XMP-PixelLive, XMP-aas, XMP-acdsee, XMP-album, XMP-apple-fi, -XMP-aux, XMP-cc, XMP-cell, XMP-creatorAtom, XMP-crs, XMP-dc, XMP-dex, -XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-exif, XMP-exifEX, -XMP-expressionmedia, XMP-extensis, XMP-fpv, XMP-getty, XMP-ics, -XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft, -XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-pdf, XMP-pdfx, XMP-photomech, -XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism, XMP-prl, XMP-prm, XMP-pur, -XMP-rdf, XMP-swf, XMP-tiff, XMP-x, XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpMM, -XMP-xmpNote, XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP +InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JPS, JSON, JUMBF, JVC, +Jpeg2000, KDC_IFD, Keys, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD, +KyoceraRaw, LNK, Leaf, LeafSubIFD, Leica, Lyrics3, Lytro, M2TS, MAC, +MIE-Audio, MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS, +MIE-Geo, MIE-Image, MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta, +MIE-Orient, MIE-Preview, MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video, +MIFF, MNG, MOBI, MOI, MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, MacOS, +MakerNotes, MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD, Microsoft, +Minolta, MinoltaRaw, Motorola, NITF, Nikon, NikonCapture, NikonCustom, +NikonScan, NikonSettings, NineEdits, Nintendo, Ocad, Ogg, Olympus, OpenEXR, +Opus, PDF, PICT, PNG, PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Pentax, +PhaseOne, PhotoCD, PhotoMechanic, Photoshop, PictureInfo, PostScript, +PreviewIFD, PrintIM, ProfileIFD, Qualcomm, QuickTime, RAF, RAF2, RIFF, +RMETA, RSRC, RTF, Radiance, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP, +Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Reconyx, Red, Ricoh, SPIFF, SR2, +SR2DataIFD, SR2SubIFD, SRF#, SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw, +Sony, SonyIDC, Stim, SubIFD, System, Theora, Torrent, Track#, UserData, +UserParam, VCalendar, VCard, Version0, Vorbis, WTV, XML, XMP, XMP-DICOM, +XMP-Device, XMP-GAudio, XMP-GDepth, XMP-GFocus, XMP-GImage, XMP-GPano, +XMP-GSpherical, XMP-LImage, XMP-MP, XMP-MP1, XMP-PixelLive, XMP-aas, +XMP-acdsee, XMP-album, XMP-apple-fi, XMP-aux, XMP-cc, XMP-cell, +XMP-creatorAtom, XMP-crs, XMP-dc, XMP-dex, XMP-digiKam, XMP-drone-dji, +XMP-dwc, XMP-exif, XMP-exifEX, XMP-expressionmedia, XMP-extensis, XMP-fpv, +XMP-getty, XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, +XMP-microsoft, XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-pdf, XMP-pdfx, +XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism, XMP-prl, +XMP-prm, XMP-pur, XMP-rdf, XMP-swf, XMP-tiff, XMP-x, XMP-xmp, XMP-xmpBJ, +XMP-xmpDM, XMP-xmpMM, XMP-xmpNote, XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, +ZIP, iTunes 2 (Category) Audio, Author, Camera, Device, Document, ExifTool, Image, Location, Other, @@ -2100,7 +2158,14 @@ + 6 (EXIF/TIFF Format) int8u, string, int16u, int32u, rational64u, int8s, undef, int16s, int32s, rational64s, float, double, ifd, unicode, complex, int64u, int64s, ifd64 7 (Tag ID) +ID-xxx (Where xxx is the tag ID. Numerical ID's are returned in hex with a +leading "0x" if the HexTagIDs option is set, or decimal otherwise. Characters +in non-numerical ID's which are not valid in a group name are returned as 2 +hex digits.) Note: This function may also be called as an ExifTool member function to +allow the HexTagIDs option to be set when retrieving family 7 group names.
Example:
@groupList = Image::ExifTool::GetAllGroups($family); @@ -2118,14 +2183,14 @@Below is a current list of deletable group names.
-AFCP, APP0, APP1, APP10, APP11, APP12, APP13, APP14, APP15, APP2, APP3, -APP4, APP5, APP6, APP7, APP8, APP9, Adobe, Audio, Author, CIFF, Camera, -CanonVRD, Document, Ducky, EXIF, ExifIFD, ExifTool, File, FlashPix, -FotoStation, GPS, GlobParamIFD, ICC_Profile, IFD0, IFD1, IPTC, Image, -InteropIFD, JFIF, Jpeg2000, Location, MIE, MPF, MakerNotes, Meta, MetaIFD, -NikonCapture, Other, PDF, PDF-update, PNG, PNG-pHYs, PhotoMechanic, -Photoshop, Preview, PrintIM, Printing, RMETA, RSRC, SubIFD, Time, Trailer, -Video, XML, XML-*, XMP, XMP-*+Adobe, AFCP, APP0, APP1, APP10, APP11, APP12, APP13, APP14, APP15, APP2, +APP3, APP4, APP5, APP6, APP7, APP8, APP9, Audio, Author, Camera, CanonVRD, +CIFF, Document, Ducky, EXIF, ExifIFD, ExifTool, File, FlashPix, FotoStation, +GlobParamIFD, GPS, ICC_Profile, IFD0, IFD1, Image, Insta360, InteropIFD, +IPTC, ItemList, JFIF, Jpeg2000, Keys, Location, MakerNotes, Meta, MetaIFD, +Microsoft, MIE, MPF, NikonCapture, Other, PDF, PDF-update, PhotoMechanic, +Photoshop, PNG, PNG-pHYs, Preview, PrintIM, Printing, QuickTime, RMETA, +RSRC, SubIFD, Time, Trailer, UserData, Video, XML, XML-*, XMP, XMP-*To schedule a group for deletion, call SetNewValue with a tag name like '
EXIF:*
' and an undefined tag value.Deleting a family 0 or 1 group will delete the entire corresponding block of diff -Nru libimage-exiftool-perl-11.88/html/exiftool_pod.html libimage-exiftool-perl-12.40+dfsg/html/exiftool_pod.html --- libimage-exiftool-perl-11.88/html/exiftool_pod.html 2020-02-20 14:43:20.000000000 +0000 +++ libimage-exiftool-perl-12.40+dfsg/html/exiftool_pod.html 2022-02-09 12:17:57.000000000 +0000 @@ -4,7 +4,7 @@
exiftool Application Documentation - + @@ -29,7 +29,7 @@DESCRIPTION OPTIONS -
- Option Summary
+- Option Overview
- Option Details
- Tag operations
@@ -56,6 +56,7 @@- RENAMING EXAMPLES
- GEOTAGGING EXAMPLES
- PIPING EXAMPLES
+- INTERRUPTING EXIFTOOL
- EXIT STATUS
- AUTHOR
- SEE ALSO
@@ -77,7 +78,7 @@Copying
-exiftool [OPTIONS] -tagsFromFile SRCFILE [-SRCTAG[>DSTTAG]...] FILE...
+exiftool [OPTIONS] -tagsFromFile SRCFILE [-[DSTTAG<]SRCTAG...] FILE...
Other
@@ -99,46 +100,48 @@-File Types ------------+-------------+-------------+-------------+------------ - 3FR r | DR4 r/w/c | ITC r | ODP r | RIFF r - 3G2 r/w | DSS r | J2C r | ODS r | RSRC r - 3GP r/w | DV r | JNG r/w | ODT r | RTF r - A r | DVB r/w | JP2 r/w | OFR r | RW2 r/w - AA r | DVR-MS r | JPEG r/w | OGG r | RWL r/w - AAE r | DYLIB r | JSON r | OGV r | RWZ r - AAX r/w | EIP r | K25 r | OPUS r | RM r - ACR r | EPS r/w | KDC r | ORF r/w | SEQ r - AFM r | EPUB r | KEY r | OTF r | SKETCH r - AI r/w | ERF r/w | LA r | PAC r | SO r - AIFF r | EXE r | LFP r | PAGES r | SR2 r/w - APE r | EXIF r/w/c | LNK r | PBM r/w | SRF r - ARQ r/w | EXR r | LRV r/w | PCD r | SRW r/w - ARW r/w | EXV r/w/c | M2TS r | PCX r | SVG r - ASF r | F4A/V r/w | M4A/V r/w | PDB r | SWF r - AVI r | FFF r/w | MAX r | PDF r/w | THM r/w - AVIF r/w | FITS r | MEF r/w | PEF r/w | TIFF r/w - AZW r | FLA r | MIE r/w/c | PFA r | TORRENT r - BMP r | FLAC r | MIFF r | PFB r | TTC r - BPG r | FLIF r/w | MKA r | PFM r | TTF r - BTF r | FLV r | MKS r | PGF r | TXT r - CHM r | FPF r | MKV r | PGM r/w | VCF r - COS r | FPX r | MNG r/w | PLIST r | VRD r/w/c - CR2 r/w | GIF r/w | MOBI r | PICT r | VSD r - CR3 r/w | GPR r/w | MODD r | PMP r | WAV r - CRM r/w | GZ r | MOI r | PNG r/w | WDP r/w - CRW r/w | HDP r/w | MOS r/w | PPM r/w | WEBP r - CS1 r/w | HDR r | MOV r/w | PPT r | WEBM r - CSV r | HEIC r/w | MP3 r | PPTX r | WMA r - DCM r | HEIF r/w | MP4 r/w | PS r/w | WMV r - DCP r/w | HTML r | MPC r | PSB r/w | WTV r - DCR r | ICC r/w/c | MPG r | PSD r/w | WV r - DFONT r | ICS r | MPO r/w | PSP r | X3F r/w - DIVX r | IDML r | MQV r/w | QTIF r/w | XCF r - DJVU r | IIQ r/w | MRW r/w | R3D r | XLS r - DLL r | IND r/w | MXF r | RA r | XLSX r - DNG r/w | INSP r/w | NEF r/w | RAF r/w | XMP r/w/c - DOC r | INSV r | NRW r/w | RAM r | ZIP r - DOCX r | INX r | NUMBERS r | RAR r | - DPX r | ISO r | O r | RAW r/w | + 360 r/w | DR4 r/w/c | JNG r/w | O r | RAW r/w + 3FR r | DSS r | JP2 r/w | ODP r | RIFF r + 3G2 r/w | DV r | JPEG r/w | ODS r | RSRC r + 3GP r/w | DVB r/w | JSON r | ODT r | RTF r + A r | DVR-MS r | JXL r | OFR r | RW2 r/w + AA r | DYLIB r | K25 r | OGG r | RWL r/w + AAE r | EIP r | KDC r | OGV r | RWZ r + AAX r/w | EPS r/w | KEY r | ONP r | RM r + ACR r | EPUB r | LA r | OPUS r | SEQ r + AFM r | ERF r/w | LFP r | ORF r/w | SKETCH r + AI r/w | EXE r | LIF r | ORI r/w | SO r + AIFF r | EXIF r/w/c | LNK r | OTF r | SR2 r/w + APE r | EXR r | LRV r/w | PAC r | SRF r + ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SRW r/w + ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | SVG r + ASF r | FFF r/w | MACOS r | PCD r | SWF r + AVI r | FITS r | MAX r | PCX r | THM r/w + AVIF r/w | FLA r | MEF r/w | PDB r | TIFF r/w + AZW r | FLAC r | MIE r/w/ | PDF r/w | TORRENT r + BMP r | FLIF r/w | MIFF r c | PEF r/w | TTC r + BPG r | FLV r | MKA r | PFA r | TTF r + BTF r | FPF r | MKS r | PFB r | TXT r + CHM r | FPX r | MKV r | PFM r | VCF r + COS r | GIF r/w | MNG r/w | PGF r | VRD r/w/c + CR2 r/w | GPR r/w | MOBI r | PGM r/w | VSD r + CR3 r/w | GZ r | MODD r | PLIST r | WAV r + CRM r/w | HDP r/w | MOI r | PICT r | WDP r/w + CRW r/w | HDR r | MOS r/w | PMP r | WEBP r + CS1 r/w | HEIC r/w | MOV r/w | PNG r/w | WEBM r + CSV r | HEIF r/w | MP3 r | PPM r/w | WMA r + CZI r | HTML r | MP4 r/w | PPT r | WMV r + DCM r | ICC r/w/c | MPC r | PPTX r | WTV r + DCP r/w | ICS r | MPG r | PS r/w | WV r + DCR r | IDML r | MPO r/w | PSB r/w | X3F r/w + DFONT r | IIQ r/w | MQV r/w | PSD r/w | XCF r + DIVX r | IND r/w | MRC r | PSP r | XLS r + DJVU r | INSP r/w | MRW r/w | QTIF r/w | XLSX r + DLL r | INSV r | MXF r | R3D r | XMP r/w/c + DNG r/w | INX r | NEF r/w | RA r | ZIP r + DOC r | ISO r | NKSC r/w | RAF r/w | + DOCX r | ITC r | NRW r/w | RAM r | + DPX r | J2C r | NUMBERS r | RAR r | Meta Information ----------------------+----------------------+--------------------- @@ -162,7 +165,7 @@
Case is not significant for any command-line option (including tag and group names), except for single-character options when the corresponding upper-case option exists. Many single-character options have equivalent long-name versions (shown in brackets), and some options have inverses which are invoked with a leading double-dash. Unrecognized options are interpreted as tag names (for this reason, multiple single-character options may NOT be combined into one argument). Contrary to standard practice, options may appear after source file names on the exiftool command line.
-Option Summary
+Option Overview
@@ -181,13 +184,14 @@ -c FMT (-coordFormat) Set format for GPS coordinates -charset [[TYPE=]CHARSET] Specify encoding for special characters -csv[[+]=CSVFILE] Export/import tags in CSV format + -csvDelim STR Set delimiter for CSV file -d FMT (-dateFormat) Set format for date/time values -D (-decimal) Show tag ID numbers in decimal - -E, -ex (-escape(HTML|XML)) Escape values for HTML (-E) or XML (-ex) + -E,-ex,-ec (-escape(HTML|XML|C))Escape tag values for HTML, XML or C -f (-forcePrint) Force printing of all specified tags -g[NUM...] (-groupHeadings) Organize output by tag group -G[NUM...] (-groupNames) Print group name for each tag - -h (-htmlFormat) Use HMTL formatting for output + -h (-htmlFormat) Use HTML formatting for output -H (-hex) Show tag ID numbers in hexadecimal -htmlDump[OFFSET] Generate HTML-format binary dump -j[[+]=JSONFILE] (-json) Export/import tags in JSON format @@ -214,8 +218,8 @@@@ -292,15 +298,17 @@-a (-duplicates) Allow duplicate tags to be extracted - -e (--composite) Do not calculate composite tags - -ee (-extractEmbedded) Extract information from embedded files + -e (--composite) Do not generate composite tags + -ee[NUM] (-extractEmbedded) Extract information from embedded files -ext[+] EXT (-extension) Process files with specified extension -F[OFFSET] (-fixBase) Fix the base for maker notes offsets -fast[NUM] Increase speed when extracting metadata @@ -262,7 +266,9 @@ -common_args Define common arguments -config CFGFILE Specify configuration file name -echo[NUM] TEXT Echo text to stdout or stderr + -efile[NUM][!] ERRFILE Save names of files with errors -execute[NUM] Execute multiple commands on one line + -list_dir List directories, not their contents -srcfile FMT Process a different source file -stay_open FLAG Keep reading -@ argfile even after EOF -userParam PARAM[[^]=[VAL]] Set user parameter (API UserParam opt)
Exclude specified tag from extracted information. Same as the -x option. Group names and wildcards are permitted as described above for -TAG. Once excluded from the output, a tag may not be re-included by a subsequent option. May also be used following a -tagsFromFile option to exclude tags from being copied (when redirecting to another tag, it is the source tag that should be excluded), or to exclude groups from being deleted when deleting all information (eg.
+-all= --exif:all
deletes all but EXIF information). But note that this will not exclude individual tags from a group delete (unless a family 2 group is specified, see note 4 below). Instead, individual tags may be recovered using the -tagsFromFile option (eg.-all= -tagsfromfile @ -artist
).To speed processing when reading XMP, exclusions in XMP groups also bypass processing of the corresponding XMP property and any contained properties. For example,
+--xmp-crs:all
may speed processing significantly in cases where a large number of XMP-crs tags exist. To use this feature to bypass processing of a specific XMP property, the property name must be used instead of the ExifTool tag name (eg.--xmp-crs:dabs
). Also,XMP-all
may be used to to indicate any XMP namespace (eg. <C--xmp-all:dabs>).- -TAG[+-^]=[VALUE]
- -
Write a new value for the specified tag (eg.
+-comment=wow
), or delete the tag if no VALUE is given (eg.-comment=
).+=
and-=
are used to add or remove existing entries from a list, or to shift date/time values (see Image::ExifTool::Shift.pl and note 6 below for more details).+=
may also be used to increment numerical values (or decrement if VALUE is negative), and-=
may be used to conditionally delete or replace a tag (see "WRITING EXAMPLES" for examples).^=
is used to write an empty string instead of deleting the tag when no VALUE is given, but otherwise it is equivalent to=
.Write a new value for the specified tag (eg.
--comment=wow
), or delete the tag if no VALUE is given (eg.-comment=
).+=
and-=
are used to add or remove existing entries from a list, or to shift date/time values (see Image::ExifTool::Shift.pl and note 6 below for more details).+=
may also be used to increment numerical values (or decrement if VALUE is negative), and-=
may be used to conditionally delete or replace a tag (see "WRITING EXAMPLES" for examples).^=
is used to write an empty string instead of deleting the tag when no VALUE is given, but otherwise it is equivalent to=
, but note that the caret must be quoted on the Windows command line.TAG may contain one or more leading family 0, 1 or 2 group names, prefixed by optional family numbers, and separated colons. If no group name is specified, the tag is created in the preferred group, and updated in any other location where a same-named tag already exists. The preferred group is the first group in the following list where TAG is valid: 1) EXIF, 2) IPTC, 3) XMP.
+TAG may contain one or more leading family 0, 1, 2 or 7 group names, prefixed by optional family numbers, and separated colons. If no group name is specified, the tag is created in the preferred group, and updated in any other location where a same-named tag already exists. The preferred group in JPEG and TIFF-format images is the first group in the following list where TAG is valid: 1) EXIF, 2) IPTC, 3) XMP.
-The wildcards
+*
and?
may be used in tag names to assign the same value to multiple tags. When specified with wildcards, "unsafe" tags are not written. A tag name ofAll
is equivalent to*
(except that it doesn't require quoting, while arguments with wildcards do on systems with shell globbing), and is often used when deleting all metadata (ie.-All=
) or an entire group (eg.-XMP-dc:All=
, see note 4 below). Note that not all groups are deletable, and that the JPEG APP14 "Adobe" group is not removed by default with-All=
because it may affect the appearance of the image. However, color space information is removed, so the colors may be affected (but this may be avoided by copying back the tags defined by the ColorSpaceTags shortcut). Use the -listd option for a complete list of deletable groups, and see note 5 below regarding the "APP" groups. Also, within an image some groups may be contained within others, and these groups are removed if the containing group is deleted:The wildcards
*
and?
may be used in tag names to assign the same value to multiple tags. When specified with wildcards, "Unsafe" tags are not written. A tag name ofAll
is equivalent to*
(except that it doesn't require quoting, while arguments with wildcards do on systems with shell globbing), and is often used when deleting all metadata (ie.-All=
) or an entire group (eg.-XMP-dc:All=
, see note 4 below). Note that not all groups are deletable, and that the JPEG APP14 "Adobe" group is not removed by default with-All=
because it may affect the appearance of the image. However, color space information is removed, so the colors may be affected (but this may be avoided by copying back the tags defined by the ColorSpaceTags shortcut). Use the -listd option for a complete list of deletable groups, and see note 5 below regarding the "APP" groups. Also, within an image some groups may be contained within others, and these groups are removed if the containing group is deleted:JPEG Image: - Deleting EXIF or IFD0 also deletes ExifIFD, GlobParamIFD, @@ -352,7 +360,7 @@
Notes:
-1) Some tags (generally tags which may affect the appearance of the image) are considered "unsafe" to write, and are only copied if specified explicitly (ie. no wildcards). See the tag name documentation for more details about "unsafe" tags.
+1) Some tags (generally tags which may affect the appearance of the image) are considered "Unsafe" to write, and are only copied if specified explicitly (ie. no wildcards). See the tag name documentation for more details about "Unsafe" tags.
2) Be aware of the difference between excluding a tag from being copied (--TAG), and deleting a tag (-TAG=). Excluding a tag prevents it from being copied to the destination image, but deleting will remove a pre-existing tag from the image.
@@ -380,7 +388,7 @@Finally, the behaviour is different when a destination tag or group of
-All
is used. When copying directly, a destination group and/or tag name ofAll
writes to the same family 1 group and/or tag name as the source. But when interpolated in a string, the identity of the source tags are lost and the value is written to all possible groups/tags. For example, the string form must be used in the following command since the intent is to set the value of all existing date/time tags fromCreateDate
:+exiftool "-time:all<$createdate" -wm w FILE
exiftool '-time:all<$createdate' -wm w FILE
- -x TAG (-exclude)
@@ -393,7 +401,7 @@Input-output text formatting
-Note that trailing spaces are removed from extracted values for most output text formats. The exceptions are
+-b
,-csv
,-j
and-X
.Note that trailing spaces are removed from extracted values for most output text formats. The exceptions are -b, -csv, -j and -X.
@@ -403,17 +411,19 @@
Output information in the form of exiftool arguments, suitable for use with the -@ option when writing. May be combined with the -G option to include group names. This feature may be used to effectively copy tags between images, but allows the metadata to be altered by editing the intermediate file (
out.args
in this example):+ exiftool -@ out.args -sep ', ' dst.jpgexiftool -args -G1 --filename --directory src.jpg > out.args - exiftool -@ out.args -sep ", " dst.jpg
Note: Be careful when copying information with this technique since it is easy to write tags which are normally considered "unsafe". For instance, the FileName and Directory tags are excluded in the example above to avoid renaming and moving the destination file. Also note that the second command above will produce warning messages for any tags which are not writable.
+Note: Be careful when copying information with this technique since it is easy to write tags which are normally considered "Unsafe". For instance, the FileName and Directory tags are excluded in the example above to avoid renaming and moving the destination file. Also note that the second command above will produce warning messages for any tags which are not writable.
As well, the -sep option should be used as in the second command above to maintain separate list items when writing metadata back to image files, and the -struct option may be used when extracting to preserve structured XMP information.
-- -b (-binary)
+- -b, --b (-binary, --binary)
- -
Output requested metadata in binary format without tag names or descriptions. This option is mainly used for extracting embedded images or other binary data, but it may also be useful for some text strings since control characters (such as newlines) are not replaced by '.' as they are in the default output. By default, list items are separated by a newline when extracted with the -b option, but this may be changed (see the -sep option for details). May be combined with
+-j
,-php
or-X
to extract binary data in JSON, PHP or XML format, but note that "unsafe" tags must be specified explicitly to be extracted as binary in these formats.Output requested metadata in binary format without tag names or descriptions (-b or -binary). This option is mainly used for extracting embedded images or other binary data, but it may also be useful for some text strings since control characters (such as newlines) are not replaced by '.' as they are in the default output. By default, list items are separated by a newline when extracted with the -b option, but this may be changed (see the -sep option for details). May be combined with -j, -php or -X to extract binary data in JSON, PHP or XML format, but note that "Unsafe" tags are not extracted as binary unless they are specified explicitly or the API RequestAll option is set to 3 or higher.
+ +With a leading double dash (--b or --binary), tags which contain binary data are suppressed in the output when reading.
- -c FMT (-coordFormat)
@@ -457,6 +467,7 @@ Thai cp874 Windows Thai DOSLatinUS cp437 DOS Latin US DOSLatin1 cp850 DOS Latin1 + DOSCyrillic cp866 DOS Cyrillic MacRoman cp10000, Roman Macintosh Roman MacLatin2 cp10029 Macintosh Latin2 (Central Europe) MacCyrillic cp10007 Macintosh Cyrillic @@ -486,7 +497,9 @@- -csv[[+]=CSVFILE]
- -
+Export information in CSV format, or import information if CSVFILE is specified. When importing, the CSV file must be in exactly the same format as the exported file. The first row of the CSVFILE must be the ExifTool tag names (with optional group names) for each column of the file, and values must be separated by commas. A special "SourceFile" column specifies the files associated with each row of information (and a SourceFile of "*" may be used to define default tags to be imported for all files which are combined with any tags specified for the specific SourceFile processed). The following examples demonstrate basic use of this option:
+Export information in CSV format, or import information if CSVFILE is specified. When importing, the CSV file must be in exactly the same format as the exported file. The first row of the CSVFILE must be the ExifTool tag names (with optional group names) for each column of the file, and values must be separated by commas. A special "SourceFile" column specifies the files associated with each row of information (and a SourceFile of "*" may be used to define default tags to be imported for all files which are combined with any tags specified for the specific SourceFile processed). The -csvDelim option may be used to change the input/output field delimiter if something other than a comma is required.
+ +The following examples demonstrate basic use of the -csv option:
# generate CSV file with common tags from all images in a directory exiftool -common -csv dir > out.csv @@ -509,10 +522,16 @@
Note that this option is fundamentally different than all other output format options because it requires information from all input files to be buffered in memory before the output is written. This may result in excessive memory usage when processing a very large number of files with a single command. Also, it makes this option incompatible with the -w option. When processing a large number of files, it is recommended to either use the JSON (-j) or XML (-X) output format, or use -p to generate a fixed-column CSV file instead of using the -csv option.
- -csvDelim STR
+- + +
Set the delimiter for separating CSV entries for CSV file input/output via the -csv option. STR may contain "\t", "\n", "\r" and "\\" to represent TAB, LF, CR and '\' respectively. A double quote is not allowed in the delimiter. Default is ','.
+ +- -d FMT (-dateFormat)
- -
Set the format for date/time tag values. The FMT string may contain formatting codes beginning with a percent character (
+%
) to represent the various components of a date/time value. The specifics of the FMT syntax are system dependent -- consult thestrftime
man page on your system for details. The default format is equivalent to "%Y:%m:%d %H:%M:%S". This option has no effect on date-only or time-only tags and ignores timezone information if present. Only one -d option may be used per command. Requires POSIX::strptime or Time::Piece for the inversion conversion when writing.Set the format for date/time tag values. The FMT string may contain formatting codes beginning with a percent character (
%
) to represent the various components of a date/time value. The specifics of the FMT syntax are system dependent -- consult thestrftime
man page on your system for details. The default format is equivalent to "%Y:%m:%d %H:%M:%S". This option has no effect on date-only or time-only tags and ignores timezone information if present. ExifTool adds a%f
format code to represent fractional seconds, and supports an optional width to specify the number of digits after the decimal point (eg.%3f
would give something like.437
). Only one -d option may be used per command. Requires POSIX::strptime or Time::Piece for the inversion conversion when writing.- -D (-decimal)
@@ -521,10 +540,10 @@Show tag ID number in decimal when extracting information.
-- -E, -ex (-escapeHTML, -escapeXML)
+- -E, -ex, -ec (-escapeHTML, -escapeXML, -escapeC)
- -
Escape characters in output values for HTML (-E) or XML (-ex). For HTML, all characters with Unicode code points above U+007F are escaped as well as the following 5 characters: & (&) ' (') " (") > (>) and < (<). For XML, only these 5 characters are escaped. The -E option is implied with -h, and -ex is implied with -X. The inverse conversion is applied when writing tags.
+Escape characters in output tag values for HTML (-E), XML (-ex) or C (-ec). For HTML, all characters with Unicode code points above U+007F are escaped as well as the following 5 characters: & (&) ' (') " (") > (>) and < (<). For XML, only these 5 characters are escaped. The -E option is implied with -h, and -ex is implied with -X. For C, all control characters and the backslash are escaped. The inverse conversion is applied when writing tags.
- -f (-forcePrint)
@@ -536,7 +555,7 @@- -g[NUM][:NUM...] (-groupHeadings)
- -
Organize output by tag group. NUM specifies a group family number, and may be 0 (general location), 1 (specific location), 2 (category), 3 (document number), 4 (instance number), 5 (metadata path) or 6 (EXIF/TIFF format). -g0 is assumed if a family number is not specified, and family numbers may be added wherever -g is mentioned in the documentation. Multiple families may be specified by separating them with colons. By default the resulting group name is simplified by removing any leading
+Main:
and collapsing adjacent identical group names, but this can be avoided by placing a colon before the first family number (eg. -g:3:1). Use the -listg option to list group names for a specified family. The SavePath and SaveFormat API options are automatically enabled if the respective family 5 or 6 group names are requested. See the API GetGroup documentation for more information.Organize output by tag group. NUM specifies a group family number, and may be 0 (general location), 1 (specific location), 2 (category), 3 (document number), 4 (instance number), 5 (metadata path), 6 (EXIF/TIFF format) or 7 (tag ID). -g0 is assumed if a family number is not specified. May be combined with other options to add group names to the output. Multiple families may be specified by separating them with colons. By default the resulting group name is simplified by removing any leading
Main:
and collapsing adjacent identical group names, but this can be avoided by placing a colon before the first family number (eg. -g:3:1). Use the -listg option to list group names for a specified family. The API SavePath and SaveFormat options are automatically enabled if the respective family 5 or 6 group names are requested. See the API GetGroup documentation for more information.- -G[NUM][:NUM...] (-groupNames)
@@ -566,7 +585,7 @@- -j[[+]=JSONFILE] (-json)
- -
Use JSON (JavaScript Object Notation) formatting for console output, or import JSON file if JSONFILE is specified. This option may be combined with -g to organize the output into objects by group, or -G to add group names to each tag. List-type tags with multiple items are output as JSON arrays unless -sep is used. By default XMP structures are flattened into individual tags in the JSON output, but the original structure may be preserved with the -struct option (this also causes all list-type XMP tags to be output as JSON arrays, otherwise single-item lists would be output as simple strings). The -a option is implied if the -g or -G options are used, otherwise it is ignored and tags with identical JSON names are suppressed. (-g4 may be used to ensure that all tags have unique JSON names.) Adding the -D or -H option changes tag values to JSON objects with "val" and "id" fields, and adding -l adds a "desc" field, and a "num" field if the numerical value is different from the converted "val". The -b option may be added to output binary data, encoded in base64 if necessary (indicated by ASCII "base64:" as the first 7 bytes of the value), and -t may be added to include tag table information (see -t for details). The JSON output is UTF-8 regardless of any -L or -charset option setting, but the UTF-8 validation is disabled if a character set other than UTF-8 is specified.
+Use JSON (JavaScript Object Notation) formatting for console output, or import JSON file if JSONFILE is specified. This option may be combined with -g to organize the output into objects by group, or -G to add group names to each tag. List-type tags with multiple items are output as JSON arrays unless -sep is used. By default XMP structures are flattened into individual tags in the JSON output, but the original structure may be preserved with the -struct option (this also causes all list-type XMP tags to be output as JSON arrays, otherwise single-item lists would be output as simple strings). The -a option is implied when -json is used, but entries with identical JSON names are suppressed in the output. (-G4 may be used to ensure that all tags have unique JSON names.) Adding the -D or -H option changes tag values to JSON objects with "val" and "id" fields, and adding -l adds a "desc" field, and a "num" field if the numerical value is different from the converted "val". The -b option may be added to output binary data, encoded in base64 if necessary (indicated by ASCII "base64:" as the first 7 bytes of the value), and -t may be added to include tag table information (see -t for details). The JSON output is UTF-8 regardless of any -L or -charset option setting, but the UTF-8 validation is disabled if a character set other than UTF-8 is specified.
If JSONFILE is specified, the file is imported and the tag definitions from the file are used to set tag values on a per-file basis. The special "SourceFile" entry in each JSON object associates the information with a specific target file. An object with a missing SourceFile or a SourceFile of "*" defines default tags for all target files which are combined with any tags specified for the specific SourceFile processed. The imported JSON file must have the same format as the exported JSON files with the exception that the -g option is not compatible with the import file format (use -G instead). Additionally, tag names in the input JSON file may be suffixed with a
@@ -653,9 +672,9 @@#
to disable print conversion.- -p FMTFILE or STR (-printFormat)
- -
@@ -887,16 +909,18 @@Print output in the format specified by the given file or string. The argument is interpreted as a string unless a file of that name exists, in which case the string is loaded from the contents of the file. Tag names in the format file or string begin with a
+$
symbol and may contain a leading group names and/or a trailing#
. Case is not significant. Braces{}
may be used around the tag name to separate it from subsequent text. Use$$
to represent a$
symbol, and$/
for a newline.Print output in the format specified by the given file or string. The argument is interpreted as a string unless a file of that name exists, in which case the string is loaded from the contents of the file. Tag names in the format file or string begin with a
-$
symbol and may contain leading group names and/or a trailing#
(to disable print conversion). Case is not significant. Braces{}
may be used around the tag name to separate it from subsequent text. Use$$
to represent a$
symbol, and$/
for a newline.Multiple -p options may be used, each contributing a line (or more) of text to the output. Lines beginning with
+#[HEAD]
and#[TAIL]
are output before the first processed file and after the last processed file respectively. Lines beginning with#[SECT]
and#[ENDS]
are output before and after each section of files. A section is defined as a group of consecutive files with the same section header (eg. files are grouped by directory if#[SECT]
contains$directory
). Lines beginning with#[BODY]
and lines not beginning with#
are output for each processed file. Lines beginning with#[IF]
are not output, but all BODY lines are skipped if any tag on an IF line doesn't exist. Other lines beginning with#
are ignored. For example, this format file:Multiple -p options may be used, each contributing a line (or more) of text to the output. Lines beginning with
#[HEAD]
and#[TAIL]
are output before the first processed file and after the last processed file respectively. Lines beginning with#[SECT]
and#[ENDS]
are output before and after each section of files. A section is defined as a group of consecutive files with the same section header (eg. files are grouped by directory if#[SECT]
contains$directory
). Lines beginning with#[BODY]
and lines not beginning with#
are output for each processed file. Lines beginning with#[IF]
are not output, but all BODY lines are skipped if any tag on an IF line doesn't exist. Other lines beginning with#
are ignored. (To output a line beginning with#
, use#[BODY]#
.) For example, this format file:# this is a comment line #[HEAD]-- Generated by ExifTool $exifToolVersion -- @@ -669,7 +688,7 @@
produces output like this:
--- Generated by ExifTool 11.88 -- +
--- Generated by ExifTool 12.40 -- File: a.jpg - 2003:10:31 15:44:19 (f/5.6, 1/60s, ISO 100) File: b.jpg - 2006:05:23 11:57:38 @@ -680,7 +699,7 @@
When -ee (-extractEmbedded) is combined with -p, embedded documents are effectively processed as separate input files.
-If a specified tag does not exist, a minor warning is issued and the line with the missing tag is not printed. However, the -f option may be used to set the value of missing tags to '-' (but this may be configured via the MissingTagValue API option), or the -m option may be used to ignore minor warnings and leave the missing values empty. Alternatively, -q -q may be used to simply suppress the warning messages.
+If a specified tag does not exist, a minor warning is issued and the line with the missing tag is not printed. However, the -f option may be used to set the value of missing tags to '-' (but this may be configured via the API MissingTagValue option), or the -m option may be used to ignore minor warnings and leave the missing values empty. Alternatively, -q -q may be used to simply suppress the warning messages.
The "Advanced formatting feature" may be used to modify the values of individual tags with the -p option.
@@ -774,13 +793,16 @@1) In a Windows BAT file the
-%
character is represented by%%
, so an argument like%d%f.txt
is written as%%d%%f.txt
.2) If the argument for -w does not contain a valid format code (eg. %f), then it is interpreted as a file extension. It is not possible to specify a simple filename as an argument -- creating a single output file from multiple source files is typically done by shell redirection, ie)
+2) If the argument for -w does not contain a valid format code (eg. %f), then it is interpreted as a file extension, but there are three different ways to create a single output file from multiple source files:
-+exiftool FILE1 FILE2 ... > out.txt
# 1. Shell redirection + exiftool FILE1 FILE2 ... > out.txt -
But if necessary, an empty format code may be used to force the argument to be interpreted as a format string, and the same result may be obtained without the use of shell redirection:
+ # 2. With the -w option and a zero-width format code + exiftool -w+! %0fout.txt FILE1 FILE2 ... -+ # 3. With the -W option (see the -W option below) + exiftool -W+! out.txt FILE1 FILE2 ...exiftool -w+! %0fout.txt FILE1 FILE2 ...
Advanced features:
@@ -839,7 +861,7 @@1) With -W, a new output file is created for each extracted tag.
-2) -W supports three additional format codes: %t, %g and %s represent the tag name, group name, and suggested extension for the output file (based on the format of the data). The %g code may be followed by a single digit to specify the group family number (eg. %g1), otherwise family 0 is assumed. The substring width/position/case specifiers may be used with these format codes in exactly the same way as with %f and %e.
+2) -W supports four additional format codes: %t, %g and %s represent the tag name, group name, and suggested extension for the output file (based on the format of the data), and %o represents the value of the OriginalRawFileName or OriginalFileName tag from the input file (including extension). The %g code may be followed by a single digit to specify the group family number (eg. %g1), otherwise family 0 is assumed. The substring width/position/case specifiers may be used with these format codes in exactly the same way as with %f and %e.
3) The argument for -W is interpreted as a file name if it contains no format codes. (For -w, this would be a file extension.) This change allows a simple file name to be specified, which, when combined with the append feature, provides a method to write metadata from multiple source files to a single output file without the need for shell redirection. For example, the following pairs of commands give the same result:
@@ -851,7 +873,7 @@ exiftool test.jpg >> out.txt # shell redirection exiftool test.jpg -W+ out.txt # equivalent -W option4) Adding the -v option to -W sends a list of the tags and output file names to the console instead of giving a verbose dump of the entire file. (Unless appending all output to one file for each source file by using -W+ with an output file FMT that does not contain %t, $g or %s.)
+4) Adding the -v option to -W sends a list of the tags and output file names to the console instead of giving a verbose dump of the entire file. (Unless appending all output to one file for each source file by using -W+ with an output file FMT that does not contain %t, %g, %s or %o.)
5) Individual list items are stored in separate files when -W is combined with -b, but note that for separate files to be created %c or %C must be used in FMT to give the files unique names.
@@ -869,7 +891,7 @@By default, -X outputs flattened tags, so -struct should be added if required to preserve XMP structures. List-type tags with multiple values are formatted as an RDF Bag, but they are combined into a single string when -s or -sep is used. Using -L changes the XML encoding from "UTF-8" to "windows-1252". Other -charset settings change the encoding only if there is a corresponding standard XML character set. The -b option causes binary data values to be written, encoded in base64 if necessary. The -t option adds tag table information to the output (see -t for details).
-Note: This output is NOT the same as XMP because it uses dynamically-generated property names corresponding to the ExifTool tag names, and not the standard XMP properties. To write XMP instead, use the -o option with an XMP extension for the output file.
+Note: This output is NOT the same as XMP because it uses dynamically-generated property names corresponding to the ExifTool tag names with ExifTool family 1 group names as namespaces, and not the standard XMP properties and namespaces. To write XMP instead, use the -o option with an XMP extension for the output file.
- -e (--composite)
- -
-Extract existing tags only -- don't calculate composite tags.
+Extract existing tags only -- don't generate composite tags.
- -ee (-extractEmbedded)
+- -ee[NUM] (-extractEmbedded)
Extract information from embedded documents in EPS files, embedded EPS information and JPEG and Jpeg2000 images in PDF files, embedded MPF images in JPEG and MPO files, streaming metadata in AVCHD videos, and the resource fork of Mac OS files. Implies the -a option. Use -g3 or -G3 to identify the originating document for extracted information. Embedded documents containing sub-documents are indicated with dashes in the family 3 group name. (eg.
Doc2-3
is the 3rd sub-document of the 2nd embedded document.) Note that this option may increase processing time substantially, especially for PDF files with many embedded images or videos with streaming metadata.When used with -ee, the -p option is evaluated for each embedded document as if it were a separate input file. This allows, for example, generation of GPS track logs from timed metadata in videos. See https://exiftool.org/geotag.html#Inverse for examples.
+Setting NUM to 2 causes the H264 video stream in MP4 videos to be parsed until the first Supplemental Enhancement Information (SEI) message is decoded, or 3 to parse the entire H624 stream and decode all SEI information. For M2TS videos, a setting of 3 causes the entire file to be parsed in search of unlisted programs which may contain timed GPS.
+- -ext[+] EXT, --ext EXT (-extension)
- @@ -926,7 +950,7 @@
- -fast[NUM]
- -
Increase speed of extracting information. With -fast (or -fast1), ExifTool will not scan to the end of a JPEG image to check for an AFCP or PreviewImage trailer, or past the first comment in GIF images or the audio/video data in WAV/AVI files to search for additional metadata. These speed benefits are small when reading images directly from disk, but can be substantial if piping images through a network connection. For more substantial speed benefits, -fast2 also causes exiftool to avoid extracting any EXIF MakerNote information. -fast3 avoids extracting metadata from the file, and returns only pseudo System tags, but still reads the file header to obtain an educated guess at FileType. -fast4 doesn't even read the file header, and returns only System tags and a FileType based on the file extension. Has no effect when writing.
+Increase speed of extracting information. With -fast (or -fast1), ExifTool will not scan to the end of a JPEG image to check for an AFCP or PreviewImage trailer, or past the first comment in GIF images or the audio/video data in WAV/AVI files to search for additional metadata. These speed benefits are small when reading images directly from disk, but can be substantial if piping images through a network connection. For more substantial speed benefits, -fast2 also causes exiftool to avoid extracting any EXIF MakerNote information. -fast3 avoids extracting metadata from the file, and returns only pseudo System tags, but still reads the file header to obtain an educated guess at FileType. -fast4 doesn't even read the file header, and returns only System tags and a FileType based on the file extension. -fast5 also disables generation of the Composite tags (like -e). Has no effect when writing.
Note that a separate -fast setting may be used for evaluation of a -if condition, or when ordering files with the -fileOrder option. See the -if and -fileOrder options for details.
@@ -938,13 +962,13 @@-exiftool -fileOrder DateTimeOriginal DIR
Additional -fileOrder options may be added for secondary sort keys. Numbers are sorted numerically, and all other values are sorted alphabetically. Files missing the specified tag are sorted last. The sort order may be reversed by prefixing the tag name with a
+-
(eg.-fileOrder -createdate
). Print conversion of the sorted values is disabled with the -n option, or a#
appended to the tag name. Other formatting options (eg. -d) have no effect on the sorted values. Note that the -fileOrder option can have a large performance impact since it involves an additional processing pass of each file, but this impact may be reduced by specifying a NUM for the -fast level used during the metadata-extraction phase. For example, -fileOrder4 may be used if TAG is a pseudo System tag. If multiple -fileOrder options are used, the extraction is done at the lowest -fast level.Additional -fileOrder options may be added for secondary sort keys. Numbers are sorted numerically, and all other values are sorted alphabetically. Files missing the specified tag are sorted last. The sort order may be reversed by prefixing the tag name with a
-
(eg.-fileOrder -createdate
). Print conversion of the sorted values is disabled with the -n option, or a#
appended to the tag name. Other formatting options (eg. -d) have no effect on the sorted values. Note that the -fileOrder option can have a large performance impact since it involves an additional processing pass of each file, but this impact may be reduced by specifying a NUM for the -fast level used during the metadata-extraction phase. For example, -fileOrder4 may be used if TAG is a pseudo System tag. If multiple -fileOrder options are used, the extraction is done at the lowest -fast level. Note that files are sorted across directory boundaries if multiple input directories are specified.- -i DIR (-ignore)
- -
Ignore specified directory name. DIR may be either an individual folder name, or a full path. If a full path is specified, it must match the Directory tag exactly to be ignored. Use multiple -i options to ignore more than one directory name. A special DIR value of
+SYMLINKS
(case sensitive) may be specified to ignore symbolic links when the -r option is used.Ignore specified directory name. DIR may be either an individual folder name, or a full path. If a full path is specified, it must match the Directory tag exactly to be ignored. Use multiple -i options to ignore more than one directory name. A special DIR value of
SYMLINKS
(case sensitive) may be specified to avoid recursing into directories which are symbolic links when the -r option is used. As well, a value ofHIDDEN
(case sensitive) may be used to ignore files with names that start with a "." (ie. hidden files on Unix systems) when scanning a directory.- -if[NUM] EXPR
@@ -964,7 +988,13 @@ # find images containing a specific keyword (case insensitive) exiftool -if '$keywords =~ /harvey/i' -filename dir -Adding NUM to the -if option causes a separate processing pass to be executed for evaluating EXPR at a -fast level given by NUM (see the -fast option documentation for details). Without NUM, only one processing pass is done at the level specified by the -fast option. For example, using -if4 is possible if EXPR uses only pseudo System tags, and may significantly speed processing if enough files fail the condition.
+Adding NUM to the -if option causes a separate processing pass to be executed for evaluating EXPR at a -fast level given by NUM (see the -fast option documentation for details). Without NUM, only one processing pass is done at the level specified by the -fast option. For example, using -if5 is possible if EXPR uses only pseudo System tags, and may significantly speed processing if enough files fail the condition.
+ +The expression has access to the current ExifTool object through
+ +$self
, and the following special functions are available to allow short-circuiting of the file processing. Both functions have a return value of 1. Case is significant for function names.End() - end processing after this file + EndDir() - end processing of files in this directory (not + compatible with the B<-fileOrder> option)
Notes:
@@ -1023,7 +1053,7 @@- -P (-preserve)
- -
Preserve the filesystem modification date/time (
+FileModifyDate
) of the original file when writing. Note that some filesystems store a creation date (WindowsFileCreateDate
or MacMDItemFSCreationDate
) which is not affected by this option. The creation date is preserved on Windows systems where Win32API::File and Win32::API are available regardless of this setting. For other systems, the -overwrite_original_in_place option may be used if necessary to preserve the creation date. This option is superseded by any value written to the FileModifyDate tag.Preserve the filesystem modification date/time (
FileModifyDate
) of the original file when writing. Note that some filesystems store a creation date (ie.FileCreateDate
on Windows and Mac systems) which is not affected by this option. This creation date is preserved on Windows systems where Win32API::File and Win32::API are available regardless of this setting. For other systems, the -overwrite_original_in_place option may be used if necessary to preserve the creation date. The -P option is superseded by any value written to the FileModifyDate tag.- -password PASSWD
@@ -1196,7 +1226,7 @@- -use MODULE
- -
@@ -1252,13 +1282,29 @@Add features from specified plug-in MODULE. Currently, the MWG module is the only plug-in module distributed with exiftool. This module adds read/write support for tags as recommended by the Metadata Working Group. As a convenience,
+-use MWG
is assumed if theMWG
group is specified for any tag on the command line. See the MWG Tags documentation for more details. Note that this option is not reversible, and remains in effect until the application terminates, even across the-execute
option.Add features from specified plug-in MODULE. Currently, the MWG module is the only plug-in module distributed with exiftool. This module adds read/write support for tags as recommended by the Metadata Working Group. As a convenience,
-use MWG
is assumed if theMWG
group is specified for any tag on the command line. See the MWG Tags documentation for more details. Note that this option is not reversible, and remains in effect until the application terminates, even across the -execute option.- -echo[NUM] TEXT
- -
+Echo TEXT to stdout (-echo or -echo1) or stderr (-echo2). Text is output as the command line is parsed, before the processing of any input files. NUM may also be 3 or 4 to output text (to stdout or stderr respectively) after processing is complete.
+Echo TEXT to stdout (-echo or -echo1) or stderr (-echo2). Text is output as the command line is parsed, before the processing of any input files. NUM may also be 3 or 4 to output text (to stdout or stderr respectively) after processing is complete. For -echo3 and -echo4, "${status}" may be used in the TEXT string to represent the numerical exit status of the command (see "EXIT STATUS").
+ +- -efile[NUM][!] ERRFILE
+- + +
Save the names of files giving errors (NUM missing or 1), files that were unchanged (NUM is 2), files that fail the -if condition (NUM is 4), or any combination thereof by summing NUM (eg. -efile3 is the same has having both -efile and -efile2 options with the same ERRFILE). By default, file names are appended to any existing ERRFILE, but ERRFILE is overwritten if an exclamation point is added to the option (eg. -efile!). Saves the name of the file specified by the -srcfile option if applicable.
- -execute[NUM]
- -
+Execute command for all arguments up to this point on the command line (plus any arguments specified by -common_args). The result is as if the commands were executed as separate command lines (with the exception of the -config and -use options which remain in effect for subsequent commands). Allows multiple commands to be executed from a single command line. NUM is an optional number that is echoed in the "{ready}" message when using the -stay_open feature.
+Execute command for all arguments up to this point on the command line (plus any arguments specified by -common_args). The result is as if the commands were executed as separate command lines (with the exception of the -config and -use options which remain in effect for subsequent commands). Allows multiple commands to be executed from a single command line. NUM is an optional number that is echoed in the "{ready}" message when using the -stay_open feature. If a NUM is specified, the -q option no longer suppresses the output "{readyNUM}" message.
+ +- -list_dir
+- + +
List directories themselves instead of their contents. This option effectively causes directories to be treated as normal files when reading and writing. For example, with this option the output of the
+ +ls -la
command on Mac/Linux may be approximated by this exiftool command:+ +exiftool -list_dir -T -ls-l -api systemtags -fast5 .* *
(The -T option formats the output in tab-separated columns, -ls-l is a shortcut tag, the API SystemTags option is required to extract some necessary tags, and the -fast5 option is added for speed since only system tags are being extracted.)
- -srcfile FMT
@@ -1274,21 +1320,23 @@A FMT of
+@
may be used to represent the original FILE, which may be useful when specifying multiple -srcfile options (eg. to fall back to processing the original FILE if no sidecar exists).When this option is used, two special UserParam tags (OriginalFileName and OriginalDirectory) are generated to allow access to the original FILE name and directory.
+- -stay_open FLAG
- -
If FLAG is
+1
orTrue
, causes exiftool keep reading from the -@ ARGFILE even after reaching the end of file. This feature allows calling applications to pre-load exiftool, thus avoiding the overhead of loading exiftool for each command. The procedure is as follows:If FLAG is
1
orTrue
(case insensitive), causes exiftool keep reading from the -@ ARGFILE even after reaching the end of file. This feature allows calling applications to pre-load exiftool, thus avoiding the overhead of loading exiftool for each command. The procedure is as follows:1) Execute
exiftool -stay_open True -@ ARGFILE
, where ARGFILE is the name of an existing (possibly empty) argument file or-
to pipe arguments from the standard input.2) Write exiftool command-line arguments to ARGFILE, one argument per line (see the -@ option for details).
-3) Write
+-execute\n
to ARGFILE, where\n
represents a newline sequence. (Note: You may need to flush your write buffers here if using buffered output.) Exiftool will then execute the command with the arguments received up to this point, send a "{ready}" message to stdout when done (unless the -q or -T option is used), and continue trying to read arguments for the next command from ARGFILE. To aid in command/response synchronization, any number appended to the-execute
option is echoed in the "{ready}" message. For example,-execute613
results in "{ready613}".3) Write
-execute\n
to ARGFILE, where\n
represents a newline sequence. (Note: You may need to flush your write buffers here if using buffered output.) ExifTool will then execute the command with the arguments received up to this point, send a "{ready}" message to stdout when done (unless the -q or -T option is used), and continue trying to read arguments for the next command from ARGFILE. To aid in command/response synchronization, any number appended to the -execute option is echoed in the "{ready}" message. For example,-execute613
results in "{ready613}". When this number is added, -q no longer suppresses the "{ready}" message. (Also, see the -echo3 and -echo4 options for additional ways to pass signals back to your application.)4) Repeat steps 2 and 3 for each command.
-5) Write
+-stay_open\nFalse\n
to ARGFILE when done. This will cause exiftool to process any remaining command-line arguments then exit normally.5) Write
-stay_open\nFalse\n
(or-stay_open\n0\n
) to ARGFILE when done. This will cause exiftool to process any remaining command-line arguments then exit normally.The input ARGFILE may be changed at any time before step 5 above by writing the following lines to the currently open ARGFILE:
@@ -1305,7 +1353,7 @@- -userParam PARAM[[^]=[VAL]]
- -
Set user parameter. PARAM is an arbitrary user parameter name. This is an interface to the API UserParam option (see the Image::ExifTool Options documentation), and provides a method to access user-defined parameters from inside tag name expressions (as if it were any other tag, see example below), and from PrintConv/ValueConv logic (via the ExifTool Options function). Similar to the -api option, the parameter value is set to 1 if =VAL is omitted, undef if just VAL is omitted with
+=
, or an empty string if VAL is omitted with^=
.Set user parameter. PARAM is an arbitrary user parameter name. This is an interface to the API UserParam option (see the Image::ExifTool Options documentation), and provides a method to access user-defined parameters in arguments to the -if and -p options as if they were any other tag. Appending a hash tag (
#
) to PARAM (eg.-userParam MyTag#=yes
) also causes the parameter to be extracted as a normal tag in the UserParam group. Similar to the -api option, the parameter value is set to 1 if =VAL is omitted, undef if just VAL is omitted with=
, or an empty string if VAL is omitted with^=
.@@ -1346,7 +1394,7 @@exiftool -p '$test from $filename' -userparam test=Hello FILE
The -sep option is necessary to split the string back into individual list items when writing to a list-type tag.
-An optional flag argument may be set to 1 to cause
+NoDups
to return undef if no duplicates existed, thus preventing the file from being rewritten unnecessarily:An optional flag argument may be set to 1 to cause
NoDups
to set$_
to undef if no duplicates existed, thus preventing the file from being rewritten unnecessarily:@@ -1397,7 +1445,7 @@exiftool -sep '##' '-keywords<${keywords;NoDups(1)}' a.jpg
- exiftool -a -u -g1 a.jpg
- -
Print all meta information in an image, including duplicate and unknown tags, sorted by group (for family 1). For performance reasons, this command may not extract all available metadata. (Metadata in embedded documents, metadata extracted by external utilities, and metadata requiring excessive processing time may not be extracted). Add
+-ee
and-api RequestAll=3
to the command to extract absolutely everything available.Print all meta information in an image, including duplicate and unknown tags, sorted by group (for family 1). For performance reasons, this command may not extract all available metadata. (Metadata in embedded documents, metadata extracted by external utilities, and metadata requiring excessive processing time may not be extracted). Add
-ee3
and-api RequestAll=3
to the command to extract absolutely everything available.- exiftool -common dir
@@ -1484,7 +1532,7 @@Print one line of output containing the file name and DateTimeOriginal for each image in directory
-dir
.- exiftool -ee -p '$gpslatitude, $gpslongitude, $gpstimestamp' a.m2ts
+- exiftool -ee3 -p '$gpslatitude, $gpslongitude, $gpstimestamp' a.m2ts
- +
Extract all GPS positions from an AVCHD video.
@@ -1974,13 +2022,17 @@INTERRUPTING EXIFTOOL
+ +Interrupting exiftool with a CTRL-C or SIGINT will not result in partially written files or temporary files remaining on the hard disk. The exiftool application traps SIGINT and defers it until the end of critical processes if necessary, then does a proper cleanup before exiting.
+EXIT STATUS
The exiftool application exits with a status of 0 on success, or 1 if an error occurred, or 2 if all files failed the -if condition (for any of the commands if -execute was used).
AUTHOR
-Copyright 2003-2020, Phil Harvey
+Copyright 2003-2022, Phil Harvey
This is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
diff -Nru libimage-exiftool-perl-11.88/html/faq.html libimage-exiftool-perl-12.40+dfsg/html/faq.html --- libimage-exiftool-perl-11.88/html/faq.html 2019-12-20 18:54:07.000000000 +0000 +++ libimage-exiftool-perl-12.40+dfsg/html/faq.html 2021-03-17 13:19:32.000000000 +0000 @@ -44,6 +44,8 @@- Import from database
- Windows .BAT file problems
- Copying a shifted date/time
+- ARGFILE options
+- Extracting all metadata
@@ -134,7 +136,7 @@ different meta information formats within the same file. For example, often XMP will be ignored if IPTC exists and the Photoshop:IPTCDigest does not agree with the IPTC content. The -Metadata Working Group +Metadata Working Group recommends techniques to keep the EXIF, IPTC and XMP metadata synchronized. These recommendations are implemented by the ExifTool MWG tags. For maximum compatibility with the @@ -480,16 +482,17 @@ not significant):The-
- UTF8 (cp65001, UTF‑8) Thai (cp874) - Latin (cp1252, Latin1) MacRoman (cp10000, Mac, Roman) - Latin2 (cp1250) MacLatin2 (cp10029) - Cyrillic (cp1251, Russian) MacCyrillic (cp10007) - Greek (cp1253) MacGreek (cp10006) - Turkish (cp1254) MacTurkish (cp10081) - Hebrew (cp1255) MacRomanian (cp10010) - Arabic (cp1256) MacIceland (cp10079) - Baltic (cp1257) MacCroatian (cp10082) + Vietnam (cp1258) + UTF8 (cp65001, UTF‑8) DOSLatinUS (cp437) + Latin (cp1252, Latin1) DOSLatin1 (cp850) + Latin2 (cp1250) DOSCyrillic (cp866) + Cyrillic (cp1251, Russian) MacRoman (cp10000, Mac, Roman) + Greek (cp1253) MacLatin2 (cp10029) + Turkish (cp1254) MacCyrillic (cp10007) + Hebrew (cp1255) MacGreek (cp10006) + Arabic (cp1256) MacTurkish (cp10081) + Baltic (cp1257) MacRomanian (cp10010) + Vietnam (cp1258) MacIceland (cp10079) Thai (cp874) MacCroatian (cp10082) -L
option is equivalent to "-charset Latin
", @@ -584,7 +587,7 @@ UTF‑8, converting the following 5 characters to XML character references:& < > ' "
. By default no further conversion is performed, however the-charset
or-L
option may be -used used to convert text to/from a specified external character set when +used to convert text to/from a specified external character set when reading/writing.PNG: @@ -684,7 +687,7 @@Note: The config file must be renamed at the command line because neither the Windows nor Mac GUI allow a file name to begin with a ".
". To do this in Windows, run "cmd.exe" and type -the following (pressing RETURN at the end of each line): +the following (pressing ENTER at the end of each line):cd %HOMEPATH% rename ExifTool_config .ExifTool_config@@ -842,9 +845,20 @@exiftool -f -r -p my.fmt t/images > out.csv-Alternatively, the-p
option may be used with a format string instead -of a file name. The following command has the same effect as above except that -the row of headings is not printed (Note: Use single quotes as below on Mac/Linux, +But note that any values containing commas, quotes or some other special +characters may mess up the CSV formatting. If this is a possibility, the +-api filter
option may be added to the command to quote values +if necessary. For example: + +# in Windows +exiftool -api filter="$_ = qq{""$_""} if s/""/""""/g or /(^\s+|\s+$)/ or /[,\n\r]/" ... + +# in Mac/Linux +exiftool -api filter='$_ = qq{"$_"} if s/"/""/g or /(^\s+|\s+$)/ or /[,\n\r]/' ...+ +The-p
option argument may also be a format string instead of a +file name. The following command has the same effect as above except that the +row of headings is not printed (Note: Use single quotes as below on Mac/Linux, or double quotes instead on Windows):exiftool -f -r -p '$filename,$aperture,$iso' t/images > out.csv @@ -916,11 +930,12 @@ seconds with any number of decimal places.For EXIF GPS coordinates, the reference direction is specified -separately with the EXIF:GPSLatitudeRef or EXIF:GPSLongitudeRef tag. -GPSLatitudeRef may be written with a string ending in "+separately with the EXIF:GPSLatitudeRef or EXIF:GPSLongitudeRef tag. +GPSLatitudeRef may be written with a string containing "N
" or -"S
", or with a signed coordinate value, positive for the northern -hemisphere or negative for the south. GPSLongitudeRef accepts similar values, -but for E (positive) and W (negative).N
", +"North
", "S
" or "South
", or with a signed +coordinate value (positive for the northern hemisphere or negative for the +south). GPSLongitudeRef accepts similar values, but for E/East (positive) and +W/West (negative).For XMP GPS coordinates, the reference direction is specified within the XMP:GPSLatitude or XMP:GPSLongitude value, with west longitudes and south @@ -943,6 +958,10 @@ coordinate styles to the proper format for the specific tag used.+ExifTool 12.22 and later allow combined lat/lon GPSCoordinates +values to be written to GPSLatitude and GPSLongitude, and the appropriate +latitude or longitude part will be pulled from the input string.+When reading, by default ExifTool reports coordinates in the formatDDD deg MM' SS.SS"whereDDD
is degrees,MM
is minutes, andSS.SS
@@ -1081,7 +1100,7 @@ List items are assigned separately as above, NOT all together, because this would represent a single keyword: -exiftool -keywords="one, two, three" test.jpg (WRONG!) +exiftool -keywords="one, two, three" test.jpg (WRONG!)The-sep
option may be used to split values of list-type tags into @@ -1157,7 +1176,7 @@ However, this is not the case if the tag is interpolated within a format string (ie. has a leading "$
" symbol), like this -exiftool "-keywords<$subject" DIR (WRONG!)
+exiftool "-keywords<$subject" DIR (WRONG!)but here the-sep
option may be used to split the list back into separate items: @@ -1168,7 +1187,7 @@ tag: Here, any assignment to a tag overrides earlier assignments to the same tag in the command. For instance, this command: -exiftool "-keywords<filename" "-keywords<comment" DIR (WRONG!) +exiftool "-keywords<filename" "-keywords<comment" DIR (WRONG!)writes only the value from the Comment tag. This may seem strange, but it prevents @@ -1203,7 +1222,7 @@ Start menu and enter "cmd").Change the font in the console Properties to any True Type font (eg. "TT Lucida Console"). -Type " +chcp 65001
" then press RETURN at the command prompt.Type " The console should now be able to display UTF‑8 characters (cp65001). But @@ -1293,7 +1312,10 @@ the same directory as the exiftool application. Note that the file name begins with a "chcp 65001
" then press ENTER at the command prompt..
", so if you are in Windows or on a Mac you may need to rename the file from the command line since the GUI might not like file names -beginning with a ".
". +beginning with a ".
". [An alternative is to load the +config file with the-config
option -- see the +application documentation +for details.]User-defined Composite tags have many other features, including the ability to combine the values of multiple tags. See the @@ -1397,11 +1419,15 @@ inserted with CTRL-T, but I have found no way to insert a carriage return (CR).]
-Use the +-E
option to allow HTML character entities (Note: -In Windows a newline is "

" instead of just -"

"): -exiftool -E "-comment=line 1
line 2" image.jpg -Use the -ec
or-E
option to allow C-style escape +sequences or HTML character entities (Note: +In Windows a newline is "\r\n
" or "

" +instead of just "\n
" or "

"). For example, +using C-style escape sequences: +exiftool -ec "-comment=line 1\nline 2" image.jpg+or using HTML character entities: +exiftool -E "-comment=line 1
line 2" image.jpg+Write the tag from the contents of a separate text file: @@ -1413,8 +1439,8 @@ avoided with theexiftool "-comment<=file.txt" image.jpg-fast3
option.)exiftool '-comment<line 1$/line 2' image.jpg-Use the " #[CSTR]
" feature to allow C-style escape sequences in -a-@
argfile. For example, this command: +Use the " @@ -1433,7 +1459,7 @@#[CSTR]
" feature to allow C-style escape sequences +for a specific line in a-@
argfile. For example, this command:exiftool -@ test.args image.jpgwith this "test.args" file:#[CSTR]-comment=line 1\nline 2When copying values to list-type tags (eg. +assignments if"-keywords<filename"
), new values are accumulated only if-addTagsFromFile
is used, otherwise they override earlier -assigments if-tagsFromFile
is used or implied.
-tagsFromFile
is used or implied.
Tags copied with the -tagsFromFile
option are assigned in order, and all together at the point in the command line where the-tagsFromFile
option is located, regardless of whether these tags @@ -1477,7 +1503,7 @@Tags are not written if the format of the target file doesn't support the specific type of meta information. For example, CRW images do not -support EXIF or IPTC metdata. See the +support EXIF or IPTC metadata. See the Supported File Types table for an indication of the tags supported by your file. If the tags aren't supported for your file type, then a metadata sidecar file is an @@ -1530,16 +1556,14 @@ also sets this to the current date/time when the file is edited. On Windows the creation date is readable/writable through the FileCreateDate tag (see the Extra Tags documentation), and is preserved -with the+with the-P
option. On Mac the MDItemFSCreationDate tag is used -(see the MacOS MDItem Tags documentation), -however this tag is extracted only if specified explicitly or the -MDItemTags API option is set. The --P
option does not preserve the creation date when editing a file -on Mac systems, but the-overwrite_original_in_place
option may be -used to preserve all Finder information including the creation date, or the -MDItemFSCreationDate may be copied back specifically (ie. --tagsfromfile @ -MDItemFSCreationDate
). On Linux, the file -creation date is not stored.-P
option. On MacOS, FileCreateDate is available but +extracted only if specified explicitly, and is writable only if "setfile" is +available. The-P
option does not preserve the creation date when +editing a file on Mac systems, but the-overwrite_original_in_place
+option may be used to preserve all Finder information including the creation +date, or the FileCreateDate may be copied back specifically (ie. +-tagsfromfile @ -FileCreateDate
). On Linux, the file creation date +is not stored.For example, commands like this act on common metadata tags, setting the filesystem modification date/time to the current date/time: @@ -1574,8 +1598,9 @@ExifTool is not designed as an image validator but it does have a--validate
feature which enables extra validation checks, mainly for -JPEG and TIFF-format images (officially released in version 10.97, May 2018). -Here is an example command to apply these validation checks to a JPEG image: +JPEG and TIFF-format images (officially released in version 10.97, May 2018, +but continually being improved). Here is an example command to apply these +validation checks to a JPEG image:exiftool -validate -warning -error -a test.jpg@@ -1635,7 +1660,7 @@ for more details.27. "My ExifTool command doesn't work from a Windows .BAT file."
+27. "My ExifTool command doesn't work from a Windows .BAT file"
In a Windows .BAT file the "+ +%
" character is significant, so all "%
" characters in ExifTool commands must be @@ -1657,7 +1682,7 @@ because the copy operation is superseded by the shift, and the result is that the existing DateTimeOriginal is shifted back by two hours: -exiftool "-datetimeoriginal<filemodifydate" -datetimeoriginal-=2 image.jpg (WRONG!) +exiftool "-datetimeoriginal<filemodifydate" -datetimeoriginal-=2 image.jpg (WRONG!)The-globalTimeShift
option fills this niche -- it shifts all @@ -1683,8 +1708,38 @@ $exifTool->SetNewValuesFromFile($src, 'datetimeoriginal<${filemodifydate;ShiftTime("-2")}');29. "My options don't work in a
+ +-@
ARGFILE"The ExifTool application has the ability to read options from an +ARGFILE using the+ + +-@
option. The parsing of these arguments is +different from the command line. Arguments in this file are separated by +newline characters instead of spaces. Also, arguments should not be quoted. +For example, on the command line you may have: + +-d "%Y:%m:%d %H:%M:%S"+ +but in an ARGFILE, this should be + +-d +%Y:%m:%d %H:%M:%S30. "How do I extract absolutely all metadata from a file?"
+ +By default, duplicate tags, unknown tags, embedded tags, and System +tags that require external utilities are not extracted. The main reason for +this is performance; extracting these tags will significantly increase +processing time for some files. The following command extracts everything +possible with ExifTool: + ++exiftool -ee3 -U -G3:1 -api requestall=3 -api largefilesupport FILE+ +(The-G3:1
option is included in the above command only to give an +indication of where the metadata was stored.)
-Last revised Dec. 20, 2019 +Last revised Mar 17, 2021