Pre Merge pull request !4 from tde3cifang/openkylin/nile

This commit is contained in:
tde3cifang 2025-06-27 09:08:29 +00:00 committed by Gitee
commit 4f05afbdcc
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
383 changed files with 44030 additions and 20160 deletions

832
Changes
View File

@ -4,9 +4,787 @@ ExifTool Version History
RSS feed: https://exiftool.org/rss.xml
Note: The most recent production release is Version 12.76. (Other versions are
Note: The most recent production release is Version 13.30. (Other versions are
considered development releases, and are not uploaded to MetaCPAN.)
May 22, 2025 - Version 13.30 (production release)
- Added a new Canon RF lens (thanks Norbert Wasser)
- Added some new Olympus ArtFilter values
- Added support for reading timed GPS from Transcend Drive Body Camera 70 MP4
videos
- Added a new FujiFilm AdvancedFilter value (thanks Greybeard)
- Decode maker notes from Sigma BF images
- Decode a few more Pentax AF-related tags (thanks Karsten Gieselmann)
- Extract PreviewImage and its metadata from Sigma BF MOV videos
- Allow multiple config files to be specified on the command line (but leave
undocumented for now because the config files currently included in the full
ExifTool package aren't compatible with this feature)
- Removed warning introduced in version 12.60 for an undefined tag in a -if
condition, but leave the 12.60 change that sets these tags to an empty
string when -m is used
- Patched LensID conversion to better handle a manual lens on a Sony ILCE-7M2
- Patched to avoid runtime warning when using -fast option and reading and
HEIC file via a pipe (but you will still get a seek error)
- Fixed some tag format types in the config_files/pix4d.config file
- Fixed possible "uninitialized value" warning when reading some types of Ligo
timed GPS
Apr. 27, 2025 - Version 13.29
- Changed default -geotime argument to use SubSecDateTimeOriginal if available
instead of DateTimeOriginal, instead of applying both (as was done since
ExifTool 13.18). This is more efficient, and avoids an unnecessary warning
- Properly return warnings from inverse value conversions when copying a tag
using -tagsFromFile with a tag name string
- Fixed issue where RW2 images from the Panasonic DC-S1RM2 could be corrupted
when writing
Apr. 25, 2025 - Version 13.28
- Added print conversion for Pentax AFPointValues
- Added another Pentax PictureMode value
- Decode timed GPS from GKU D900 dashcam videos
- Decode timed telemetry data from newer ARCore videos
- Decode Panasonic AFAreaSize (thanks andrewj)
- Decode ShutterCount for Canon EOS R8 and R50 (github #325)
- Decode ThumbnailTIFF from some Insta360 videos
- Decode AROT:HDRGainCurveSize from APP10
- Updated to the 2025 MPF specification
- Renamed K-3III AFPoints to AFPointsSelected and changed decoding
- Fixed bug introduced in 13.23 that could cause an incorrect parsing of XMP
attributes containing an equals sign
- Fixed issue reading timed GPS from some Insta360 videos, and issue where
writing these videos would fail
- Fixed exif2xmp.args and xmp2exif.args to properly handle EXIF:ImageUniqueID
Apr. 8, 2025 - Version 13.27
- Decode AF points for the Pentax K-3III
- Decode timed GPS from a variant of the Rove R2-4K dashcam
- Properly decode SensorTemperature for Pentax K3-III
- Patched PCAP test to avoid potential failure
- Patched to avoid potential "not a HASH reference" error when writing MOV/MP4
videos
- Fixed issue which could result in "uninitialized value" errors when reading
one type of timed GPS from MP4 videos
- Fixed problem writing MotionPhotoVideo in MP4 files
Mar. 31, 2025 - Version 13.26
- Added a new Olympus CameraType (thanks Herb)
- Added a new PentaxModelID (github #322)
- Added a new Nikon LensID
- Improved Duration calculation for some WAV files
- Changed a PCAP tag name and fixed typos in a few others (thanks blue-j)
- Patched to avoid VignettingCorr warning for images from some Canon cameras
- Patched to avoid some unnecessary duplicate tag warnings when -validate used
with HEIC images
- Fixed issue with XMP-xmpMM:Pantry items not exhibiting proper List-type
behaviour
Mar. 11, 2025 - Version 13.25 (production release)
- IMPORTANT: Fixed issue which could corrupt HEIC images from newer iPhones
under certain conditions when writing QuickTime:Rotation
- Decode more PLIST information from HEIC images
- Updated Geolocation databases from current geonames.org files
- Updated DarwinCore for the 2023 specification (thanks Herb)
- API Changes:
- Added KeepUTCTime option
Mar. 7, 2025 - Version 13.24
- Changed -listf, -listr and -listwf options to print descriptions when either
-v or -l is added (previously only -l did this)
- Patched to avoid failed PCAP test due to differing time zones (github #319)
Mar. 7, 2025 - Version 13.23
- Added read support for CAP, PCAP and PCAPNG files (github #318)
- Added a number of new Sony LensType2 values (thanks Jos Roost)
- Added the 2 new GPSAltitudeRef values defined by EXIF 3.0
- Decode APP4 "Qualcomm Dual Camera Attributes" metadata
- EXIF X/YResolution, ResolutionUnit and FlashpixVersion are no longer treated
as mandatory tags (they were changed to optional in the EXIF 3.0 specification)
- Patched decoding of Nikon Z8 MenuSettings to accommodate changes in the data
structure as of firmware version 2.1
- Patched to avoid bug in Perl v5.26.3 which could cause hang when reading
very large and corrupted XMP
- Patched -plot option to avoid bug in Google Chrome SVG marker rendering
- API Changes:
- Fixed documentation for LargeFileSupport option to reflect current
default
Mar. 1, 2025 - Version 13.22
- Improvements and additions to the new plot feature
- Decode a few more DJI timed metadata tags
- Extract GainMapImage from PNG images
- Reverted WebP FileType change of version 13.20
- Set $^W in the exiftool application to re-enable global warnings (they have
been disabled since version 12.92 due to the shebang change)
- Fixed possible incorrect IFD number in "No size tag" warning
- Fixed "File is empty" error when using -plot with -w to write the output
file into the same directory as the input files
Feb. 20, 2025 - Version 13.21
- Patched issue that could result in runtime warning for some video files
- Fixed a bug with the new -plot option that could generate a compiler error
Feb. 20, 2025 - Version 13.20 - "SVG Plot"
- Added new -plot option for generating SVG-format plots from tag values
- Added a new Olympus CameraType
- Added a new Nikon Z LensID (thanks Warren Hatch)
- Overhauled decoding of Nikon AF tags (thanks Warren Hatch)
- Decode timed GPS from yet another model dashcam
- Decode more information from AAE files
- Decode more tags from DJI videos
- Updated Windows launcher (thanks Oliver Betz)
- Enhanced -w option to be available for use with the -csv output
- Attempted to patch a problem writing some PDF files
- Fail if a required module is missing when attempting to write a formatted
date/time value instead of falling back to write as unformatted
- Minor change to WebP lossless FileType text
- API Changes:
- Added Plot option
Feb. 10, 2025 - Version 13.19
- Added read/write support for PDF and XMP-pdfx SourceModified
- Decode GPS from two more DJI protobuf formats (Matrice 30 and Mini 4 Pro)
- Decode timed GPS from Rexing V1-4k dashcam
- Decode more information from AAE files
- Made a new icon for the Windows EXE application
- Improved handling of ICC_Profile in HEIC images:
- Profiles for sub-images are extracted as sub-documents
- Allow only the profile of the main image to be written
- Changed family 3 groups for ICO files so the first icon is in the Doc1
instead of the Main group
- Updated Sony decoding for ILCE-1M2 (thanks Jos Roost)
Feb. 3, 2025 - Version 13.18
- Decode a number of new GoPro tags
- Enhanced -geotag option to set Geotime from either SubSecDateTimeOriginal
(preferentially) or DateTimeOriginal if not otherwise specified
- Don't allow ICC_Profile to be deleted from QuickTime-based files
(specifically HEIC, to avoid problem where Apple Preview wouldn't display the
resulting file)
- Improved decoding of AF points for Nikon D3400 and D7500
- Patched issue introduced in 13.13 which could give a "No data reference"
error when writing MP4 videos from some Google phones
- Fixed problem writing XMP-iptcExt:LocationCreatedGPSAltitudeRef with an
incorrect namespace
Jan. 29, 2025 - Version 13.17
- Added support for reading more embedded images and videos written in the
JPEG trailer by some phones
- Added support for reading JPEG trailer written by some OnePlus phones
- Added a -validate warning for QuickTime 'wide' atoms with an invalid size
- Added a new CanonLensType
- Avoid decoding Sony 0x9050 data for the ILCE-1M2 because the encoding has
changed since the ILCE-1 and the new encoding is not yet known (github #310)
- Fixed issue that could cause runtime warning when using -j with -b
- Fixed some issues decoding AFPointsUsed for some newer Nikon models
- Fixed problem corrupting QuickTime-format videos when writing if they
contain a 'wide' atom with an invalid size
Jan. 25, 2025 - Version 13.16
- Added a couple of new Nikon Z lenses (thanks Warren Hatch)
- Added a new Canon RFLensType (thanks Norbert Wasser)
- Added support for a MIE trailer on QuickTime-format files
- Added a number of new EXE MachineType values (github #309)
- Made "iTunes" a deletable group
- Updated decoding of many Nikon tags for the Z9 firmware version 5.1 (thanks
Warren Hatch)
- Fixed issue where -diff option would miss showing 1 tag from a group that
exists in the difference file but not in the source file
- Fixed issue where tag exclusions for alternate files weren't honoured in a
-p formatting expression when using "$file#:all:all" in the expression and
the -file#, -x, and -p options all together
- Fixed FileTypeDescription for lossless extended WebP images
Jan. 23, 2025 - Version 13.15
- Added a few new Panasonic AFSubjectDetection values (thanks Andrew J)
- Added " (lossless)" to FileType for lossless WebP images
- Avoid treating the QuickTime 'eng' language code as the default 'und' unless
the country code is also the default
- Fixed issue where writing metadata to a non-extended lossless WebP image
with an alpha channel could mess up rendering of the transparency
- Fixed problem decoding ID3 WXXX frames (github #307)
Jan. 20, 2025 - Version 13.14
- Changed so that deleting QuickTime ItemList group no longer deletes Keys
- Fixed bug where new ItemList tags weren't created when also creating new
AudioKeys or VideoKeys tags in the same command if neither tag group
pre-existed in the file
Jan. 20, 2025 - Version 13.13
- Added ability to write tags to the audio/video tracks of MOV/MP4 videos
using the new AudioKeys and VideoKeys group names
- Decode GPS from another DJI protobuf format (Mavic 3)
- Decode yet another type of LIGOGPSINFO timed GPS from a dashcam video
- Extract some proprietary information from JPEG images of Vivo phones
- Enhanced Geolocation feature to allow the nearest cities to a specified city
to be returned
- Updated xmp2exif.args and exif2xmp.args to properly handle time zones in
XMP-exif date/time tags
- Changed family 1 group names for Keys, ItemList and UserData tags in a track
- Patched github #306 issue where a torrent file would return a format error
when reading if it didn't contain an "announce" or "created by" entry
- Fixed "uninitialized value" runtime warning when reading some EXE files
- Fixed -diff output to add colon missing from some lines when used with -g
Jan. 13, 2025 - Version 13.12
- Added a few new Panasonic AFAreaMode values (thanks Andrew J)
- Added a couple of new Canon RFLensType values (thanks Norbert Wasser)
- Added a -validate warning for duplicate IPTC tags
- Decode AF points for some newer Nikon models (thanks Warren Hatch)
- Decode a new Panasonic tag (thanks Andrew J)
- Decode a couple of previously unknown tags from LIGOGPSINFO records
- Extract some PDB information if available from Win32 EXE files (github #303)
- Improved handling of duplicate tags in -diff output
- Improved handling of QuickTime zero date/time values
- Enchanced -csv= and -json= options to allow group names and wildcards to be
used when specifying which tags to import
- Updated some EXIF:Compression values (github #304)
- Changed wording of warning when file time couldn't be updated
- Fixed bug introduced in 13.11 reading EXIF from some EXV files
- Fixed bug introduced in 12.99 where empty entries in a CSV file weren't
ignored as they should be when importing with -csv=
- Fixed problem where MWG module wasn't loaded automatically when specifying
Composite:MWG:TAG instead of MWG:TAG
- Fixed bug where -diff option was inconsistent in its treatment of List
values when used with the -sep option
Jan. 1, 2025 - Version 13.11
- Added warning for an unknown DJI protobuf schema
- Decode timed GPS from DJI Osmo Action 5 videos
- Decode yet another type of LIGOGPSINFO timed GPS from a dashcam video
- Made Matroska Keywords and Instruments List-type tags
- Fixed problem were EXIF couldn't be added to some AVIF files
- API Changes:
- Added GPSQuadrant option
Dec. 20, 2024 - Version 13.10 (production release)
- Added warnings for out-of-order entries in 'iinf' and 'ipma' boxes of HEIC
images
- Added support for date/time formatting codes %f and %z in the inverse
print conversion when writing tags
- Updated Geolocation databases from current geonames.org files
- Improved verbose output to show values stored with construction method 1 in
MP4-based files
- Enhanced the date/time timezone format specifier %z so that %:z returns the
time zone with a colon separator (eg. "-05:00")
- Fixed bug where the existing tag wasn't being removed when writing a new
value for an Unknown QuickTime UserData or ItemList tag
Dec. 17, 2024 - Version 13.09
- Added a new QuickTime tag (thanks Matti)
- Added a missing format check on a few tags when writing
- Decode a couple of new ICC_Profile tags
- Patched HEIC writer so newly added XMP or EXIF refers to the 'tmap' item as
well as the primary item of an HDRGainMap image (since iPhone 15 and 16 do
it this way)
- Fixed compatibility issue where Apple Preview would no longer show the gain
map image after adding new XMP to an HEIC with an HDR gain map
Dec. 14, 2024 - Version 13.08
- Decode ShutterCount for Canon EOS R6 Mark II (thanks Agoston Kapitany)
- Decode a few new Photoshop tags
- Suppress all duplicate Warning tags and add count to end of message
- Changed format of bitmask keys in -listx output
- Internal streamlining of LIGOGPSINFO decoding
- Fixed issue where some tags were incorrectly shown as writable in -listx
output
- Fixed incorrect scaling for GPSSpeed in one LIGOGPSINFO variant
- Fixed an issue with filename encoding when the -L option is used and the API
WindowsLongPath option is active
Dec. 11, 2024 - Version 13.07
- Decode a number of LIGOGPSINFO encrypted and enciphered timed GPS types
(long overdue, but it took me a couple of years to acquire enough sample
videos to have a good cross-section of the different formats)
- Fixed another place where FileSequence could be incremented twice when a -if
condition was used
- Fixed a few places where character 0x7f may not have been escaped in string
values
- API Changes:
- Changed default WindowsLongPath option back to 1 after adding a patch to
fix issue with piping from stdin
Dec. 5, 2024 - Version 13.06
- Decode timed metadata from MP4 videos of yet another dashcam model
- Patched issue where FileSequence could increment twice for each file when a
-if condition was used
- API Changes:
- Revert default WindowsLongPath option to the pre-13.05 setting
until we can solve the pipe problem
Dec. 4, 2024 - Version 13.05
- Added a new SonyModelID
- Added support for XMP HDRGainMap and apdi namespaces
- Decode DJI timed djmd and dbgi protobuf-format metadata
- Decode APP10 AROT HDRGainCurve and APP2 URN UniformResourceName
- Decode a couple of new GoPro tags
- API Changes:
- Changed default WindowsLongPath option to 1 (please report if this
causes any problems)
Nov. 26, 2024 - Version 13.04
- Added the ability to write GPSDOP and GPSMeasureMode from the -geotag option
if hdop or pdop information exists in the input track file
- Added a few new Canon RFLensTypes (thanks Norbert Wasser)
- Decode timed GPS from GoPro Hero 13 videos
- Improved writing of GPSDestLatitudeRef and GPSDestLongitudeRef tags to allow
signed numbers to be written in the same way as GPSLatitudeRef and
GPSLongitudeRef
- Warn if using an Image::ExifTool library that doesn't match the application
version
- Renamed an Unknown Photoshop tag
- Convert GoPro GPSSpeed and GPSSpeed3D from m/s to km/h
- Patched to tolerate XML header in DOCX xml files
- Fixed incorrect file offsets for tags in some embedded files of -htmldump
output
- Fixed -htmldump output to show the same names for unknown EXIF tags as with
the -u option
Nov. 12, 2024 - Version 13.03
- Added ability to include or exclude tags from CSV and JSON imports
(-csv=CSVFILE and -json=JSONFILE) by adding -TAG or --TAG options
- Added read/delete support for SEAL metadata in JPG, TIFF, XMP, PNG, WEBP,
HEIC, PPM, MOV and MP4 files, and read support in PDF, MKV and WAV files
- Added support for user-defined application extensions in GIF images
- Added print conversion for QuickTime VideoFullRangeFlag
- Apply API LimitLongValues option to hex field in -j output
- Avoid extracting some large AES-encrypted data from PDF files for
performance reasons unless the -m option is used (current limits are 100 kB
for XMP and 10 kB for everything else)
- Fixed WindowsLongPath option to support wide characters (thanks Frank B)
- Fixed problem writing ICC_Profile to a GIF image which already had one
- Fixed problem writing Apple:FocusDistanceRange
- API Changes:
- Enchanced GlobalTimeShift option to allow the base tag to be specified,
otherwise use the first specified source date/time tag when copying tags
Nov. 5, 2024 - Version 13.02
- Enhanced -j -l output to add optional "fmt" and "hex" fields
- Enhanced -geotag option to support Android "Export Timeline data" JSON
format
- Changed ProductVersion of Windows launcher to match ExifTool version
- Patched to use empty group name instead of "Copy0" for family 4 group name
of missing tag when the -f option is used
- Patched to avoid showing "Unknown" for group of primary tag when -g4 or -G4
was used with the -j or -csv option
- Patched to avoid using Encode module in Windows because it can hang if run
from a working directory with a long path name
- Patched to use -csv output if -j also used
- Fixed a few problems with the new WindowsLongPath option
- Fixed problem setting FileCreateDate with Xcode 16 command line tools if the
date/time contains a time zone
- Fixed problem in -csv output when combined with -g
- API Changes:
- Added SaveBin option
Nov. 1, 2024 - Version 13.01
- NOTE: Please test the new API WindowsLongPath option because the idea is to
enable this by default if everything works out well
- Fixed bug which could result in runtime warning if when API IgnoreTags
option is set to "all" when reading a TXT file format
- Fixed problem reading some information from LNK files
- Fixed verbose output to show "Binary data" message for SCALAR values
- Fixed bug where part of the hex dump from a -v3 output could go to stdout
instead of the file specified by a -w option
- API Changes:
- Added WindowsLongPath option for testing
- Changed CharsetFileName option to automatically assume UTF8 if the file
name contains special characters and is valid UTF8
Oct. 29, 2024 - Version 13.00 (production release)
- Added support for reading GPS from Autel Evo II drone videos
- Added a new PhaseOne RawFormat value
- Updated XMP-exifEX tags, exif2xmp.args and xmp2exif.args according to the
2024 EXIF for XMP specification
- Updated Geolocation databases from current geonames.org files
- Updated the MIME types for a couple of font formats
- Enhanced -diff option to work with -ec (C-style escape of special chars)
- Changed name of EXIF Title tag to ImageTitle to correspond with specifiation
- Reverted a geotag warning message to remove debugging information that was
added in version 12.67 and moved this information into a -v3 verbose message
- Patched Perl bug which gave "Can't spawn" warning in Windows if control-C
was pressed while displaying the exiftool application help
- Fixed API StructFormat JSONQ setting to properly quote values in structures
- Fixed incorrect AudioStreamType for M2TS videos containing a PGS stream
- Fixed -diff option so "same tags" messages are only shown when -v is added
(as per the documentation)
Oct. 18, 2024 - Version 12.99
- Added -diff option to compare the metadata in two files
- Added a new Canon lens (thanks Norbert Wasser)
- Decode GPS from 70mai A810 dashcam videos
- Decode a new QuickTime tag
- Patched to recognize C2PA APP11 JUMBF header with incorrect byte order
written by buggy Microsoft software
- Patched to maintain order of entries in a JSON object when reading
- Patched to maintain order of CSV columns when setting tags from a CSV file
- Patched to maintain order of XMP lang-alt entries when writing/copying
- Fixed typo in an APP12 tag name
- API Changes:
- Structured values returned as HASH references with the Struct option may
contain a new "_ordered_keys_" entry used to preserve the order of the
entries
- Added the OrderedKeys method to return the ordered or sorted keys from a
returned structure value
Oct. 8, 2024 - Version 12.98
- Added write support for PDF files with huge offsets
- Added a number of new Sony LensType values (thanks Jos Roost)
- Require -v4 or higher to output "JPG RST" lines
- Patched problem with -fast option when reading HEIC file via a pipe
- Patched to avoid hang when reading some corrupted XMP
Sept. 25, 2024 - Version 12.97
- Added ability to ignore up to 4095 bytes of garbage at the end of an INDD
file with the -m option
- Added a new Canon RFLensType value (thanks Norbert Wasser)
- Added a new Nikon Z LensID
- Decode a number of new Nikon Z6_3 tags (thanks Warren Hatch)
- Decode a few more FujiFilm tags (thanks Greybeard)
- Enhanced %C format code to allow file-name collisions to be avoided by using
a colon instead of a decimal in the format modifier
- Fixed bug which could result in hang when using %C code in an output file
name
Sept. 1, 2024 - Version 12.96
- More improvements to handling of trailers on video files (and add ability to
write videos which have an unknown trailer)
- Fixed problem geotagging from some newer Google Takeout files
Aug. 30, 2024 - Version 12.95
- Added a couple of new CanonModelID values
- Decode ColorData for a couple of new Canon models
- Fixed problem writing video files which have some known trailer types
Aug. 29, 2024 - Version 12.94
- Added ability to geotag from new-format Google Takeout JSON files
- Added a few new Android and Xiaomi QuickTime Keys tags
- Added ability to read C2PA JUMBF metadata from TTF/OTF files
- Internal changes to code for creating new directories
- Changed Windows packages to have the application help text file in the
exiftool_files folder instead of writing it to a temporary directory
- Removed new QuickTime Keys tags added in 12.93 because these aren't used in
top-level metadata (written to the video track by Apple devices)
- Fixed the group names for synthesized default-language QuickTime tags and
added a verbose message when generating these tags
- Fixed warning in Geolocation.t self test
Aug. 20, 2024 - Version 12.93
- Added a new Nikon LensID
- Added a couple of new OpenEXR Compression types
- Added a couple of new QuickTime Keys tags
- Decode timed metadata from E-ACE B44 dashcam videos
- Made "Unrecognized" Samsung Meta warnings minor
- Fixed bug in -listg6 option which resulted in "uninitialized value" warnings
- Fixed decoding of Func1Button and Func2Button for the Nikon Z6/Z7
- Fixed bug reading JUMB metadata from JXL images
July 24, 2024 - Version 12.92
- Removed -w from exiftool shebang due to compatibility issues on some systems
July 24, 2024 - Version 12.91
- Added a couple of new OpenEXR Compression values (github #276)
- Updated 2 test files that were causing failed tests (ExifTool itself is
unchanged)
July 24, 2024 - Version 12.90
- Added support for reading Samsung trailer from PNG images
- Decode two more formats of timed GPS from MP4 videos
- Decode a few more Samung trailer tags (thanks Neal Krawetz)
- Decode Canon AntiFlicker tag
- Drop Nikon ShotInfo record when copying MakerNotes from NEF to JPG if it is
larger than 50000 bytes (then MakerNotes would be too large for a single
JPEG segment)
- Changed exiftool shebang to use env: "#!/usr/bin/env perl -w"
- Revert change of 12.84 to iterate through sub-documents with the -p option
only if -ee is used
July 12, 2024 - Version 12.89
- Added new Sony lenses and updated decoding of some tags (thanks Jos Roost)
- Minor change to description of NKA files
- Fixed Archive::Zip problem in Windows executable version
July 11, 2024 - Version 12.88 - "New Windows/MacOS packages"
- NOTE: The install procedure for the Windows executable has changed!
- Windows EXE version now uses Oliver Betz's bundle with Strawberry Perl and
comes in 32- and 64-bit versions
- MacOS distribution now uses a flattened package
- Added ability to read/write deflate-compressed XMP in HEIC files
- Added a new Canon LensType (thanks Norbert Wasser)
- Added a new XMP-GCamera tag (thanks Herb)
- Added a new Nikon LensID
- Added a few new Canon AFAreaMode values (thanks Wernfried)
- Added config_files/onone.config to the distribution
- Decode timed accelerometer readings from NextBase 622GW videos
- Decode Pentax K-3III CameraOrentation (thanks Peter)
- Improved German translation for LensModel
- Enhanced the API StructFormat JSONQ setting to quote all JSON values, even
if they aren't in a structure
- Changed -geolocate option so specifying the Keys group writes
Keys:GPSPosition only if an input city is specified, and Keys:LocationName
only for input GPS coordinates
- Tweaked API Geolocation option recognized space-separated lat/lon even when
there is no decimal point in the numbers
- API Changes:
- Changed LargeFileSupport default to 1 and added a setting of 2 to warn
if a large chunk is encountered
June 13, 2024 - Version 12.87
- Added ability to write Google Container XMP tags (using the namespace prefix
'GContainer' to avoid conflict with the Google Device Container prefix)
- Decode a few new tags for the Canon EOS R5 (thanks John Moyer)
- Decode battery information for the Pentax K-3 III (thanks Peter)
- Decode RAFCompression from FujiFilm RAF images (thanks Albert Shan)
- Avoid reporting FileSize for pipes
- Updated Geolocation databases from current geonames.org files
- Enhanced Geolocation feature to allow lat/lon to be input with a space
separator instead of a comma
- Skip over Matroska Cluster if necessary to read Tags when referenced from
SeekHead
- Changed conversion for Matroska SeekID (now in hex with tag name in
brackets) and SeekPosition (now returns an absolute offset)
- Fixed problem writing XMP-Device:EarthPos coordinates
- Fixed typo in a value of Canon:DigitalLensOptimizer (thanks Martin B.)
- Fixed decoding of Matroska VideoScanType
- Fixed misleading error message when -o option was used to write to an
unsupported file type
June 7, 2024 - Version 12.86
- Added a new value for a couple of Olympus tags (thanks Herb)
- Improved handling of ID3 user-defined tags
- Decode all JPEG segments from RICO box in Ricoh MOV videos
- Decode a few new values for some tags written by Canon EOS R cameras (thanks
John Moyer and Martin B.)
- Patched some Olympus WB_RBLevels tags to allow 4 values to be written as per
some newer models
- Fixed issue when writing IPTC date tags with a date/time value containing
subseconds with 4 or more digits
May 21, 2024 - Version 12.85
- Added GeolocationFeatureType tag
- Added read support for Nikon NKA and NXD adjustment files
- Added a new Apple:ImageCaptureType value, and changed another one
- Decode a few new Pentax tags
- Decode a few new Canon tags
- Decode some Ricoh Exif metadata from MOV videos
- Extract ID3 UserDefinedText and UserDefinedURL tags by name
- Make $advFmtSelf available for user-defined helper functions
- Documented API GeoDir pseudo option feature
- Tolerate pad byte at end of HIF file when writing
- Raised priority of FileName, BaseName, Directory and FileType tags so they
don't get hidden by other tags in the file which may have these names
- Changed decoding of QuickTime Rotation (irot) to correspond with
EXIF:Orientation (previously this was oddly reported as degrees of
counterclockwise rotation)
- Fixed a typo in the print conversion value for a couple of DPX tags
- Fixed problem writing some QuickTime tags with very large (> 16 MB) values
- Fixed bug in build_geolocation utility that resulted in incorrect population
numbers when run under ActivePerl
Apr. 23, 2024 - Version 12.84
- Added ability to read speed and accuracy_horizontal when geotagging from
OpenTracks GPX files
- Decode a few more Apple tags and a new CanonVRD tag
- Enhanced Geolocation feature with the ability to return any number of nearby
cities
- Allow coordinates to be entered without comma separator for the Geolocation
feature as long as both coordinates have a decimal point
- Changed -p option to iterate through sub-documents if they exist even if -ee
isn't used
- Fixed long-standing bug in Windows version that didn't properly handle dates
older than 50 years when writing FileModifyDate or FileCreateDate
- Fixed API TimeZone option to work in Windows
- Fixed problem where the SetTags helper function didn't properly copy tags
which have print conversions
- Fixed problem where a new subregion couldn't be added through a user-defined
Geolocation database entry
- Fixed problem where the API GeolocFeature option didn't work for some
features if a user-generated custom database was used
Apr. 18, 2024 - Version 12.83
- Added SetTags helper function for use in advanced formatting expressions
- Added a couple of new tags from the DNG 1.7.1 specification
- Added a new Nikon Z lens
- Added a couple of new QuickTime tags
- Added a few more XMP-GCamera tags
- Added build_geolocation utility to the full distribution
- Decode a new CanonVRD tag and rename another one
- Updates to Sony maker note decoding for newer models (thanks Jos Roost)
- Minor change in -p option to avoid adding the trailing newline if the -b
option is also used
- Minor changes to GM PDR decoding for Gear and angle measurements
- Removed Geolocation alternate language support from the standard
distribution, and added PPLX feature codes
- Set family 1 group name for NextBase 'nbmt' information to "Nextbase"
- Fixed incorrect ID of a DNG tag
- API Changes:
- Added IgnoreGroups option
Apr. 5, 2024 - Version 12.82 - "GM PDR"
- Added support for reading GM PDR data from MP4 videos written by cars such
as Corvettes and Cameros
- Added support for reading timed GPS from Wolfbox dashcam videos
- Added "Unknown trailer" to QuickTime warnings originating from an unknown
trailer
- Added a new Nikon LensID
- Extract PreviewImage from Chigee AIO-5 dashcam videos
- Changed name and print conversion of a recently added FujiFilm tag
- Only issue "Tag not defined" warnings for the first sub-document when using
the -p option
- Fixed a Nikon Z lens name (github #250)
- Fixed Windows version so -sort works properly with -listgeo
- API Changes:
- Added PrintCSV option for optimized extraction of GM PDR data in CSV
format
Mar. 27, 2024 - Version 12.81
- Added ability to read EXIF and XMP from EXR images
- Added ability to delete unknown trailer when writing MOV/MP4 videos
- Added ability to write a couple of Stable Diffusion PNG tags
- Added ability to write one of the Microsoft Xtra Description tags (github
#248)
- Added support for using alternate city names in reverse Geolocation
- Added support for reading timed GPS from DOD LS600W TS videos
- Added support for new version of Canon DR4 files
- Added a number of new iTunesInfo tags
- Added a new Olympus LensType
- Decode a number of new Nikon tags (thanks Warren Hatch)
- Allow regular expressions to be used when writing Geolocate tag
- Enhanced writing of Geolocate tag to also write Keys:LocationName
- Cache the results of the last reverse geolocation search to speed batch
processing when multiple files have the same search parameters
- Patched problem that could cause runtime errors with some invaid tag names
- Fixed a couple of newly added FujiFilm tags
- Fixed decoding of FujiFilm AFAreaZoneSize
- API Changes:
- Added GeolocAltNames option
Mar. 19, 2024 - Version 12.80
- Added GeolocationFeatureCode tag
- Added XMP-acdsee-rs tags and a new XMP-xmpDM tag
- Added ACDSeeRegion2MWGRegion conversion to config_files/acdsee.config
- Added GPSAltitudeRef to XMP-iptcExt LocationDetails structure
- Added a couple of new FujiFilm tags and a new CropMode value
- Added conversion for XMP-aux:ApproximateFocusDistance "infinity"
- Improved Geolocation regular expressions to allow negative matches
- Improved accuracy of Geolocation distance/bearing calculations
- Changed structure of Geolocation database (now version 1.02)
- Minor change to key format for user-defined Geolocation name translations
- Ignore API Geolocation option when copying tags if none of the Geolocation
tags are being copied
- Fixed case/spacing of "C2PA" in some CBOR tag descriptions
- Fixed bug extracting binary data from EXR files
- API Changes:
- Added GeolocFeature option
Mar. 15, 2024 - Version 12.79
- Improvements to new Geolocation feature:
- Added reverse Geolocation ability (obtain GPS coordinates from city
name), with support for regular expressions
- Added ability to geolocate while geotagging
- Added -listgeo option to list the Geolocation database
- Added the ability to include user-defined cities in the Geolocation
database
- Added the ability to write XMP-iptcExt LocationShown tags using Geolocate
feature
- Added the ability to specify which tags to read from file for the API
Geolocation option
- Added language translations for Geolocation names
- Increased resolution of Geolocation GPS positions and stored populations
- API Changes:
- Save necessary data members to allow GetInfo to be accessed by
user-defined tags
Mar. 5, 2024 - Version 12.78 - "Geolocation"
- Added new Geolocation feature and write-only Geolocate tag
- Added new config file entry (@Image::ExifTool::UserDefined::Arguments) to
allow default command-line arguments to be specified
- Added print conversion for TIFF-EPStandardID
- Added ability to delete Nextbase information from MP4 videos
- Decode timed GPS from MP4 videos written by Nextbase software
- Decode a number of new tags from Nextbase MP4 videos
- Decode a few new tags from Garmin MP4 videos
- Extract PreviewJXL images from DNG 1.7 files
- Generate Validate, ImageDataHash and UserParam tags earlier to allow them to
be used in UserDefined Composite tags
- Enhanced the -c option so a minus sign in the format specification prints a
signed coordinate without a leading "+" for positive numbers
- Changed formatting of some Accelerometer tags for consistency
- Changed behaviour of -ee3 option to do a brute-force scan for freeGPS in the
media data even when referenced by 'gps ' atom
- Other internal changes to decoding of timed GPS from videos
- Fixed problem were ExifTool would give up on extracting some types of timed
GPS from videos after 100 void fixes
- Fixed bug that could cause runtime error when reading Ogg files
- Fixed issue where some tags from alternate files using the -fileNUM option
weren't generated as requested
- API Changes:
- Added Geolocation, GeolocMaxDist and GeolocMinPop API options
Feb. 16, 2024 - Version 12.77
- Added new Olympus CameraType and LensType value (thanks herb)
- Added a new Canon Irix LensType
- Added the ability to delete MacOS XAttrMDItemWhereFroms
- Decode a few new Canon DPP tags (thanks John Moyer)
- Decode timed GPS from Adzome GS65H MOV videos
- Improved handling of XML-unfriendly characters in JSON field names (fixes
issue where -X option could produce invalid XML when reading JSON with the
-struct option)
- Fixed decoding of ShutterCount for Canon G5X-ii CR3 files
Jan. 31, 2024 - Version 12.76 (production release)
- Properly implement patch of 12.45 to avoid duplicating raw data when writing
@ -19,6 +797,7 @@ Jan. 30, 2024 - Version 12.75 (production release)
- CORRUPTION WARNING: Fixed bug introduced in 12.45 which could result in
corrupted Sony ARW images from some newer models when rewriting lossless
compressed ARW images which were previously edited by 12.44 or earlier
(the corruption is repairable, but requires a special version of ExifTool)
- Added ability to read C2PA JUMBF metadata from PDF and SVG files
- Added ability to extract JUMBF metadata as a block
- Added read support for C2PA (JUMBF-format) files
@ -210,7 +989,7 @@ Aug. 10, 2023 - Version 12.65
provided
- Lowered priority of IFD1 tags in ARW images so IFD0/SubIFD take precedence
- Changed QuickTime tag names for atID (AlbumTitleID to ArtistID) and plID
(PlayListID to AlbumID) (github issue #216), and added cmID (ComposerID)
(PlayListID to AlbumID) (github #216), and added cmID (ComposerID)
- Changed Apple:MediaGroupUUID tag name back to ContentIdentifier
- Patched the -d option to handle the %s format code internally when writing
(avoids problems due to inconsistent behaviour of this format code in the
@ -547,7 +1326,7 @@ Oct. 13, 2022 - Version 12.48
"Z" are actually in Zulu time -- a bit of a mess really)
- Prevent dynamically-generated Unknown tags from being extracted when the
-validate option is used without -u
- Patched to better handle irregular timestamps in streaming GPS of NextBase
- Patched to better handle irregular timestamps in streaming GPS of Nextbase
dashcam videos
- Fixed incompatibility with Sigma Photo Pro which could result in Sigma Photo
Pro corrupting an ExifTool-edited X3F image (the section length in the
@ -761,7 +1540,15 @@ Dec. 8, 2021 - Version 12.37
- Extract TransparentColor from GIF images
- Improved parsing of input time values for GPSTimeStamp to properly handle a
"." separator
- Improved warning when incorrectly using "
- Improved warning when incorrectly using "<" instead of "=" to assign a tag
value
- Shortened a few of the new obscenely-long XMP-crs tag names
- Avoid writing XMP-dwc:EventID and XMP-tiff:NativeDigest
- Avoid printing same structure twice in -j and -X output when -l is used
- Fixed typo in a QuickTime tag name (thanks Hubert)
- Fixed two XMP-crs tag names and typo in a NikonSettings value (thanks Herb)
- Fixed patch of version 12.25 to avoid writing XMP which contains an
undefined namespace
Nov. 16, 2021 - Version 12.36
@ -1073,7 +1860,7 @@ Feb. 3, 2021 - Version 12.17
- 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)
- Re-worked LensID patch of version 12.00 (github #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
@ -1144,7 +1931,7 @@ 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)
- Added a warning if ICC_Profile is deleted from an image (github #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)
@ -1419,7 +2206,7 @@ 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
- 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
@ -1518,7 +2305,7 @@ Jan. 8, 2020 - Version 11.82
- Added a new Canon LensType
- Added a new CanonModelID (thanks LibRaw)
- Added ability to process SubDirectories in QuickTime Keys tags
- Removed minor error when writing PDF 2.0 files (github issue #30)
- Removed minor error when writing PDF 2.0 files (github #30)
- Fixed problem where trailing null bytes were removed from binary values in
the -php output when the -b option was used
@ -1532,8 +2319,7 @@ Jan. 2, 2020 - Version 11.81
- Patched Composite sub-second date/time tags to do additional validation of
source EXIF date/time tags before adding sub seconds
- Fixed problem where -json output could produce invalid JSON when -struct was
used and the structure field names contained special characters (github
issue #32)
used and the structure field names contained special characters (github #32)
- Fixed spelling in a Panasonic SceneMode value (thanks Hubert)
Dec. 17, 2019 - Version 11.80
@ -1553,7 +2339,7 @@ Dec. 12, 2019 - Version 11.79
- Added support for AVIF files
- Added new Canon, Sigma and Sony LensType values (thanks LibRaw)
- Made PDF 2.0 writable at your own risk with the -m option (github issue #30)
- Made PDF 2.0 writable at your own risk with the -m option (github #30)
- Enhanced -validate feature to warn about duplicate languages in an XMP
lang-alt list
- Fixed inconsistency between documentation and ExifTool capabilities for
@ -1639,7 +2425,7 @@ Oct. 16, 2019 - Version 11.71
Oct. 10, 2019 - Version 11.70 (production release)
- Added a new CanonModelID (thanks Laurent Clevy)
- Improved identification of Office Open XML files (github issue #27)
- Improved identification of Office Open XML files (github #27)
- Removed RAF version check when writing FujiFilm RAF files
- Limited the number of accelerometer records that ExifTool will read by
default with the -ee option from INSV files to avoid excessive processing
@ -1721,7 +2507,7 @@ Aug. 20, 2019 - Version 11.63 - "PNG Early Text"
- Added a few new Sigma lenses (thanks LibRaw)
- Improved handling of Canon CNTH atom in MOV/MP4 videos
- Changed PNG writer to place all text chunks before IDAT (not just XMP)
(github issue #23)
(github #23)
- Issue minor warning for any text chunk after PNG IDAT (not just XMP)
- Enhanced ForceWrite feature to allow "PNG" to be specified (to move existing
text chunks to before IDAT without editing any metadata)
@ -1878,7 +2664,7 @@ June 17, 2019 - Version 11.52
- Fixed problem where reading a large, corrupt AIFF file may could take an
excessively long time
- API Changes:
- Enhanced Compact option to add levels 3, 4 and 5 (github issue #16)
- Enhanced Compact option to add levels 3, 4 and 5 (github #16)
June 13, 2019 - Version 11.51
@ -2016,7 +2802,7 @@ May 3, 2019 - Version 11.39 - "Create QuickTime tags"
- Decode Canon EOS D60 black levels
- Split off some QuickTime tags into different family 1 groups
- Fixed "Chunk offset outside movie data" error when writing some HEIC files
- Fixed decoding of Pentax AutoBracketing for K-1 and K-5 (github issue #15)
- Fixed decoding of Pentax AutoBracketing for K-1 and K-5 (github #15)
- Fixed some QuickTime family 2 group names
- Fixed bug introduced in 11.38 that broke extraction of thumbnail images from
Canon MOV videos
@ -2120,7 +2906,7 @@ Mar. 14, 2019 - Version 11.32
Mar. 7, 2019 - Version 11.31
- Added read support for FITS images
- Another try at removing spaces from some DICOM values (github issues #10/12)
- Another try at removing spaces from some DICOM values (github #10 and #12)
Mar. 6, 2019 - Version 11.30 (production release)
@ -2129,7 +2915,7 @@ Mar. 6, 2019 - Version 11.30 (production release)
- Decode Reconyx HF2 PRO maker notes
- Decode ColorData for some new Canon models (thanks LibRaw)
- Enhanced -geotag feature to set AmbientTemperature if available
- Remove non-significant spaces from some DICOM values (github issues #10/12)
- Remove non-significant spaces from some DICOM values (github #10 and #12)
- Fixed possible "'x' outside of string" error when reading corrupted EXIF
- Fixed incorrect write group for GeoTIFF tags added in version 11.24
@ -2137,13 +2923,13 @@ Feb. 28, 2019 - Version 11.29
- Added support for Ricoh GR III maker notes
- Added a new Canon LensType (thanks Claude Jolicoeur)
- Added a new XMP-crs tag (github issue #8)
- Added a new XMP-crs tag (github #8)
- Enhanced -csv option to output base64-encoded binary data when combined with
-b or when the -charset option is used and the text has invalid characters
(github issue #11)
- Remove trailing space from even-length DICOM values (github issue #9)
(github #11)
- Remove trailing space from even-length DICOM values (github #9)
- Patched to avoid "Hexadecimal number > 0xffffffff non-portable" warning
(github issue #6)
(github #6)
- Fixed meta charset attribute in -htmlDump output
Feb. 21, 2019 - Version 11.28
@ -2308,7 +3094,7 @@ Oct. 16, 2018 - Version 11.14
Oct. 9, 2018 - Version 11.13
- Decode GPS from NextBase 512G dashcam MOV videos (different than 512GW)
- Decode GPS from Nextbase 512G dashcam MOV videos (different than 512GW)
- 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
@ -2327,7 +3113,7 @@ Oct. 2, 2018 - Version 11.12
- Added a new Sony/Minolta LensType (thanks LibRaw and Jos Roost)
- Added a new Nikon LensID
- Decode a few new Sony SRF2 tags (thanks LibRaw)
- Decode GPS from NextBase 512GW dashcam MOV videos
- Decode GPS from Nextbase 512GW dashcam MOV videos
- Validate MS-DOC FIB before extracting contained tags
- Fixed bug extracting GPSSpeed for some dashcam models

View File

@ -15,6 +15,7 @@ arg_files/xmp2exif.args
arg_files/xmp2gps.args
arg_files/xmp2iptc.args
arg_files/xmp2pdf.args
build_geolocation
config_files/acdsee.config
config_files/age.config
config_files/bibble.config
@ -27,6 +28,7 @@ config_files/frameCount.config
config_files/gps2utm.config
config_files/guano.config
config_files/nksc.config
config_files/onone.config
config_files/photoshop_paths.config
config_files/picasa_faces.config
config_files/pix4d.config
@ -38,6 +40,7 @@ fmt_files/gpx.fmt
fmt_files/gpx_wpt.fmt
fmt_files/kml.fmt
fmt_files/kml_track.fmt
html/ET-256.png
html/ExifTool.html
html/MIE1.1-20070121.pdf
html/Shift.html
@ -80,6 +83,7 @@ html/TagNames/FujiFilm.html
html/TagNames/GE.html
html/TagNames/GIF.html
html/TagNames/GIMP.html
html/TagNames/GM.html
html/TagNames/GPS.html
html/TagNames/GeoTiff.html
html/TagNames/GoPro.html
@ -133,6 +137,7 @@ html/TagNames/Olympus.html
html/TagNames/OpenEXR.html
html/TagNames/Opus.html
html/TagNames/Other.html
html/TagNames/PCAP.html
html/TagNames/PCX.html
html/TagNames/PDF.html
html/TagNames/PGF.html
@ -175,6 +180,7 @@ html/TagNames/Stim.html
html/TagNames/Text.html
html/TagNames/Theora.html
html/TagNames/Torrent.html
html/TagNames/Trailer.html
html/TagNames/Unknown.html
html/TagNames/VCard.html
html/TagNames/Vorbis.html
@ -188,6 +194,7 @@ html/TagNames/iWork.html
html/TagNames/index.html
html/TagNames/style.css
html/ancient_history.html
html/build_geolocation.txt
html/canon_raw.html
html/commentary.html
html/config.html
@ -195,15 +202,23 @@ html/data_members.html
html/exiftool_pod.html
html/faq.html
html/filename.html
html/geolocation.html
html/geotag.html
html/history.html
html/htmldump.html
html/idiosyncracies.html
html/index.html
html/install.html
html/markers.svg
html/metafiles.html
html/mistakes.html
html/overview.png
html/plot.html
html/plot1.svg
html/plot2.svg
html/plot3.svg
html/plot4.svg
html/plot5.svg
html/standards.html
html/struct.html
html/style.css
@ -292,8 +307,11 @@ lib/Image/ExifTool/FujiFilm.pm
lib/Image/ExifTool/GE.pm
lib/Image/ExifTool/GIF.pm
lib/Image/ExifTool/GIMP.pm
lib/Image/ExifTool/GM.pm
lib/Image/ExifTool/GPS.pm
lib/Image/ExifTool/GeoTiff.pm
lib/Image/ExifTool/Geolocation.dat
lib/Image/ExifTool/Geolocation.pm
lib/Image/ExifTool/Geotag.pm
lib/Image/ExifTool/GoPro.pm
lib/Image/ExifTool/H264.pm
@ -337,6 +355,7 @@ lib/Image/ExifTool/Lang/tr.pm
lib/Image/ExifTool/Lang/zh_cn.pm
lib/Image/ExifTool/Lang/zh_tw.pm
lib/Image/ExifTool/Leaf.pm
lib/Image/ExifTool/LigoGPS.pm
lib/Image/ExifTool/Lytro.pm
lib/Image/ExifTool/M2TS.pm
lib/Image/ExifTool/MIE.pm
@ -369,6 +388,7 @@ lib/Image/ExifTool/Olympus.pm
lib/Image/ExifTool/OpenEXR.pm
lib/Image/ExifTool/Opus.pm
lib/Image/ExifTool/Other.pm
lib/Image/ExifTool/PCAP.pm
lib/Image/ExifTool/PCX.pm
lib/Image/ExifTool/PDF.pm
lib/Image/ExifTool/PGF.pm
@ -387,8 +407,10 @@ lib/Image/ExifTool/PhaseOne.pm
lib/Image/ExifTool/PhotoCD.pm
lib/Image/ExifTool/PhotoMechanic.pm
lib/Image/ExifTool/Photoshop.pm
lib/Image/ExifTool/Plot.pm
lib/Image/ExifTool/PostScript.pm
lib/Image/ExifTool/PrintIM.pm
lib/Image/ExifTool/Protobuf.pm
lib/Image/ExifTool/Qualcomm.pm
lib/Image/ExifTool/QuickTime.pm
lib/Image/ExifTool/QuickTimeStream.pl
@ -418,6 +440,7 @@ lib/Image/ExifTool/TagNames.pod
lib/Image/ExifTool/Text.pm
lib/Image/ExifTool/Theora.pm
lib/Image/ExifTool/Torrent.pm
lib/Image/ExifTool/Trailer.pm
lib/Image/ExifTool/Unknown.pm
lib/Image/ExifTool/VCard.pm
lib/Image/ExifTool/Validate.pm
@ -599,6 +622,14 @@ t/GeoTiff.t
t/GeoTiff_2.out
t/GeoTiff_3.out
t/GeoTiff_4.out
t/Geolocation.t
t/Geolocation_2.out
t/Geolocation_3.out
t/Geolocation_4.out
t/Geolocation_5.out
t/Geolocation_6.out
t/Geolocation_7.out
t/Geolocation_8.out
t/Geotag.t
t/Geotag_10.out
t/Geotag_11.out
@ -729,6 +760,8 @@ t/OpenEXR.t
t/OpenEXR_2.out
t/Opus.t
t/Opus_2.out
t/PCAP.t
t/PCAP_2.out
t/PCX.t
t/PCX_2.out
t/PDF.t
@ -808,7 +841,12 @@ t/QuickTime_14.out
t/QuickTime_15.out
t/QuickTime_16.out
t/QuickTime_17.out
t/QuickTime_18.out
t/QuickTime_19.out
t/QuickTime_2.out
t/QuickTime_20.out
t/QuickTime_21.out
t/QuickTime_22.out
t/QuickTime_3.out
t/QuickTime_4.out
t/QuickTime_5.out
@ -920,6 +958,7 @@ t/Writer_58.out
t/Writer_59.out
t/Writer_6.out
t/Writer_60.out
t/Writer_61.out
t/Writer_7.out
t/Writer_9.out
t/XISF.t
@ -1096,6 +1135,7 @@ t/images/OlympusE1.jpg
t/images/OpenDoc.ods
t/images/OpenEXR.exr
t/images/Opus.opus
t/images/PCAP.pcapng
t/images/PCX.pcx
t/images/PDF.pdf
t/images/PDF2.pdf

View File

@ -4,7 +4,7 @@
"Phil Harvey (philharvey66 at gmail.com)"
],
"dynamic_config" : 1,
"generated_by" : "ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.133380",
"generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.143240",
"license" : [
"perl_5"
],
@ -50,5 +50,5 @@
}
},
"release_status" : "stable",
"version" : "12.76"
"version" : "13.30"
}

View File

@ -3,32 +3,32 @@ abstract: 'Read and write meta information'
author:
- 'Phil Harvey (philharvey66 at gmail.com)'
build_requires:
ExtUtils::MakeMaker: 0
ExtUtils::MakeMaker: '0'
configure_requires:
ExtUtils::MakeMaker: 0
ExtUtils::MakeMaker: '0'
dynamic_config: 1
generated_by: 'ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.133380'
generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.143240'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: 1.4
version: '1.4'
name: Image-ExifTool
no_index:
directory:
- t
- inc
recommends:
Archive::Zip: 0
Compress::Raw::Lzma: 0
Compress::Zlib: 0
Digest::MD5: 0
Digest::SHA: 0
IO::Compress::Brotli: 0
IO::Compress::RawDeflate: 0
IO::Uncompress::Brotli: 0
IO::Uncompress::RawInflate: 0
POSIX::strptime: 0
Time::HiRes: 0
Archive::Zip: '0'
Compress::Raw::Lzma: '0'
Compress::Zlib: '0'
Digest::MD5: '0'
Digest::SHA: '0'
IO::Compress::Brotli: '0'
IO::Compress::RawDeflate: '0'
IO::Uncompress::Brotli: '0'
IO::Uncompress::RawInflate: '0'
POSIX::strptime: '0'
Time::HiRes: '0'
requires:
perl: 5.004
version: 12.76
perl: '5.004'
version: '13.30'

99
README
View File

@ -14,50 +14,50 @@ supported by ExifTool (r = read, w = write, c = create):
File Types
------------+-------------+-------------+-------------+------------
360 r/w | DOCX r | ITC r | O r | RSRC r
3FR r | DPX r | J2C r | ODP r | RTF r
3G2 r/w | DR4 r/w/c | JNG r/w | ODS r | RW2 r/w
3GP r/w | DSS r | JP2 r/w | ODT r | RWL r/w
7Z r | DV r | JPEG r/w | OFR r | RWZ r
A r | DVB r/w | JSON r | OGG r | RM r
AA r | DVR-MS r | JXL r | OGV r | SEQ r
AAC r | DYLIB r | K25 r | ONP r | SKETCH r
AAE r | EIP r | KDC r | OPUS r | SO r
AAX r/w | EPS r/w | KEY r | ORF r/w | SR2 r/w
ACR r | EPUB r | LA r | ORI r/w | SRF r
AFM r | ERF r/w | LFP r | OTF r | SRW r/w
AI r/w | EXE r | LIF r | PAC r | SVG r
AIFF r | EXIF r/w/c | LNK r | PAGES r | SWF r
APE r | EXR r | LRV r/w | PBM r/w | THM r/w
ARQ r/w | EXV r/w/c | M2TS r | PCD r | TIFF r/w
ARW r/w | F4A/V r/w | M4A/V r/w | PCX r | TORRENT r
ASF r | FFF r/w | MACOS r | PDB r | TTC r
AVI r | FITS r | MAX r | PDF r/w | TTF r
AVIF r/w | FLA r | MEF r/w | PEF r/w | TXT r
AZW r | FLAC r | MIE r/w/c | PFA r | VCF r
BMP r | FLIF r/w | MIFF r | PFB r | VNT r
BPG r | FLV r | MKA r | PFM r | VRD r/w/c
BTF r | FPF r | MKS r | PGF r | VSD r
C2PA r | FPX r | MKV r | PGM r/w | WAV r
CHM r | GIF r/w | MNG r/w | PLIST r | WDP r/w
COS r | GLV r/w | MOBI r | PICT r | WEBP r/w
CR2 r/w | GPR r/w | MODD r | PMP r | WEBM r
CR3 r/w | GZ r | MOI r | PNG r/w | WMA r
CRM r/w | HDP r/w | MOS r/w | PPM r/w | WMV r
CRW r/w | HDR r | MOV r/w | PPT r | WPG r
CS1 r/w | HEIC r/w | MP3 r | PPTX r | WTV r
CSV r | HEIF r/w | MP4 r/w | PS r/w | WV r
CUR r | HTML r | MPC r | PSB r/w | X3F r/w
CZI r | ICC r/w/c | MPG r | PSD r/w | XCF r
DCM r | ICO r | MPO r/w | PSP r | XISF r
DCP r/w | ICS r | MQV r/w | QTIF r/w | XLS r
DCR r | IDML r | MRC r | R3D r | XLSX r
DFONT r | IIQ r/w | MRW r/w | RA r | XMP r/w/c
DIVX r | IND r/w | MXF r | RAF r/w | ZIP r
DJVU r | INSP r/w | NEF r/w | RAM r |
DLL r | INSV r | NKSC r/w | RAR r |
DNG r/w | INX r | NRW r/w | RAW r/w |
DOC r | ISO r | NUMBERS r | RIFF r |
360 r/w | DOCX r | ITC r | NUMBERS r | RAM r
3FR r | DPX r | J2C r | NXD r | RAR r
3G2 r/w | DR4 r/w/c | JNG r/w | O r | RAW r/w
3GP r/w | DSS r | JP2 r/w | ODP r | RIFF r
7Z r | DV r | JPEG r/w | ODS r | RSRC r
A r | DVB r/w | JSON r | ODT r | RTF r
AA r | DVR-MS r | JXL r/w | OFR r | RW2 r/w
AAC 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 | PCAP r | SWF r
AVI r | FITS r | MAX r | PCAPNG r | THM r/w
AVIF r/w | FLA r | MEF r/w | PCD r | TIFF r/w
AZW r | FLAC r | MIE r/w/c | PCX r | TORRENT r
BMP r | FLIF r/w | MIFF r | PDB r | TTC r
BPG r | FLV r | MKA r | PDF r/w | TTF r
BTF r | FPF r | MKS r | PEF r/w | TXT r
C2PA r | FPX r | MKV r | PFA r | VCF r
CHM r | GIF r/w | MNG r/w | PFB r | VNT r
COS r | GLV r/w | MOBI r | PFM r | VRD r/w/c
CR2 r/w | GPR r/w | MODD r | PGF r | VSD r
CR3 r/w | GZ r | MOI r | PGM r/w | WAV r
CRM r/w | HDP r/w | MOS r/w | PLIST r | WDP r/w
CRW r/w | HDR r | MOV r/w | PICT r | WEBP r/w
CS1 r/w | HEIC r/w | MP3 r | PMP r | WEBM r
CSV r | HEIF r/w | MP4 r/w | PNG r/w | WMA r
CUR r | HTML r | MPC r | PPM r/w | WMV r
CZI r | ICC r/w/c | MPG r | PPT r | WPG r
DCM r | ICO r | MPO r/w | PPTX r | WTV r
DCP r/w | ICS r | MQV r/w | PS r/w | WV r
DCR r | IDML r | MRC r | PSB r/w | X3F r/w
DFONT r | IIQ r/w | MRW r/w | PSD r/w | XCF r
DIVX r | IND r/w | MXF r | PSP r | XISF r
DJVU r | INSP r/w | NEF r/w | QTIF r/w | XLS r
DLL r | INSV r | NKA r | R3D r | XLSX r
DNG r/w | INX r | NKSC r/w | RA r | XMP r/w/c
DOC r | ISO r | NRW r/w | RAF r/w | ZIP r
Meta Information
----------------------+----------------------+---------------------
@ -109,8 +109,8 @@ your home directory, then you would type the following commands in a
terminal window to extract and run ExifTool:
cd ~/Desktop
gzip -dc Image-ExifTool-12.76.tar.gz | tar -xf -
cd Image-ExifTool-12.76
gzip -dc Image-ExifTool-13.30.tar.gz | tar -xf -
cd Image-ExifTool-13.30
./exiftool t/images/ExifTool.jpg
Note: These commands extract meta information from one of the test images.
@ -167,10 +167,10 @@ for calculating digest values and providing other features listed below:
COPYRIGHT AND LICENSE
Copyright 2003-2024, Phil Harvey
Copyright 2003-2025, Phil Harvey
This is free software; you can redistribute it and/or modify it under the
same terms as Perl itself.
same terms as Perl itself (either the Perl Artistic License or GPL).
DISTRIBUTION FILES
@ -195,6 +195,7 @@ distribution package:
xmp2gps.args - Arguments for converting XMP to GPS
xmp2iptc.args - Arguments for converting XMP to IPTC
xmp2pdf.args - Arguments for converting XMP to PDF
build_geolocation - Build custom Geolocation database
config_files/ - Sample ExifTool configuration files:
acdsee.config - Definitions for writing ACDSee XMP regions
age.config - Calculate Age of person in photo
@ -208,6 +209,7 @@ distribution package:
gps2utm.config - Generate UTM coordinate tags from GPS info
guano.config - Decode individual tags from Guano metadata
nksc.config - Decode tags in Nikon ViewNX NKSC files
onone.config - Definitions for writing On1 XMP tags
photoshop_paths.config - For extracting or copying Photoshop paths
picasa_faces.config - Convert from Picasa to MWG/MP face regions
pix4d.config - Definitions for writing Pix4D XMP tags
@ -238,6 +240,7 @@ information:
html/ExifTool.html - API documentation
html/TagNames/index.html - Tag name documentation
html/geotag.html - Geotag feature
html/geolocation.html - Geolocation feature
html/faq.html - Frequently asked questions
html/filename.html - Renaming/moving files
html/metafiles.html - Working with metadata sidecar files

View File

@ -13,6 +13,9 @@
# 2015/01/12 - PH Avoid copying to non-standard namespaces
# 2018/05/07 - PH Added support for GPSDestXxxRef tags
# 2022/03/31 - PH IPTC Photometadata Mapping Guidelines 2202.1 update
# 2024/10/24 - PH Additions for the 2024 EXIF for XMP spec
# 2025/01/16 - PH Copy Composite SubSec tags to XMP-exif
# 2025-04-22 - PH Fixed DigitalImageGUID source tag
#
# References: http://www.metadataworkinggroup.org/specs/
# https://iptc.org/std/photometadata/documentation/mappingguidelines/
@ -41,7 +44,7 @@
-XMP-xmp:CreatorTool < EXIF:Software
-XMP-dc:Rights < EXIF:Copyright
-XMP-dc:Creator < EXIF:Artist
-XMP-iptcExt:DigitalImageGUID < EXIF:DigImageGUID
-XMP-iptcExt:DigitalImageGUID < EXIF:ImageUniqueID
# XMP flash information is translated by the Composite Flash tag
-Composite:Flash < EXIF:Flash
# overwrite GPS tags which have different formats in XMP
@ -50,4 +53,10 @@
-XMP:GPSDestLatitude < Composite:GPSDestLatitude
-XMP:GPSDestLongitude < Composite:GPSDestLongitude
-XMP:GPSDateTime < Composite:GPSDateTime
# new for the 2024 EXIF for XMP specification
-XMP-exifEX:PhotographicSensitivity < EXIF:ISO
-XMP-exif:DateTimeDigitized < EXIF:CreateDate
# add sub-seconds and time-zone to XMP-exif tags if available
-XMP-exif:DateTimeOriginal < Composite:SubSecDateTimeOriginal
-XMP-exif:DateTimeDigitized < Composite:SubSecCreateDate
# end

View File

@ -17,6 +17,9 @@
# 2022/03/31 - PH IPTC Photometadata Mapping Guidelines 2202.1 update
# 2023/01/30 - PH Also write Composite:SubSecDateTimeOriginal from
# XMP-exif:DateTimeOriginal
# 2024/10/24 - PH Additions for the 2024 EXIF for XMP spec
# 2025/01/16 - PH Write Composite:SubSecCreateDate from XMP-exif
# 2025-04-22 - PH Fixed DigitalImageGUID translation
#
# References: http://www.metadataworkinggroup.org/specs/
# https://iptc.org/std/photometadata/documentation/mappingguidelines/
@ -36,17 +39,20 @@
-EXIF:all < XMP-tiff:all
-EXIF:ImageDescription < XMP-dc:Description
-EXIF:DateTimeOriginal < XMP-photoshop:DateCreated
# new for the 2024 EXIF for XMP specification
-EXIF:ISO < XMP-exifEX:PhotographicSensitivity
# the following SubSec tags also write/delete the corresponding EXIF
# SubSecTime and OffsetTime tags as appropriate
-Composite:SubSecDateTimeOriginal < XMP-exif:DateTimeOriginal
-Composite:SubSecDateTimeOriginal < XMP-photoshop:DateCreated
-Composite:SubSecCreateDate < XMP-exif:DateTimeDigitized
-Composite:SubSecCreateDate < XMP-xmp:CreateDate
-Composite:SubSecModifyDate < XMP-xmp:ModifyDate
-EXIF:Software < XMP-xmp:CreatorTool
-EXIF:Copyright < XMP-dc:Rights
-EXIF:Artist < XMP-plus:ImageCreatorName
-EXIF:Artist < XMP-dc:Creator
-EXIF:DigImageGUID < XMP-iptcExt:DigitalImageGUID
-EXIF:ImageUniqueID < XMP-iptcExt:DigitalImageGUID
# XMP flash information is translated by the Composite Flash tag
-EXIF:Flash < Composite:Flash
# generate GPS tags which have been combined into other XMP tags

948
build_geolocation Executable file
View File

@ -0,0 +1,948 @@
#!/usr/bin/env perl
#-------------------------------------------------------------------------------
# File: build_geolocation
#
# Description: Parse geonames files to create ExifTool geolocation database
#
# Syntax: build_geolocation [OPTIONS] [DBFILE] ...
#
# Options: (see -h output)
#
# Created: 2024-03-03 - P. Harvey
# 2024-04-15 - PH Clean up and add options for public release
# 2024-04-22 - PH Increased number of possible feature codes from
# 32 to 64. Convert backslashes in directory names
# 2024-04-24 - PH Fixed problem with population exponent when run
# under ActivePerl
# 2024-04-29 - PH Added feature types and default to db v1.03
# 2024-06-13 - PH Tweaked case of imported feature types
#
# Notes: Requires these files from https://download.geonames.org/export/
#
# allCountries.txt (or other input database if specified)
# countryInfo.txt
# admin1CodesASCII.txt
# admin2Codes.txt
# featureCodes_XX.txt (optional)
# alternateNamesV2.txt (optional)
#
# Output datbase format (Geolocation.dat):
#
# Header:
# "GeolocationV.VV\tNNNN\n" (V.VV=version, NNNN=num city entries)
# "# <comment>\n"
# NNNN City entries:
# Offset Format Description
# 0 int16u - latitude high 16 bits (converted to 0-0x100000 range)
# 2 int8u - latitude low 4 bits, longitude low 4 bits
# 3 int16u - longitude high 16 bits
# 5 int8u - index of country in country list
# 6 int8u - 0xf0 = population E exponent (in format "N.Fe+0E"), 0x0f = population N digit
# 7 int16u - 0xf000 = population F digit, 0x0fff = index in region list (admin1)
# 9 int16u - v1.02: 0x7fff = index in subregion (admin2), 0x8000 = high bit of time zone
# 9 int16u - v1.03: index in subregion list (admin2)
# 11 int8u - low byte of time zone index
# 12 int8u - 0x3f = feature code index (see below), v1.03: 0x80 = high bit of time zone
# 13 string - UTF8 City name, terminated by newline
# "\0\0\0\0\x01"
# Country entries:
# 1. 2-character country code
# 2. Country name, terminated by newline
# "\0\0\0\0\x02"
# Region entries:
# 1. Region name, terminated by newline
# "\0\0\0\0\x03"
# Subregion entries:
# 1. Subregion name, terminated by newline
# "\0\0\0\0\x04"
# Time zone entries:
# 1. Time zone name, terminated by newline
# "\0\0\0\0\x05" (feature codes added in v1.03)
# Feature codes:
# 1. Feature code, optional space-followed-by-feature-name, then newline
# "\0\0\0\0\0"
#
# Feature Codes v1.02: (see http://www.geonames.org/export/codes.html#P for descriptions)
#
# 0. Other 3. PPLA2 6. PPLA5 9. PPLF 12. PPLR 15. PPLX
# 1. PPL 4. PPLA3 7. PPLC 10. PPLG 13. PPLS
# 2. PPLA 5. PPLA4 8. PPLCH 11. PPLL 14. STLMT
#
# Feature Codes v1.03 and later are listed at the end of the database
#-------------------------------------------------------------------------------
use strict;
my $dbVer = '1.03'; # default output database version
my $dbFile = 'allCountries.txt'; # default database file
my $countryFile = 'countryInfo.txt'; # mandatory country names file
my $regionFile = 'admin1CodesASCII.txt'; # mandatory region names file
my $admin2File = 'admin2Codes.txt'; # mandatory subregion names file
my $featureFile = 'featureCodes_en.txt'; # optional feature names file
my $altNamesFile = 'alternateNamesV2.txt'; # optional alternate names file
my $outFile = 'Geolocation.dat'; # output ExifTool database file
my $outAltNames = 'AltNames.dat'; # output alternate names file
my $outDirName = 'Geolocation_out'; # output directory for database files
my $geoLang = 'GeoLang'; # output directory for language files
my %defaults = (
file => $dbFile,
minpop => 2000,
def_codes => 'PPLA,PPLA2',
def_codesp => 'PPL,PPLA,PPLA2,PPLA3,PPLA4,PPLA5,PPLC,PPLCH,PPLF,PPLG,PPLH,PPLL,PPLQ,PPLR,PPLS,PPLW,PPLX,STLMT',
);
# languages to read from geonames database
my @languages = qw(cs de en en-ca en-gb es fi fr it ja ko nl pl ru sk sv tr zh zh-cn zh-tw);
# indices of feature codes (v1.02 is hard-coded in ExifTool)
my @fc102 = qw(
Other PPL PPLA PPLA2 PPLA3 PPLA4 PPLA5 PPLC PPLCH
PPLF PPLG PPLL PPLR PPLS STLMT PPLX
);
# base features for v1.03+
my @fc103 = qw(
Other PPL PPLA PPLA2 PPLA3 PPLA4 PPLA5 PPLC PPLCH
PPLF PPLG PPLH PPLL PPLQ PPLR PPLS PPLW PPLX STLMT
);
my $i = 0;
my @featureCodes = $dbVer eq '1.02' ? @fc102 : @fc103;
my %featureCodes = map { $_ => $i++ } @featureCodes;
my %featureNames;
my ($dbfile, @dbfiles, $outDir, $verbose, $noLang, %needRgn);
my %optArgs = ( p => 1, c => 1, cp => 1, l => 1, o => 1, ver => 1 );
# process command-line arguments
my $opts = { };
while (@ARGV) {
my $opt = shift;
if (not $opt =~ s/^-//) {
$opt = '.' unless length $opt;
$opt =~ tr(\\)(/); # use forward slashes
$opt =~ s(/$)(); # remove trailing slash
$opt = "$opt/$defaults{file}" if -d $opt;
-e $opt or die "Error opening database $opt\n";
push @dbfiles, { %defaults, %$opts, file => $opt };
$opts = { };
next;
}
my $arg;
if ($optArgs{$opt}) {
$arg = shift;
defined $arg or die "Expecting argument for -$opt option\n";
}
if ($opt eq 'p') {
$arg = uc $arg;
if ($arg =~ /=/) {
my ($cc, $mp) = split /=/, $arg;
$mp =~ /^\d+$/ or die "Expecting number on rhs of '=' for -p option\n";
my @cc = split /,/, $cc;
foreach $cc (@cc) {
$cc =~ /^([A-Z]{2})(\..+)?$/ or die "Invalid country/region '$cc' for -p option\n";
$needRgn{$1} = $needRgn{$cc} = 1 if length $cc > 2;
$$opts{cc_minpop}{$cc} = $mp;
}
} else {
$arg =~ /^\d+$/ or die "Expecting number for -p option\n";
$$opts{minpop} = $arg;
}
} elsif ($opt =~ /^c(p?)$/) {
my $p = $1;
$arg = uc $arg;
my ($cc, $co);
if ($arg =~ /=/) {
($cc, $co) = split /=/, $arg;
} else {
($cc, $co) = ('??', $arg);
}
my $sign = $co =~ s/^([-+])// ? $1 : '';
my @co = split /,/, $co;
my @cc = split /,/, $cc;
# store lookup for features to keep for each country ('??' = any country)
foreach $cc (@cc) {
$cc =~ /^([A-Z]{2}|\?\?)(\..+)?$/ or die "Invalid country/region '$cc' for -$opt option\n";
$needRgn{$1} = $needRgn{$cc} = 1 if length $cc > 2;
if (not $sign) {
$$opts{"keep$p"}{$cc} = { };
} elsif (not $$opts{"keep$p"}{$cc}) {
# start from defaults
my %codes = map { $_ => 1 } split /,/, $defaults{"def_codes$p"};
$$opts{"keep$p"}{$cc} = \%codes;
}
foreach $co (@co) {
if ($sign eq '-') {
delete $$opts{"keep$p"}{$cc}{$co};
} else {
$$opts{"keep$p"}{$cc}{$co} = 1;
}
}
}
} elsif ($opt eq 'l') {
$arg = lc $arg;
my @langs = split ',', $arg;
if (not @langs) {
undef @languages;
$noLang = 1;
} elsif ($langs[0] =~ s/^-//) {
@languages = grep !/^$langs[0]$/, @languages foreach @langs;
} else {
@languages = @langs;
}
} elsif ($opt eq 'o') {
$outDir = $arg;
} elsif ($opt eq 'ver') {
$dbVer = $arg;
$dbVer =~ /^1\.0[23]$/ or die "Unsupported version number $dbVer\n";
} elsif ($opt eq 'v') {
$verbose = 1;
} elsif ($opt eq 'h') {
my $defcp = $defaults{def_codesp};
$defcp =~ s/(PPLG,)/\n $1/;
my $defLang = join ',', @languages;
$defLang =~ s/(ja,)/\n $1/;
print <<"END";
Description: Build ExifTool Geolocation database.
Syntax: build_geolocation [OPTIONS] [DBFILE] ...
Options:
DBFILE - Input database file name or directory. Multiple input database
files may be specified. The -p, -c and -cp options apply to
the database that comes after them on the command line. The
other input files are assumed to be in the same directory as
the first database file. Default is "$dbFile".
-p POP - Minimum population for cities to include. POP may be a number
or be of the form "CC[,C2...]=###" to set different limits for
specific countries/regions, where CC and C2 are country codes
with optional region name or code appended after a period (eg.
"CA.Ontario,US=500" sets the minimum population to 500 for
cities on Ontario Canada or the U.S.). If a region is
specified, either the full name or the geonames admin1 code may
be used, and case and spaces are not significant. May be
multiple -p options for each input DBFILE. Default is "$defaults{minpop}".
-c CODE - Feature codes to always include, regardless of population. CODE
is a comma-separated list of feature codes, with an optional
leading comma-separated list of country/region codes followed
by an equals sign to apply only to specific countries. The
feature-code list may begin with a dash to remove entries from
the default list, or a plus sign to add entries. May be
multiple -c options for each intput DBFILE. Country/region and
feature names are case insensitive. Default is "$defaults{def_codes}".
-cp CODE - Additional features to include if above minimum population.
Default is "$defcp".
-l LANG - Alternate languages to read from $altNamesFile if
available. These are used to generate $outAltNames an the
$geoLang files. LANG is a comma-separated list of language
codes, starting with a dash to remove items from the default
list. May be set to an empty string to disable generation
of alternate language files even if $altNamesFile
exists. The same set of languages applies to all input
database files. Default is "$defLang".
-o OUTDIR - Output directory name. Default is the same directory as the
first input database file. A directory named $outDirName
containing the output files will be created in this directory.
-ver VER - Version for output geolocation database (default is $dbVer).
-v - Verbose messages.
-h - Show this help.
Input files (download from https://download.geonames.org/export/dump/):
$dbFile - default database file (smaller files with names
like "cities###.txt" may be specified instead)
$countryFile - mandatory country names file
$regionFile - mandatory region names file
$admin2File - mandatory subregion names file
$featureFile - optional feature codes file(s)
$altNamesFile - optional alternate names file (must exist to
to generate $outAltNames and $geoLang files)
Output files:
$outDirName - default output directory name
$outFile - ExifTool database file
$outAltNames - alternate names file
$geoLang - directory for alternate language files
Author:
Copyright 2024, Phil Harvey
This is free software; you can redistribute it and/or modify it under the
same terms as Perl itself.
END
exit 0;
} else {
die "Unknown option '-$opt'\n";
}
}
if (@dbfiles) {
# apply any remaining options to last database file
$dbfiles[-1]{$_} = $$opts{$_} foreach keys %$opts;
} else {
# use default database file if none specified
push @dbfiles, { %defaults, %$opts };
unless (-e $dbfiles[0]{file}) {
# also look in script directory
if ($0 =~ m{(.*)/} and -e "$1/$dbfiles[0]{file}") {
$dbfiles[0]{file} = "$1/$dbfiles[0]{file}";
} else {
die qq(Database "$dbfiles[0]{file}" not found. Use -h option for help.\n);
}
}
}
# determine our working directory
my $dbdir = $dbfiles[0]{file};
$dbdir = '.' unless $dbdir =~ s(/[^/]*$)();
# add default feature code lookups if necessary
foreach $dbfile (@dbfiles) {
my $p;
foreach $p ('', 'p') {
next if $$dbfile{"keep$p"}{'??'};
my %codes = map { $_ => 1 } split /,/, $defaults{"def_codes$p"};
$$dbfile{"keep$p"}{'??'} = \%codes;
}
}
# pre-read region file if necessary
if (%needRgn) {
open REGION, '<', "$dbdir/$regionFile" or die "Error opening $dbdir/$regionFile\n";
while (<REGION>) {
my @items = split /\t/;
my $rgn = $items[0];
my ($cc) = split /\./, $rgn;
next unless $needRgn{$cc};
unless ($needRgn{$rgn}) { # allow region code to be used
$rgn = $cc . '.' . uc$items[1]; # also support full region name
unless ($needRgn{$rgn}) {
$rgn =~ tr/ //d;
next unless $needRgn{$rgn}; # also allow no spaces
}
}
$needRgn{$rgn} = [$items[0], "$cc.$items[1]"];
}
close REGION;
foreach (sort keys %needRgn) {
next if length == 2;
die "No matching region for $_\n" unless ref $needRgn{$_};
}
}
if ($verbose) {
my $langs = join ',', @languages;
$langs or $langs = '<none>';
print "Languages to read from input database(s):\n $langs\n";
foreach $dbfile (@dbfiles) {
print "Parameters for reading $$dbfile{file}:\n";
print " Minimum populations (??=any country):\n";
print " ??=$$dbfile{minpop}\n";
foreach (reverse sort keys %{$$dbfile{cc_minpop}}) {
my $cc = ref $needRgn{$_} ? $needRgn{$_}[1] : $_;
print " $cc=$$dbfile{cc_minpop}{$_}\n";
}
print " Features to keep regardless of population:\n";
foreach (reverse sort keys %{$$dbfile{keep}}) {
my $cc = ref $needRgn{$_} ? $needRgn{$_}[1] : $_;
print " $cc=",join(',', sort keys %{$$dbfile{keep}{$_}}), "\n";
}
print " Features to keep for population >= minimum:\n";
foreach (reverse sort keys %{$$dbfile{keepp}}) {
my $cc = ref $needRgn{$_} ? $needRgn{$_}[1] : $_;
print " $_=",join(',', sort keys %{$$dbfile{keepp}{$_}}), "\n";
}
}
}
# translate option region arguments to region codes
foreach $dbfile (@dbfiles) {
my ($type, $cc);
foreach $type (qw(cc_minpop keep keepp)) {
my @cc = keys %{$$dbfile{$type}};
foreach $cc (@cc) {
next unless ref $needRgn{$cc};
my $tmp = $$dbfile{$type}{$cc};
delete $$dbfile{$type}{$cc};
$$dbfile{$type}{$needRgn{$cc}[0]} = $tmp;
}
}
}
$outDir = "$dbdir/$outDirName" unless defined $outDir;
-d $outDir or mkdir $outDir, 0777 or die "Error creating output directory '$outDir'\n";
-e "$dbdir/$_" or die "Missing input file $dbdir/$_\n" foreach $countryFile, $regionFile, $admin2File;
# order of country codes, region names and subregions in database
my (%orderCC, %orderRgn, %orderSub);
# languages to read from geonames database (converted to lower case)
my %languages = map { $_ => 1 } @languages;
# language codes supported by ExifTool
my @supportedLangs = qw(cs de en-ca en-gb es fi fr it ja ko nl pl ru sk sv tr zh-cn zh-tw);
# supported country-specific languages
my %ccLang = ( TW => 'zh', CN => 'zh', CA => 'en', GB => 'en' );
my (%lang, %featureLang, %haveCountry, %cityFlags, %rgnFlags, %subFlags, %ccFlags, %flags);
my (%haveRegion, %haveSubRgn, $filesize, $percent);
sub GetFileSize($)
{
my $file = shift;
seek $file, 0, 2 or die "Seek error\n";
my $size = tell $file;
seek $file, 0, 0 or die "Seek error\n";
return $size;
}
# pre-scan database to determine which countries, regions subregions and
# feature codes we will be using
foreach $dbfile (@dbfiles) {
my $database = $$dbfile{file};
my $upgraded;
print "Reading $database... 0%";
flush STDOUT;
# pre-read the files to initialize necessary variables
open INFILE, '<', $database or die "Error opening $database\n";
$filesize = GetFileSize(\*INFILE);
open OUTFILE, '>', "$outDir/$outFile" or die "Error creating $outFile in $outDir\n";
binmode(OUTFILE);
$$dbfile{kept} = [ ];
$percent = -1;
while (<INFILE>) {
my $p = int(100 * tell(INFILE) / $filesize + 0.5);
if ($percent != $p) {
printf("\b\b\b\b%3d%%", $percent = $p);
flush STDOUT;
}
my @items = split /\t/;
my ($dbnum, $code, $cc, $rgn, $sub, $pop) = @items[0,7,8,10,11,14];
next unless @items > 17 and $cc =~ /^[A-Z]{2}$/;
my ($minpop, $keep);
if ($needRgn{$cc} and defined $$dbfile{cc_minpop}{"$cc$rgn"}) {
$minpop = $$dbfile{cc_minpop}{"$cc$rgn"};
} elsif (defined $$dbfile{cc_minpop}{$cc}) {
$minpop = $$dbfile{cc_minpop}{$cc};
} else {
$minpop = $$dbfile{minpop};
}
# keep regardless of population
if ($needRgn{$cc} and $$dbfile{keep}{"$cc$rgn"}) {
$keep = $$dbfile{keep}{"$cc$rgn"}{$code};
} elsif ($$dbfile{keep}{$cc}) {
$keep = $$dbfile{keep}{$cc}{$code};
} else {
$keep = $$dbfile{keep}{'??'}{$code};
}
if ($pop < $minpop) {
next unless $keep;
} elsif ($needRgn{$cc} and $$dbfile{keepp}{"$cc$rgn"}) {
next unless $$dbfile{keepp}{"$cc$rgn"}{$code};
} elsif ($$dbfile{keepp}{$cc}) {
next unless $$dbfile{keepp}{$cc}{$code};
} else {
next unless $$dbfile{keepp}{'??'}{$code};
}
push @{$$dbfile{kept}}, $_;
$lang{$dbnum} = { alt => [ ] };
$haveCountry{$cc} = 1;
$haveRegion{"$cc$rgn"} = 1;
$haveSubRgn{"$cc$rgn.$sub"} = 1;
# add new feature codes (up to maximum index of 0x3f)
unless ($featureCodes{$code} or @featureCodes > 0x3f) {
if ($dbVer eq '1.02') {
next if $code =~ /^(PPLH|PPLQ|PPLW)$/; # (stored as "Other" in v1.02)
$dbVer = '1.03';
$upgraded = 1; # print upgrade warning
@featureCodes = @fc103;
my $i = 0;
%featureCodes = map { $_ => $i++ } @featureCodes;
next if $featureCodes{$code};
}
push @featureCodes, $code;
$featureCodes{$code} = $#featureCodes;
}
}
close INFILE;
print "\b\b\b\bDone.\n";
warn "Some feature codes not supported by version 1.02, writing as 1.03 instead.\n" if $upgraded;
}
# read feature names
if (open INFILE, '<', "$dbdir/$featureFile") {
print "Reading $dbdir/$featureFile\n";
while (<INFILE>) {
my @items = split /\t/;
$items[0] =~ s/^.\.//; # remove feature group and "." separator
next unless $featureCodes{$items[0]};
my $name = ucfirst $items[1];
$name =~ s/ ([a-z])/ \U$1/g;
$name =~ s/(.)\b(Of|Or|A|An|On|In|The|By|For|And)\b/$1\L$2/g;
$featureNames{$items[0]} = $name;
}
close INFILE;
} else {
print "Not found: $dbdir/$featureFile\n";
print "--> Not storing feature type names\n";
}
# read country names
$i = 0;
open INFILE, '<', "$dbdir/$countryFile" or die "Error opening $dbdir/$countryFile\n";
print "Reading $dbdir/$countryFile\n";
while (<INFILE>) {
next if /^#/;
my @items = split /\t/;
next unless $haveCountry{$items[0]};
$lang{$items[16]} = { alt => [ ] }; # reference lookup by db number
$orderCC{$items[0]} = $i++; # (entry 0 is the first country)
}
close INFILE;
printf " %.6d countries (0x%.4x)\n",$i,$i if $verbose;
die "Too many countries!\n" if $i > 0x100; # (no default 0 entry)
# read region (admin1) names
$i = 0;
open REGION, '<', "$dbdir/$regionFile" or die "Error opening $dbdir/$regionFile\n";
print "Reading $dbdir/$regionFile\n";
while (<REGION>) {
chomp;
my @items = split /\t/;
$items[0] =~ tr/.//d; # (remove "." separator)
next unless $haveRegion{$items[0]};
$lang{$items[3]} = { alt => [ ] }; # reference lookup by db number
$orderRgn{$items[0]} = ++$i; # (entry 0 is default "" region)
}
close REGION;
printf " %.6d regions (0x%.4x)\n",$i,$i if $verbose;
die "Too many regions!\n" if $i > 0x0fff; # (account for default 0 entry)
# read subregion (admin2) names
$i = 0;
open ADMIN2, '<', "$dbdir/$admin2File" or die "Error opening $dbdir/$admin2File\n";
print "Reading $dbdir/$admin2File\n";
while (<ADMIN2>) {
chomp;
my @items = split /\t/;
$items[0] =~ s/\.//; # (remove first "." separator)
next unless $haveSubRgn{$items[0]};
$lang{$items[3]} = { alt => [ ] }; # reference lookup by db number
$orderSub{$items[0]} = ++$i; # (entry 0 is default "" subregion)
}
close ADMIN2;
printf " %.6d subregions (0x%.4x)\n",$i,$i if $verbose;
if ($i > ($dbVer eq '1.02' ? 0x7fff : 0xffff)) {
die "Too many subregions!\n" if $i > 0xffff;
$dbVer = '1.03';
warn "Too many subregions for version 1.02, writing as 1.03 instead.\n";
}
# read alternate names file if available
if (not $noLang and open INFILE, '<', "$dbdir/$altNamesFile") {
$filesize = GetFileSize(\*INFILE);
print "Reading $dbdir/$altNamesFile... 0%";
my %bestPri;
while (<INFILE>) {
my $p = int(100 * tell(INFILE) / $filesize + 0.5);
if ($percent != $p) {
printf("\b\b\b\b%3d%%", $percent = $p);
flush STDOUT;
}
# items: 0=altID,1=geoID,2=lang,3=alt name,4=preferred,5=short,6=colloquial,7=historic
my @items = split /\t/;
my $lkup = $lang{$items[1]} or next;
my $altList = $lang{$items[1]}{alt};
my $lng = lc $items[2];
next if $lng and not $languages{$lng};
push @$altList, $items[3] unless grep /^\Q$items[3]\E$/i, @$altList;
next unless $lng;
my $flags = 0;
# keep only the best translation for this name for each language
$items[$_] and $flags |= (1<<($_-4)) foreach 4,5,6,7;
$flags{$items[1]} = ( $flags{$items[1]} || 0 ) | $flags;
next if $items[6] or $items[7]; # ignore colloquial and historic names
my $pri = $items[5] ? 0 : ($items[4] ? 1 : 2); # priority for best type of name
my $langPri = $bestPri{$lng};
$langPri or $langPri = $bestPri{$lng} = { };
next if $$langPri{$items[1]} and $$langPri{$items[1]} > $pri;
$$langPri{$items[1]} = $pri;
# save language-specific name for this feature, removing commas
($$lkup{$lng} = $items[3]) =~ tr/,//d;
}
print "\b\b\b\bDone.\n";
close INFILE;
# read alternate feature names
if (%featureNames) {
my $lng;
foreach $lng (@languages) {
next if $lng eq 'en' or not $languages{$lng};
my $file = "$dbdir/$featureFile";
$file =~ s/_en\./_$lng./ or next;
next unless open INFILE, '<', $file;
print "Reading $file\n";
while (<INFILE>) {
my @items = split /\t/;
$items[0] =~ s/^.\.//; # remove feature group and "." separator
next unless $featureNames{$items[0]};
utf8::decode($items[1]);
my $name = ucfirst $items[1];
$name =~ s/ (.)/ \U$1/g;
# change $name back to byte string
if ($] >= 5.006 and (eval { require Encode; Encode::is_utf8($name) } or $@)) {
$name = $@ ? pack('C*',unpack($] < 5.010000 ? 'U0C*' : 'C0C*',$name)) : Encode::encode('utf8',$name);
}
next if $name eq $featureNames{$items[0]};
$featureLang{$lng}{$items[0]} = $name;
}
close INFILE;
}
}
} else {
print "Not found: $dbdir/$altNamesFile\n--> " unless $noLang;
print "Not writing alternate languages\n";
$noLang = 1;
}
my (%coords, %langLookups);
foreach $dbfile (@dbfiles) {
my $database = $$dbfile{file};
print "Processing database entries... 0%";
my $i = 0;
my $num = scalar @{$$dbfile{kept}};
foreach (@{$$dbfile{kept}}) {
my @items = split /\t/;
my ($lat, $lon) = @items[4,5];
$lat = int(($lat + 90) / 180 * 0x100000 + 0.5) & 0xfffff;
$lon = int(($lon + 180) / 360 * 0x100000 + 0.5) & 0xfffff;
my $coord = pack('nCn',$lat>>4,(($lat&0x0f)<<4)|($lon&0x0f),$lon>>4);;
# take the city with the highest population if there are
# multiple cities with the same reduced coordinates
if ($coords{$coord} and $coords{$coord}[6] >= $items[14]) {
next;
}
# coords=(0.lat,1.lon,2.city,3.cc,4.rgn,5.admin2,6.population,7.timezone,8.feature code,9.alt names)
my ($altList, $alt);
die "Internal error\n" unless $lang{$items[0]} and $altList = $lang{$items[0]}{alt};
if (@$altList) {
tr/,//d foreach @$altList;
$alt = join ',', sort @$altList;
} else {
$alt = '';
}
$coords{$coord} = [ @items[4,5,1,8,10,11,14,17,7] ];
$coords{$coord}[9] = $alt;
my $lkup = $lang{$items[0]}; # 0=geoID
my $key = $items[1]; # 1=city
$lkup or die "Missing language for geoID $items[0]\n";
$cityFlags{$flags{$items[0]}} = ($cityFlags{$flags{$items[0]}} || 0) + 1 if defined $flags{$items[0]};
my $ccLang = $ccLang{$items[8]}; # get country-specific language
if ($ccLang and $$lkup{$ccLang}) {
my $lc = $ccLang . '-' . lc($items[8]); # eg. zh-cn
# add country suffix for this language in this country
$$lkup{$lc} = $$lkup{$ccLang} unless $$lkup{$lc};
}
foreach (@supportedLangs) {
next unless $$lkup{$_} and $$lkup{$_} ne $key; # (ignore if same)
$langLookups{$_}{$key} or $langLookups{$_}{$key} = [ ];
push @{$langLookups{$_}{$key}}, "$items[8]$items[10].$items[11],$$lkup{$_}";
}
my $p = int(100 * ++$i / $num + 0.5);
next if $percent == $p;
printf("\b\b\b\b%3d%%", $percent = $p);
flush STDOUT;
}
print "\b\b\b\bDone.\n";
}
# write city database
my $str = $noLang ? '' : " and $outAltNames";
my @t = localtime;
my $date = sprintf('%.4d-%.2d-%.2d', $t[5]+1900, $t[4]+1, $t[3]);
print "Writing $outDir/$outFile (version $dbVer)$str...\n";
print OUTFILE "Geolocation$dbVer\t",scalar(keys %coords),"\n";
print OUTFILE "# $date Cities with population $dbfiles[0]{minpop} or greater from geonames.org with a Creative Commons license\n";
if ($noLang) {
unlink "$outDir/$outAltNames";
} else {
open ALTOUT, ">$outDir/$outAltNames";
binmode ALTOUT;
}
my (%tz, @tz, %fcodes);
my $tzNum = 0;
foreach (sort { $a cmp $b } keys %coords) {
my $items = $coords{$_};
# @$items=(0.lat,1.lon,2.city,3.cc,4.rgn,5.admin2,6.population,7.timezone,8.feature code,9.alt names)
my $iCC = $orderCC{$$items[3]};
defined $iCC or warn("Unknown country code $$items[3]\n"), next;
my $iRgn = $orderRgn{"$$items[3]$$items[4]"} || 0;
my $iSub = $orderSub{"$$items[3]$$items[4].$$items[5]"} || 0;
my $tn = $tz{$$items[7]};
unless ($tn) {
push @tz, $$items[7];
$tn = $tz{$$items[7]} = $tzNum++;
}
# convert population to our binary format
# Note: format in ActivePerl is "3.1e+004", but "3.1+04" in other Perls,
# but other Perls will round 34500 to "3.4e+04", so add 1 to get "3.5e+04"
$$items[6] += 1 if $$items[6] > 100 and not $$items[6] % 10;
my $pop = sprintf('%.1e',$$items[6]);
# pack CC, population and region index into a 32-bit integer
my $code = ($iCC << 24) | (substr($pop,-1,1)<<20) | (substr($pop,0,1)<<16) | (substr($pop,2,1)<<12) | $iRgn;
$fcodes{$$items[8]} = ($fcodes{$$items[8]} || 0) + 1;
my $fc = $featureCodes{$$items[8]} || 0;
# store high bit of timezone index
if ($tn > 255) {
if ($dbVer eq '1.02') {
$iSub |= 0x8000;
$tn -= 256;
} else {
$fc |= 0x80;
$tn -= 256;
}
}
my $pt = pack('NnCC', $code, $iSub, $tn, $fc);
$$items[2] =~ tr/,//d; # remove any commas
print OUTFILE "$_$pt$$items[2]\n";
next if $noLang;
$$items[9] =~ tr/,/\n/;
print ALTOUT $$items[9],"\0";
}
my $altSize = 0;
unless ($noLang) {
$altSize = tell ALTOUT;
close ALTOUT;
}
print OUTFILE "\0\0\0\0\x01\n"; # section terminator
die "Too many time zones!\n" if $tzNum > 0x01ff;
if ($verbose) {
$i = 0;
print "Features kept:\n";
foreach (sort keys %fcodes) {
my $fc = $featureCodes{$_} || 0;
printf "%6d (%2d) %s\n", $fcodes{$_}, $fc, $_;
}
}
# write country codes
open COUNTRY, '<', "$dbdir/$countryFile" or die "Error opening $dbdir/$countryFile\n";
my %cc;
while (<COUNTRY>) {
next if /^#/;
my @items = split /\t/;
next unless $haveCountry{$items[0]};
$cc{$items[4]} = $items[0];
die "country code error\n" if length $items[0] != 2;
$items[4] =~ tr/,//d; # remove any commas
print OUTFILE "$items[0]$items[4]\n";
if ($lang{$items[16]}) { # (16=geoID)
my $lkup = $lang{$items[16]};
my $key = $items[4]; # country name
$ccFlags{$flags{$items[16]}} = ($ccFlags{$flags{$items[16]}} || 0) + 1 if defined $flags{$items[16]};
foreach (@supportedLangs) {
next unless $$lkup{$_} and $$lkup{$_} ne $key; # (ignore if same)
$langLookups{$_}{$key} or $langLookups{$_}{$key} = [ ];
push @{$langLookups{$_}{$key}}, ",$$lkup{$_}";
}
}
}
close COUNTRY;
print OUTFILE "\0\0\0\0\x02\n"; # section terminator
# write regions
print OUTFILE "\n"; # (null region)
open REGION, '<', "$dbdir/$regionFile" or die "Error opening $dbdir/$regionFile\n";
my %region;
while (<REGION>) {
chomp;
my @items = split /\t/;
#items: 0=region code, 1=name, 2=ascii, 3=geoID
$items[0] =~ tr/.//d; # (remove "." separator)
next unless $haveRegion{$items[0]};
$region{$items[0]} = $items[1];
$items[1] =~ tr/,//d; # remove any commas
print OUTFILE "$items[1]\n";
if ($lang{$items[3]}) { # (3=geoID)
my $lkup = $lang{$items[3]};
my $key = $items[1]; # region name
my $cc = substr($items[0], 0, 2);
$rgnFlags{$flags{$items[3]}} = ($rgnFlags{$flags{$items[3]}} || 0) + 1 if defined $flags{$items[3]};
foreach (@supportedLangs) {
next unless $$lkup{$_} and $$lkup{$_} ne $key; # (ignore if same)
$langLookups{$_}{$key} or $langLookups{$_}{$key} = [ ];
push @{$langLookups{$_}{$key}}, "$cc,$$lkup{$_}";
}
}
}
close REGION;
print OUTFILE "\0\0\0\0\x03\n"; # section terminator
# write subregions
print OUTFILE "\n"; # (null admin2)
open ADMIN2, '<', "$dbdir/$admin2File" or die "Error opening $dbdir/$admin2File\n";
my %subregion;
while (<ADMIN2>) {
chomp;
my @items = split /\t/;
#items: 0=admin2 code, 1=name, 2=ascii, 3=geoID
$items[0] =~ s/\.//; # (remove first "." separator)
next unless $haveSubRgn{$items[0]};
$subregion{$items[0]} = $items[1];
$items[1] =~ tr/,//d; # remove any commas
print OUTFILE "$items[1]\n";
if ($lang{$items[3]}) { # (3=geoID)
my $lkup = $lang{$items[3]};
my $key = $items[1]; # region name
$subFlags{$flags{$items[3]}} = ($subFlags{$flags{$items[3]}} || 0) + 1 if defined $flags{$items[3]};
my $rc = $items[0];
$rc =~ s/\..*//; # (remove subregion code)
foreach (@supportedLangs) {
next unless $$lkup{$_} and $$lkup{$_} ne $key; # (ignore if same)
$langLookups{$_}{$key} or $langLookups{$_}{$key} = [ ];
push @{$langLookups{$_}{$key}}, "$rc,$$lkup{$_}";
}
}
}
close ADMIN2;
print OUTFILE "\0\0\0\0\x04\n"; # section terminator
# write timezones
print OUTFILE $_,"\n" foreach @tz;
print OUTFILE "\0\0\0\0\x05\n"; # section terminator
# write feature codes and optional names
foreach (@featureCodes) {
print OUTFILE $_;
print OUTFILE ' ', $featureNames{$_} if $featureNames{$_};
print OUTFILE "\n";
}
# write terminator and close Geolocation.dat
print OUTFILE "\0\0\0\0\0\n"; # file terminator
my $outSize = tell OUTFILE;
close OUTFILE;
# write language lookups
my $langSize = 0;
my $langDir = "$outDir/$geoLang";
# delete existing languages
unlink <"$langDir/*.pm">;
if ($noLang) {
rmdir $langDir;
} else {
my $n = scalar(keys %langLookups);
print "Writing $n language files to $outDir/$geoLang...\n";
mkdir $langDir, 0777;
my ($lng, $key, $str, $nm, $alt);
foreach $lng (sort keys %langLookups) { # ($lng = language code)
my $myLng = $lng;
$myLng =~ tr/-/_/;
my $lkup = $langLookups{$lng};
my $file = "$myLng.pm";
open OUT, ">$langDir/$file" or die "Error creating $file\n";
binmode OUT;
print OUT "# Geolocation language translations for $myLng\n";
print OUT "#\n# Based on Creative Commons database from geonames.org\n\n";
print OUT "%Image::ExifTool::GeoLang::${myLng}::Translate = (\n";
foreach $key (sort keys %$lkup) {
($nm = $key) =~ s/'/\\'/g;
# count entries and use the most common one, then add others with country+region ID's
# (entries in @$li are of the form: City:"CCRc,Sc,Alt", Sub:"CCRc,Alt", Rgn:"CC,Alt", Country:",Alt")
# (Rc = region code, Sc = subregion code)
my $li = $$lkup{$key};
my %count;
# sort by popularity of alternate name
foreach (@$li) {
my $val = $_;
$val =~ s/.*?,//;
$count{$val} = ($count{$val} || 0) + 1;
}
my @order = sort { $count{$b} <=> $count{$a} or length($a) <=> length($b) or $a cmp $b } keys %count;
my $first = 1;
foreach $alt (@order) {
foreach (sort @$li) {
my ($code,$val) = split ',', $_, 2;
# ($code will be empty for a country name, and 2 characters for a region name,
# and contain a "." for a city name)
next unless $val eq $alt; # don't add if alternate name is the same
die "Backslash in translated name" if $val =~ /\\/;
$val =~ s/'/\\'/g; # escape single quotes
if ($first and $val !~ /\(/) { # (don't add general translation if name is qualified with brackets)
print OUT "\t'$nm' => '$val',\n";
undef $first;
last;
}
# format for keys in language table
# City: "CCRgn,Subregion,City", "CCRgn,,City", "CC,City", ",City"
# Subregion: "CCRgn,Subregion,", "CCRgn,,"
# Region: "CCRgn,"
# Country: "CC,"
# Any: "Name"
if (not $code) {
# this is a country
$code = $cc{$key};
printf OUT "\t'$code,' => '$val',\n";
} elsif ($code !~ /\./) {
# this is a region or subregion
print OUT "\t'$code$nm,' => '$val',\n";
} else {
# this is a city
# use region/subregions name instead of code
my $sub = $subregion{$code} || '';
$sub =~ s/'/\\'/g;
$code =~ s/\..*//;
$code = substr($code,0,2) . $region{$code} if $region{$code};
$code =~ s/'/\\'/g;
print OUT "\t'$code,$sub,$nm' => '$val',\n";
}
}
}
}
if ($featureLang{$lng}) {
print OUT "\n\t# feature types\n";
foreach (sort keys %{$featureLang{$lng}}) {
my $ftype = $featureLang{$lng}{$_};
$ftype =~ s/'/\\'/g;
print OUT "\t$_ => '$ftype',\n"
}
}
print OUT ");\n\n1; #end\n";
$langSize += tell OUT;
close OUT;
}
if ($verbose) {
my @type = ( City => \%cityFlags, Region => \%rgnFlags, Subregion => \%subFlags, Country => \%ccFlags );
for (;;) {
my $type = shift @type or last;
my $flags = shift @type;
print "$type flags:\n";
printf(" 0x%.2x - %d\n", 0, $$flags{0} || 0);
my @label = qw(preferred short colloquial historic);
foreach my $bit (0..5) {
my $n = 0;
$_ & (1<<$bit) and ++$n foreach keys %$flags;
printf(" 0x%.2x - %d (%s)\n", (1<<$bit), $n, shift(@label)) if $n;
}
}
}
}
print "Output file size(s):\n";
printf "%8.2f MB %s (%d entries)\n", $outSize / 1e6, $outFile, scalar(keys %coords);
printf "%8.2f MB %s\n", $altSize / 1e6, $outAltNames if $altSize;
printf "%8.2f MB %s/*.pm\n", $langSize / 1e6, $geoLang if $langSize;
printf "%8.2f MB Total\n", ($outSize + $altSize + $langSize) / 1e6 if $altSize or $langSize;
# end

View File

@ -41,7 +41,8 @@
# type tags to ACDSee regions.
# MPRegion2ACDSeeRegion : Converts a Microsoft RegionInfoMP
# IPTCRegion2ACDSeeRegion : Converts an IPTC ImageRegion
# MWGRegion2ACDSeeRegion : Converts a MWG RegionInfo
# MWGRegion2ACDSeeRegion : Converts from a MWG RegionInfo
# ACDSeeRegion2MWGRegion : Converts to a MWG RegionInfo
#
# Usage: To set individual tags
# exiftool -config acdsee.config -ACDSEETAG=VALUE FILE ...
@ -52,6 +53,8 @@
# exiftool -config acdsee.config "-RegionInfoACDSee<IPTCRegion2ACDSeeRegion" File ...
# To convert MWG Regions to ACDSee regions
# exiftool -config acdsee.config "-RegionInfoACDSee<MWGRegion2ACDSeeRegion" File ...
# To convert ACDSee Regions to MWG regions
# exiftool -config acdsee.config "-RegionInfo<ACDSeeRegion2MWGRegion" File ...
#
# Requires: ExifTool version 10.28 or later
#
@ -64,45 +67,12 @@
# "RegionInfoACDSeeAppliedToDimensions*" -> "ACDSeeRegionAppliedToDimensions*"
# "RegionInfoACDSeeRegionList* -> "ACDSeeRegion*"
# 2022/10/03 - PH Set group name properly to XMP-acdsee-rs
# 2024/03/19 - PH Moved XMP-acdsee-rs tags into the standard distribution,
# and added ACDSeeRegion2MWGRegion conversion
#------------------------------------------------------------------------------
use Data::Dumper;
my %sACDSeeDimensions = (
STRUCT_NAME => 'ACDSee Dimensions',
NAMESPACE => {'acdsee-stDim' => 'http://ns.acdsee.com/sType/Dimensions#'},
'w' => { Writable => 'real' },
'h' => { Writable => 'real' },
'unit' => { },
);
my %sACDSeeArea = (
STRUCT_NAME => 'ACDSee Area',
NAMESPACE => { 'acdsee-stArea' => 'http://ns.acdsee.com/sType/Area#' },
'x' => { Writable => 'real' },
'y' => { Writable => 'real' },
w => { Writable => 'real' },
h => { Writable => 'real' },
);
my %sACDSeeRegionStruct = (
STRUCT_NAME => 'ACDSee Regions',
NAMESPACE => { 'acdsee-rs' => 'http://ns.acdsee.com/regions/' },
ALGArea => { Struct => \%sACDSeeArea },
DLYArea => { Struct => \%sACDSeeArea },
Name => { },
NameAssignType => { },
Type => { },
);
%Image::ExifTool::UserDefined = (
# new XMP namespaces for ACDSee regions
'Image::ExifTool::XMP::Main' => {
'acdsee-rs' => { # <-- must be the same as the NAMESPACE prefix
SubDirectory => {
TagTable => 'Image::ExifTool::UserDefined::ACDSeeRegions'
},
},
},
'Image::ExifTool::Composite' => {
# create an ACDSee RegionInfo structure from a Microsoft RegionInfoMP structure
MPRegion2ACDSeeRegion => {
@ -176,7 +146,7 @@ my %sACDSeeRegionStruct = (
},
},
# create an MWG RegionInfo structure from an IPTC ImageRegion list
# create an ACDSee RegionInfo structure from an MWG RegionInfo structure
MWGRegion2ACDSeeRegion => {
Require => {
0 => 'RegionInfo',
@ -207,29 +177,39 @@ my %sACDSeeRegionStruct = (
}
},
},
####
},
);
%Image::ExifTool::UserDefined::ACDSeeRegions = (
GROUPS => { 0 => 'XMP', 1 => 'XMP-acdsee-rs', 2 => 'Image' },
NAMESPACE => { 'acdsee-rs' => 'http://ns.acdsee.com/regions/' },
WRITABLE => 'string', # (default to string-type tags)
Regions => {
Name => 'RegionInfoACDSee',
FlatName => 'ACDSee',
# the "Struct" entry defines the structure fields
Struct => {
# optional structure name (used for warning messages only)
STRUCT_NAME => 'ACDSee RegionInfo',
RegionList => {
FlatName => 'Region',
Struct => \%sACDSeeRegionStruct,
List => 'Bag',
# create an MWG RegionInfo structure from an ACDSee RegionInfo
ACDSeeRegion2MWGRegion => {
Require => {
0 => 'RegionInfoACDSee',
1 => 'ImageWidth',
2 => 'ImageHeight',
},
ValueConv => q{
my ($rgn, @newRgns);
my %newRgn;
foreach $rgn (@{$val[0]{RegionList}}) {
next unless $$rgn{Area} or defined $$rgn{Name};
my %newRgn;
if ($$rgn{DLYArea}) {
$newRgn{Area} = {
'X' => $$rgn{DLYArea}{'X'},
'Y' => $$rgn{DLYArea}{'Y'},
'W' => $$rgn{DLYArea}{'W'},
'H' => $$rgn{DLYArea}{'H'},
};
};
$newRgn{Name} = $$rgn{Name} if defined $$rgn{Name};
$newRgn{'Type'} = $$rgn{'Type'} if defined $$rgn{'Type'};
push @newRgns, \%newRgn;
}
return {
'AppliedToDimensions' => $val[0]{'AppliedToDimensions'},
RegionList => \@newRgns,
}
},
AppliedToDimensions => {
FlatName => 'RegionAppliedToDimensions',Struct => \%sACDSeeDimensions },
},
####
},
);

View File

@ -6,7 +6,8 @@
# Notes: This example file shows how to define your own shortcuts and
# add new EXIF, IPTC, XMP, PNG, MIE and Composite tags, as well
# as how to specify preferred lenses for the LensID tag, and
# define new file types and default ExifTool option values.
# define new file types and default ExifTool API options and
# command-line arguments.
#
# Note that unknown tags may be extracted even if they aren't
# defined, but tags must be defined to be written. Also note
@ -81,7 +82,8 @@
},
# add more user-defined EXIF tags here...
},
# the Geotag feature writes these additional GPS tags if available:
# the Geotag feature writes GPSPitch and GPSRoll tags, but these
# aren't standard EXIF so we define custom tags here:
'Image::ExifTool::GPS::Main' => {
# Example 2. GPS:GPSPitch
0xd000 => {
@ -292,6 +294,11 @@
NewXMPxxxStructX => { Name => 'SomeOtherName', Flat => 1 },
);
# the namespace may be registered so ExifTool generates the expected family 1
# group names when reading if the UserDefined namespace uses a different prefix
require Image::ExifTool::XMP;
Image::ExifTool::XMP::RegisterNamespace(\%Image::ExifTool::UserDefined::xxx);
# Adding a new MIE group requires a few extra definitions
use Image::ExifTool::MIE;
%Image::ExifTool::UserDefined::MIETest = (
@ -345,7 +352,7 @@ use Image::ExifTool::MIE;
use Image::ExifTool::QuickTime;
$Image::ExifTool::QuickTime::Keys{PREFERRED} = 3;
# Specify default ExifTool option values
# Specify default ExifTool API options
# (see the Options function documentation for available options)
%Image::ExifTool::UserDefined::Options = (
CoordFormat => '%.6f', # change default GPS coordinate format
@ -354,5 +361,18 @@ $Image::ExifTool::QuickTime::Keys{PREFERRED} = 3;
RequestAll => 3, # request additional tags not normally generated
);
# Specify default exiftool command-line arguments
# - inserted before all other options except -config
# - applies to all -execute'd commands
@Image::ExifTool::UserDefined::Arguments = (
'-i', 'HIDDEN', # ignore hidden files by default (names beginning with ".")
);
# Add user-defined cities to the Geolocation lookup
@Image::ExifTool::UserDefined::Geolocation = (
# (city,region,subregion,country_code,country,timezone,feature_code,population,lat,lon)
['Sinemorets','Burgas','Obshtina Tsarevo','BG','','Europe/Sofia','PPL',400,42.06115,27.97833],
);
#------------------------------------------------------------------------------
1; #end

28
config_files/onone.config Normal file
View File

@ -0,0 +1,28 @@
#------------------------------------------------------------------------------
# File: onone.config
#
# Description: This config file defines On1 XMP tags for writing.
#
# Usage: exiftool -config onone.config -UserFlag=VALUE FILE ...
#
# Requires: ExifTool version 10.28 or later
#
# Revisions: 2024/07/10 - P. Harvey Created
#------------------------------------------------------------------------------
%Image::ExifTool::UserDefined = (
'Image::ExifTool::XMP::Main' => {
onone => {
SubDirectory => { TagTable => 'Image::ExifTool::UserDefined::onone' },
},
},
);
%Image::ExifTool::UserDefined::onone = (
GROUPS => { 0 => 'XMP', 1 => 'XMP-onone', 2 => 'Other' },
NAMESPACE => { 'onone' => 'http://www.ononesoftware.com/vcb/1.0/' },
WRITABLE => 'string',
UserFlag => { },
);
1; #end

View File

@ -8,10 +8,11 @@
#
# Requires: ExifTool version 7.00 or later
#
# References: 1) https://support.pix4d.com/hc/en-us/articles/360016450032-Specifications-of-xmpcamera-tags
# References: 1) https://support.pix4d.com/hc/en-us/articles/360016450032
#
# Revisions: 2017/12/08 - P. Harvey Created
# 2020/04/02 - PH Updated to current specification
# 2025/05/01 - PH Changed some Writable types to match the spec
#------------------------------------------------------------------------------
%Image::ExifTool::UserDefined = (
@ -40,8 +41,8 @@
PerspectiveFocalLength => { Writable => 'real' },
PerspectiveDistortion => { },
IMULinearVelocity => { },
GPSXYAccuracy => { Writable => 'real' },
GPSZAccuracy => { Writable => 'real' },
GPSXYAccuracy => { Writable => 'rational' },
GPSZAccuracy => { Writable => 'rational' },
FlightUUID => { },
CentralWaveLength => { },
BandName => { List => 'Seq' },
@ -77,11 +78,11 @@
Albedo => { List => 'Seq' },
ReflectArea => { List => 'Seq' },
CalibrationPicture => { Writable => 'integer' },
GyroRate => { Writable => 'real' },
IMUPitchAccuracy => { Writable => 'real' },
IMURollAccuracy => { Writable => 'real' },
IMUYawAccuracy => { Writable => 'real' },
NominalCameraDistance => { Writable => 'real' },
GyroRate => { Writable => 'rational' },
IMUPitchAccuracy => { Writable => 'rational' },
IMURollAccuracy => { Writable => 'rational' },
IMUYawAccuracy => { Writable => 'rational' },
NominalCameraDistance => { Writable => 'rational' },
AboveGroundAltitude => { Writable => 'real' },
SunSensorYaw => { Writable => 'real' },
SunSensorPitch => { Writable => 'real' },

6
debian/changelog vendored
View File

@ -1,3 +1,9 @@
libimage-exiftool-perl (13.30-ok1) nile; urgency=medium
Initial release for 13.30
-- tangtingting <tangtingting@kylinos.cn> Fri, 27 Jun 2025 17:08:02 +0800
libimage-exiftool-perl (12.76+dfsg-ok1) nile; urgency=medium
* Sync upstream version.

1432
exiftool

File diff suppressed because it is too large Load Diff

View File

@ -11,6 +11,7 @@
# 2018/01/04 - PH Added IF to be sure position exists
# 2018/01/06 - PH Use DateFmt function instead of -d option
# 2019/10/24 - PH Preserve sub-seconds in GPSDateTime value
# 2024/04/11 - PH Use %f feature in GPSDateTime formatting
#
# Notes: 1) Input file(s) must contain GPSLatitude and GPSLongitude.
# 2) The -ee3 option is to extract the full track from video files.
@ -32,7 +33,7 @@
#[IF] $gpslatitude $gpslongitude
#[BODY]<trkpt lat="$gpslatitude#" lon="$gpslongitude#">
#[BODY] <ele>$gpsaltitude#</ele>
#[BODY] <time>${gpsdatetime#;my ($ss)=/\.\d+/g;DateFmt("%Y-%m-%dT%H:%M:%SZ");s/Z/${ss}Z/ if $ss}</time>
#[BODY] <time>${gpsdatetime#;DateFmt("%Y-%m-%dT%H:%M:%S%fZ")}</time>
#[BODY]</trkpt>
#[TAIL]</trkseg>
#[TAIL]</trk>

View File

@ -12,6 +12,7 @@
# 2018/01/04 - PH Added IF to be sure position exists
# 2018/01/06 - PH Use DateFmt function instead of -d option
# 2019/10/24 - PH Preserve sub-seconds in GPSDateTime value
# 2024/04/11 - PH Use %f feature in GPSDateTime formatting
#
# Notes: 1) Input file(s) must contain GPSLatitude and GPSLongitude.
# 2) The -ee3 option is to extract the full track from video files.
@ -30,7 +31,7 @@
#[IF] $gpslatitude $gpslongitude
#[BODY]<wpt lat="$gpslatitude#" lon="$gpslongitude#">
#[BODY] <ele>$gpsaltitude#</ele>
#[BODY] <time>${gpsdatetime#;my ($ss)=/\.\d+/g;DateFmt("%Y-%m-%dT%H:%M:%SZ");s/Z/${ss}Z/ if $ss}</time>
#[BODY] <time>${gpsdatetime#;DateFmt("%Y-%m-%dT%H:%M:%S%fZ")}</time>
#[BODY] <name>$filename</name>
#[BODY] <link href="$directory/$filename"/>
#[BODY] <sym>Scenic Area</sym>

BIN
html/ET-256.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -8,6 +8,7 @@
<!--
pre { padding: 0; margin: 0px 2px }
ul { margin-top: 0 }
table.top td { vertical-align: top }
-->
</style>
</head>
@ -83,6 +84,7 @@ retrieve any number of them.</p>
<li><a href="#CanWrite">CanWrite</a></li>
<li><a href="#CanCreate">CanCreate</a></li>
<li><a href="#AddUserDefinedTags">AddUserDefinedTags</a></li>
<li><a href="#OrderedKeys">OrderedKeys</a></li>
</ul>
</td></tr></table>
@ -321,13 +323,14 @@ requested.</p>
<p>Values of the returned hash are usually simple scalars, but a scalar
reference is used to indicate binary data and an array reference may be used to
indicate a list. Also, a hash reference may be returned if the
<a href="#Struct">Struct</a> option is used. Lists of values are joined by
commas into a single string only if the PrintConv option is enabled and the
ListJoin option is enabled (which are the defaults). Note that binary values
are not necessarily extracted unless specifically requested, or the Binary
option is enabled and the tag is not specifically excluded. If not extracted the
value is a reference to a string of the form "<code>Binary data #####
bytes</code>".</p>
<a href="#Struct">Struct</a> option is used (see the
<a href="#OrderedKeys">OrderedKeys</a> option to obtain the hash keys). Lists
of values are joined by commas into a single string only if the PrintConv option
is enabled and the ListJoin option is enabled (which are the defaults). Note
that binary values are not necessarily extracted unless specifically requested,
or the Binary option is enabled and the tag is not specifically excluded. If not
extracted the value is a reference to a string of the form
"<code>Binary data ##### bytes</code>".</p>
<p>Here is a simple example to print out the information returned by
<a href="#ImageInfo">ImageInfo</a>:</p>
@ -492,10 +495,16 @@ effect as a value of 0 for options with numerical values.</p>
"ASCII" values without recoding. Set to "UTF8" to conform with the MWG
recommendation.</td>
<td align=center><i>(see <a href="#Charset">Charset</a> option)</i><br>or undef</td><td align=center>undef</td></tr>
<tr id="CharsetFileName"><td>CharsetFileName</td><td>External character set
used when specifying file names. When set in Windows, this triggers use of
Windows Unicode file library routines (requires Win32API::File). May also
be set to an empty string to avoid "encoding not specified" warnings on Windows.</td>
<tr id="CharsetFileName"><td>CharsetFileName</td><td>External character set used
for file names passed to ExifTool functions. Default is undef but "UTF8" is
assumed in Windows if the file name contains special characters and is valid
UTF8. May also be set to an empty string to avoid "encoding must be
specified" warnings on Windows. Note that setting the
<a href="#WindowsWideFile">WindowsWideFile</a> or
<a href="#WindowsLongPath">WindowsLongPath</a> option causes CharsetFileName to
default to 'UTF8' in Windows if not defined, and that
<a href="#WindowsLongPath">WindowsLongPath</a> is set by default in
ExifTool 13.07 and later.</td>
<td align=center><i>(see <a href="#Charset">Charset</a> option)</i><br>or undef</td><td align=center>undef</td></tr>
<tr id="CharsetID3"><td>CharsetID3</td><td>Internal encoding to assume for ID3v1 strings. By
the specification ID3v1 strings should be encoded in ISO 8859-1 (essentially
@ -534,33 +543,43 @@ effect as a value of 0 for options with numerical values.</p>
<td align=center>0 or 1</td><td align=center>1</td></tr>
<tr id="Compress"><td>Compress</td><td>Flag to write new values in compressed
format if possible. Has no effect unless the relevant compression library is
available. Valid when writing metadata to PNG, JXL or MIE images. Setting this
to zero causes JXL metadata to be rewritten as uncompressed when edited.</td>
available. Valid when writing metadata to PNG, JXL, HEIC or MIE images.
Setting this to zero causes JXL metadata to be rewritten as uncompressed when edited.</td>
<td align=center>0, 1 or undef</td><td align=center>undef</td></tr>
<tr id="CoordFormat"><td>CoordFormat</td><td>Specify output format for GPS coordinates.</td>
<td>A printf-style format string with specifiers
for degrees, minutes and seconds in that order, however minutes and seconds
may be omitted. If the hemisphere is known, a reference direction (N, S, E
or W) is appended to each printed coordinate, but adding a '<code>+</code>'
to the first format specifier (eg. <code>'%+.6f'</code>) prints a signed
coordinate instead. The default for reading is equivalent to a format string
of <code>q{%d&nbsp;deg&nbsp;%d'&nbsp;%.2f"}</code>, but to avoid a loss
of precision the default for copying tags with
or '<code>-</code>' to the first format specifier (eg. <code>'%+.6f'</code>
or <code>'%-.6f'</code>) prints a signed coordinate instead
('<code>+</code>' also adds a leading plus sign to positive coordinates,
while '<code>-</code>' does not). The default for reading is equivalent to a
format string of <code>q{%d&nbsp;deg&nbsp;%d'&nbsp;%.2f"}</code>, but to
avoid a loss of precision the default for copying tags with
<a href="#SetNewValuesFromFile">SetNewValuesFromFile</a> is
<code>q{%d&nbsp;%d&nbsp;%.8f}</code>.
</td><td align=center>undef</td></tr>
<tr id="DateFormat"><td>DateFormat</td><td>Output format for date/time values. If date can not
be converted, value is left unchanged unless the <a href="#StrictDate">StrictDate</a>
option is set. Timezones are ignored. The inversion conversion (ie. when calling
option is set. The inversion conversion (ie. when calling
<a href="#SetNewValue">SetNewValue</a>) is performed only if POSIX::strptime
or Time::Piece is installed.</td><td>See strftime manpage for details.
The default setting of undef causes date/time values to remain in standard EXIF
format (similar to a DateFormat of <code>"%Y:%m:%d %H:%M:%S"</code>).</td>
or Time::Piece is installed.</td><td>See strftime manpage for details, and
<a href="filename.html#codes">this page</a> for common date/time formatting
codes and additional ExifTool codes. The default setting of undef causes
date/time values to remain in standard EXIF format (similar to a DateFormat
of <code>"%Y:%m:%d %H:%M:%S"</code>).</td>
<td align=center>undef</td></tr>
<!-- <tr id="Debug"><td>Debug</td><td>Enable debugging messages</td>
<td align=center>0 or 1</td><td align=center>undef</td></tr> -->
<tr id="Duplicates"><td>Duplicates</td><td>Flag to return values from
tags with duplicate names when extracting information. Forced to 1
when copying tags with <a href="#SetNewValuesFromFile">SetNewValuesFromFile</a>.</td>
<td align=center>0 or 1</td><td align=center>1</td></tr>
<!-- <tr id="EncodeHangs"><td>EncodeHangs</td><td>Avoid using the Encode module
because it hangs. This was a problem when running in a Windows 10 virtual
machine and the current working directory was a long path name.</td>
<td align=center>0 or 1</td><td align=center>undef</td></tr> -->
<tr id="Escape"><td>Escape</td>
<td>Escape special characters in extracted values for
HTML or XML. Also unescapes HTML or XML character entities in input values
@ -647,6 +666,54 @@ effect as a value of 0 for options with numerical values.</p>
maker notes base offset, or the empty string ('') for ExifTool to take its
best guess at the correct base.</td>
<td align=center>undef</td></tr>
<tr id="GeoDir"><td>GeoDir</td>
<td>[Not a real option] Provided as a convenience to allow $Image::ExifTool::geoDir
to be set at runtime. This variable specifies the directory for the Geolocation
databases, and is used only once when these databases are loaded.</td>
<td>-</td><td align=center>-</td></tr>
<tr id="Geolocation"><td>Geolocation</td>
<td>Flag to generate geolocation tags based on the GPSLatitude/GPSLongitude
or City/State/Province/Country information read from a file.
This feature uses an included database with cities over a population of 2000
from geonames.org. May be set to a string of the form "Lat,Lon" (eg.
"44.56,-72.33") or city with optional region, subregion, country and/or
country code (eg. "Paris,France") to act as a default for files not
containing GPS or geolocation information, or include tag names with leading
dollar signs separated by commas to specify the tags to use for the
geolocation input. When "Lat,Lon" is specified, "num=##" may be added to
return the specified number of nearby cities (the
<a href="#Duplicates">Duplicates</a> option must also be used for the duplicate
tags to be returned). May include regular expressions for more flexible
matching of city names. See
<a href="geolocation.html#Read">Reading Geolocation information</a> for more
details.</td>
<td align=center>0, 1, or comma-separated string with default location and/or
tag names to use as input to the geolocation determination. See
<a href="geolocation.html#Read">here</a> for details.</td>
<td align=center>undef</td></tr>
<tr id="GeolocAltNames"><td>GeolocAltNames</td>
<td>Flag to search alternate Geolocation city names if available.</td>
<td align=center>0 or 1</td>
<td align=center>1</td></tr>
<tr id="GeolocFeature"><td>GeolocFeature</td>
<td>Feature codes to include or exclude in city search. Valid feature codes are
PPL, PPLA, PPLA2, PPLA3, PPLA4, PPLA5, PPLC, PPLCH, PPLF, PPLG, PPLH, PPLL, PPLQ,
PPLR, PPLS, PPLW, PPLX, STLMT and Other, plus possible user-included codes if an
alternate database is used. Read <a href="http://www.geonames.org/export/codes.html#P">here</a>
for a description of these codes.</td>
<td align=center>Comma-separated list of feature codes, with leading dash (-) to
exclude these features</td>
<td align=center>undef</td></tr>
<tr id="GeolocMaxDist"><td>GeolocMaxDist</td>
<td>Maximum distance in km to the Geolocation city. The Geolocation tags are
not generated if the distance is greater than this.</td>
<td align=center>Any number</td>
<td align=center>undef</td></tr>
<tr id="GeolocMinPop"><td>GeolocMinPop</td>
<td>Minimum population for the Geolocation city. Cities smaller than this
are ignored.</td>
<td align=center>Any integer</td>
<td align=center>undef</td></tr>
<tr id="GeoMaxIntSecs"><td>GeoMaxIntSecs</td>
<td>Maximum interpolation time in seconds for
geotagging. Geotagging is treated as an extrapolation if the Geotime value
@ -689,10 +756,25 @@ effect as a value of 0 for options with numerical values.</p>
<tr><td valign=top align=right><i>(anything else)</i></td><td>=&nbsp;knots</td></tr>
</table></td><td align=center>undef</td></tr>
<tr id="GlobalTimeShift"><td>GlobalTimeShift</td>
<td>Time shift to apply to all extracted
date/time PrintConv values. Does not affect ValueConv values.</td>
<td align=center>Date/time shift string with leading '-' for negative shifts<br>(see <a href="Shift.html">Image::ExifTool::Shift.pl</a>)</td>
<td>Time shift to apply to all extracted date/time PrintConv values. Does
not affect ValueConv values. When specifying a number of months and/or years
to shift, the tag for the starting date should be specified so the number of
days can be determined unambiguously. If not specified, or the specified tag
isn't available, the shift is calculated based on the first shifted tag.</td>
<td>Date/time shift string with leading '-' for negative shifts
(see <a href="Shift.html">Image::ExifTool::Shift.pl</a>), or tag name
with optional group prefix followed by '+' or '-' then shift string. eg)<br>
<code>'createdate-1:0:0&nbsp;0:0:0'</code> - shift back by the length of the year
before the CreateDate value<br><code>'xmp:createdate+0:2:0&nbsp;0'</code> -
shift forward by the length of the 2 months after XMP:CreateDate</td>
<td align=center>undef</td></tr>
<tr id="GPSQuadrant"><td>GPSQuadrant</td>
<td>This option is used to specify the GPS quadrant in the case where a
warning was issued because the GPS quadrant couldn't be determined.</td>
<td>2-character quadrant code where the first character is 'N' or
'S' and the second is 'E' or 'W' (case insensitive). If this option is not
set and the quadrant is unknown, a warning is issued and the quadrant is
assumed to be 'NE'.</td><td align=center>undef</td></tr>
<tr id="GroupNum"><td>Group#</td><td>Extract tags only for specified groups in family #
(Group0 assumed if # not given).</td>
<td>Group name or reference to list of group names.
@ -719,6 +801,11 @@ effect as a value of 0 for options with numerical values.</p>
<tr><td valign=top align=right><i>non&#8209;zero</i>&nbsp;=</td><td>Relative offsets</td></tr>
<tr><td valign=top align=right><b>undef</b>&nbsp;=</td><td>EXIF/TIFF offsets</td></tr>
</table></td><td align=center>undef</td></tr>
<tr id="IgnoreGroups"><td>IgnoreGroups</td><td>List of group names to ignore when reading.
The group names are case insensitive and may be preceded by a family number.</td>
<td>List reference, delimited string of names (any delimiter is allowed), or undef to
clear the previous IgnoreGroups list.</td>
<td align=center>undef</td></tr>
<tr id="IgnoreMinorErrors"><td>IgnoreMinorErrors</td><td>Flag to ignore minor errors. Causes minor
errors to be downgraded to warnings, and minor warnings to be ignored. This
option is provided mainly to allow writing of files when minor errors occur,
@ -740,13 +827,20 @@ effect as a value of 0 for options with numerical values.</p>
<tr id="ImageHashType"><td>ImageHashType</td><td>Sets type of hash
algorithm used for the ImageDataHash tag calculation.</td>
<td align=center>'MD5', 'SHA256' or 'SHA512'</td><td align=center>'MD5'</td></tr>
<tr id="KeepUTCTime"><td>KeepUTCTime</td><td>Flag to keep UTC times in Zulu
time zone instead of converting to local time. Affects only times which are
stored as seconds since the UTC epoch.</td>
<td align=center>0 or 1</td><td align=center>undef</td></tr>
<tr id="Lang"><td>Lang</td><td>Localized language for ExifTool tag descriptions, etc. If the
specified language isn't available, the option is not changed. May be set to
undef to select the built-in default language.</td>
<td align=left>Image::ExifTool::Lang module name (eg. 'fr', 'zh_cn'), or 'en' or undef for the default language.</td>
<td align=center>'en'</td></tr>
<tr id="LargeFileSupport"><td>LargeFileSupport</td><td>Flag to indicate that 64-bit file offsets are supported on this system.</td>
<td align=center>0 or 1</td><td align=center>undef</td></tr>
<tr id="LargeFileSupport"><td>LargeFileSupport</td><td>Flag to indicate that 64-bit file offsets
are supported on this system. If not set, processing is aborted if a chunk
larger than 2 GB is encountered. Set to 1 to process large chunks, or 2
to process with a warning.</td>
<td align=center>0, 1 or 2</td><td align=center>1</td></tr>
<tr id="LimitLongValues"><td>LimitLongValues</td><td>When extracting some values for
some specific tags (usually Unknown tags), the PrintConv values are length-limited
and the value is truncated with an ellipsis ("[...]") if it exceeds a specified
@ -814,8 +908,44 @@ effect as a value of 0 for options with numerical values.</p>
password-protected PDF documents. Ignored if a password is not required. Character encoding of
the password is determined by the value of the Charset option at processing time.</td>
<td align=center>Any string</td><td align=center>undef</td></tr>
<tr id="Plot"><td>Plot</td><td>Settings for SVG plot feature as a comma-delimited
string. Commas in the values must be escaped as "&amp;#44;". Valid settings and their default values are:
<table class="clear top">
<tr><td>"Type=Line"</td><td>-</td><td>type of plot (Line, Scatter or Histogram)</td></tr>
<tr><td>"Style=Line"</td><td>-</td><td>data style (Line, Marker and/or Fill)</td></tr>
<tr><td>"NBins=20"</td><td>-</td><td>number of histogram bins</td></tr>
<tr><td>"Size=800 600"</td><td>-</td><td>width,height of output image</td></tr>
<tr><td>"Margin=60&nbsp;15&nbsp;15&nbsp;30"</td><td>-</td><td>left,top,right,bottom margins around plot area</td></tr>
<tr><td>"Legend=0 0"</td><td>-</td><td>x,y offset to shift plot legend</td></tr>
<tr><td>"TxtPad=10 10"</td><td>-</td><td>padding between text and x,y scale</td></tr>
<tr><td>"LineSpacing=20"</td><td>-</td><td>spacing between text lines</td></tr>
<tr><td>"Stroke=1"</td><td>-</td><td>plot stroke width and marker-size scaling</td></tr>
<tr><td>Title, XLabel, YLabel</td><td>-</td><td>plot title and x/y axis labels (no default)</td></tr>
<tr><td>XMin, XMax</td><td>-</td><td>x axis minimum/maximum (auto scaling if not set)</td></tr>
<tr><td>YMin, YMax</td><td>-</td><td>y axis minimum/maximum</td></tr>
<tr><td>"Multi="</td><td>-</td><td>flag to draw multiple plots, one for each dataset</td></tr>
<tr><td>"Split="</td><td>-</td><td>flag to split strings of numbers into lists
(&gt;1 to split into lists of N items)</td></tr>
<tr><td>"Grid=darkgray"</td><td>-</td><td>grid color</td></tr>
<tr><td>"Text=black"</td><td>-</td><td>text and border color</td></tr>
<tr><td>"Bkg="</td><td>-</td><td>background color (default transparent)</td></tr>
<tr><td colspan=3>"Cols=red green blue black orange gray fuchsia brown turquoise gold"
- colors for plot data</td></tr>
<tr><td colspan=3>"Marks=circle square triangle diamond star plus pentagon left down right"
- marker-shape names for each dataset</td></tr>
</table></td>
<td>Comma-delimited string of settings to override default values, or
undef to revert to default settings. Settings are accumulated if this option
is set multiple times.<br><br>See <a href="plot.html">The ExifTool Plot Feature</a>
for more details and examples.</td><td align=center>undef</td></tr>
<tr id="PrintConv"><td>PrintConv</td><td>Flag to enable print conversion. Also enables inverse print
conversion for writing.</td><td align=center>0 or 1</td><td align=center>1</td></tr>
<tr id="PrintCSV"><td>PrintCSV</td><td>Flag to directly print CSV-format output rather
than extracting tags normally. Currently, this feature this applies only to
<a href="TagNames/GM.html">GM PDR data</a>. Setting this option automatically
sets <a href="#IgnoreTags">IgnoreTags</a> to "all", and
<a href="#ExtractEmbedded">ExtractEmbedded</a> to 1.</td>
<td align=center>0 or 1</td><td align=center>undef</td></tr>
<tr id="QuickTimeHandler"><td>QuickTimeHandler</td><td>Flag set to add an 'mdir'
<a href="TagNames/QuickTime.html#Handler">Handler</a> to a newly created
Meta box when adding QuickTime ItemList tags. Adobe Bridge does not add this
@ -838,7 +968,7 @@ effect as a value of 0 for options with numerical values.</p>
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 (except for Canon CR3 files, which
always use UTC times). This option also disables the autodetection of
always use UTC times). This option also disables the auto-detection of
incorrect time-zero offsets in QuickTime date/time values, and enforces a
time zero of 1904 as per the QuickTime specification.</td>
<td align=center>0 or 1</td>
@ -856,6 +986,9 @@ effect as a value of 0 for options with numerical values.</p>
case as they are added to the list.</td><td>List reference, delimited string of names
(any delimiter is allowed), or undef to clear the previous RequestTags list.</td>
<td align=center>undef</td></tr>
<tr id="SaveBin"><td>SaveBin</td><td>Flag to save binary values of tags, accessible through
calls to <a href="#GetValue">GetValue</a> with a value type of "Bin".</td>
<td align=center>0 or 1</td><td align=center>undef</td></tr>
<tr id="SaveFormat"><td>SaveFormat</td><td>Flag to save EXIF/TIFF format type as the
family 6 group name when extracting information. Without this option set, the
family 6 group names are not generated. See <a href="#GetGroup">GetGroup</a>
@ -870,21 +1003,21 @@ effect as a value of 0 for options with numerical values.</p>
the FastScan option, only unrecognized file types are scanned for XMP.
</td><td align=center>0 or 1</td><td align=center>undef</td></tr>
<tr id="Sort"><td>Sort</td><td>Specifies order to sort tags in the returned tag list.</td>
<td><table class=clear>
<tr><td valign=top align=right><b>Input</b>&nbsp;=</td><td>Sort in same order as input tag arguments</td></tr>
<tr><td valign=top align=right><b>File</b>&nbsp;=</td><td>Sort in order that tags were found in the file</td></tr>
<tr><td valign=top align=right><b>Tag</b>&nbsp;=</td><td>Sort alphabetically by tag name</td></tr>
<tr><td valign=top align=right><b>Descr</b>&nbsp;=</td><td>Sort by tag description (with current Lang setting)</td></tr>
<tr valign=top><td valign=top align=right><b>Group#</b>&nbsp;=</td><td>Sort by tag group,
<td><table class="clear top">
<tr><td align=right><b>Input</b>&nbsp;=</td><td>Sort in same order as input tag arguments</td></tr>
<tr><td align=right><b>File</b>&nbsp;=</td><td>Sort in order that tags were found in the file</td></tr>
<tr><td align=right><b>Tag</b>&nbsp;=</td><td>Sort alphabetically by tag name</td></tr>
<tr><td align=right><b>Descr</b>&nbsp;=</td><td>Sort by tag description (with current Lang setting)</td></tr>
<tr><td align=right><b>Group#</b>&nbsp;=</td><td>Sort by tag group,
where # is zero or more family numbers separated by colons. If # is not specified,
Group0 is assumed. See <a href="#GetGroup">GetGroup</a> for a description of group
families.</td></tr>
</table></td><td align=center>'Input'</td></tr>
<tr id="Sort2"><td>Sort2</td><td>Secondary sort order used for tags within each group when Sort is 'Group'.</td>
<td><table class=clear>
<tr><td valign=top align=right><b>File</b>&nbsp;=</td><td>Sort in order that tags were found in the file</td></tr>
<tr><td valign=top align=right><b>Tag</b>&nbsp;=</td><td>Sort alphabetically by tag name</td></tr>
<tr><td valign=top align=right><b>Descr</b>&nbsp;=</td><td>Sort by tag description (with current Lang setting)</td></tr>
<td><table class="clear top">
<tr><td align=right><b>File</b>&nbsp;=</td><td>Sort in order that tags were found in the file</td></tr>
<tr><td align=right><b>Tag</b>&nbsp;=</td><td>Sort alphabetically by tag name</td></tr>
<tr><td align=right><b>Descr</b>&nbsp;=</td><td>Sort by tag description (with current Lang setting)</td></tr>
</table></td><td align=center>'File'</td></tr>
<tr id="StrictDate"><td>StrictDate</td><td>Flag to return undefined value for
any date which can't be converted when the DateFormat option is used. When
@ -895,29 +1028,33 @@ effect as a value of 0 for options with numerical values.</p>
reformatted according to PNG 1.2 recommendation (RFC-1123) when writing, and
a warning to be issued for any non-standard value when reading (but note
that Windows may not recognize PNG date/time values in standard format).</td>
<td><table class=clear>
<tr><td valign=top align=right><b>undef</b>&nbsp;=</td><td>Same as 0 for reading/writing or 1 for copying</td></tr>
<tr><td valign=top align=right><b>0</b>&nbsp;=</td><td>Return bad date/time values unchanged</td></tr>
<tr><td valign=top align=right><b>1</b>&nbsp;=</td><td>Return undef if date/time value can't be converted</td></tr>
<td><table class="clear top">
<tr><td align=right><b>undef</b>&nbsp;=</td><td>Same as 0 for reading/writing or 1 for copying</td></tr>
<tr><td align=right><b>0</b>&nbsp;=</td><td>Return bad date/time values unchanged</td></tr>
<tr><td align=right><b>1</b>&nbsp;=</td><td>Return undef if date/time value can't be converted</td></tr>
</table></td><td align=center>undef</td></tr>
<tr id="Struct"><td>Struct</td><td>Flag to return XMP structures as HASH references
instead of flattening into individual tags. This setting has no effect
when writing since both flattened and structured tags may always be written.
See the <a href="struct.html">Structured Information documentation</a> for
more details about structured information.</td>
<td><table class=clear>
<tr><td valign=top align=right><b>undef</b>&nbsp;=</td><td>Same as 0 for reading and 2 for copying</td></tr>
<tr><td valign=top align=right><b>0</b>&nbsp;=</td><td>Read/copy flattened tags</td></tr>
<tr><td valign=top align=right><b>1</b>&nbsp;=</td><td>Read/copy structures</td></tr>
<tr><td valign=top align=right><b>2</b>&nbsp;=</td><td>Read/copy both flattened and structured tags,
more details about structured information. A special "_ordered_keys_" element
containing a list of ordered keys may exist if the structure elements are ordered
(see the <a href="#OrderedKeys">OrderedKeys</a> method).</td>
<td><table class="clear top">
<tr><td align=right><b>undef</b>&nbsp;=</td><td>Same as 0 for reading and 2 for copying</td></tr>
<tr><td align=right><b>0</b>&nbsp;=</td><td>Read/copy flattened tags</td></tr>
<tr><td align=right><b>1</b>&nbsp;=</td><td>Read/copy structures</td></tr>
<tr><td align=right><b>2</b>&nbsp;=</td><td>Read/copy both flattened and structured tags,
but flag flattened tags as "unsafe" for copying</td></tr>
</table></td><td align=center>undef</td></tr>
<tr id="StructFormat"><td>StructFormat</td><td>Format for serialized structures when reading/writing.
<a href="struct.html">Read here</a> for more details about structured information.</td>
<td><table class=clear>
<tr><td valign=top align=right><b>undef</b>&nbsp;=</td><td>ExifTool format</td></tr>
<tr><td valign=top align=right><b>JSON</b>&nbsp;=</td><td>JSON format</td></tr>
<tr><td valign=top align=right><b>JSONQ</b>&nbsp;=</td><td>JSON with quoted numbers</td></tr>
<a href="struct.html">Read here</a> for more details about structured information.
Note that the JSONQ setting causes all values in the exiftool application -json
output to be quoted, regardless of whether or not they are in a structure.</td>
<td><table class="clear top">
<tr><td align=right><b>undef</b>&nbsp;=</td><td>ExifTool format</td></tr>
<tr><td align=right><b>JSON</b>&nbsp;=</td><td>JSON format</td></tr>
<tr><td align=right><b>JSONQ</b>&nbsp;=</td><td>JSON with quoted numbers</td></tr>
</table></td><td align=center>undef</td></tr>
<tr id="SystemTags"><td>SystemTags</td><td>Flag to extract the
following additional File System tags: FileAttributes, FileDeviceNumber,
@ -926,16 +1063,18 @@ effect as a value of 0 for options with numerical values.</p>
<td align=center>0 or 1</td><td align=center>undef</td></tr>
<tr id="TextOut"><td>TextOut</td><td>Output file for Verbose and HtmlDump options.</td>
<td align=center>File reference</td><td align=center>\*STDOUT</td></tr>
<tr id="TimeZone"><td>TimeZone</td><td>Time zone for local date/time values. (Requires POSIX::tzset,
which may not be available in Windows. A work-around in Windows is to
<code>set TZ=&lt;zone&gt;</code> before running ExifTool.)</td>
<td>Any valid TZ string, or undef to use the system time zone</td><td align=center>undef</td></tr>
<tr id="TimeZone"><td>TimeZone</td><td>Set the time zone for local date/time values. The
value is a time zone offset like "+05:00" (but note that the offset is to UTC, not
from UTC, so it is positive for western time zones), or a time zone name like "EST5EDT".
For Unix-based systems, the value may also be a time zone ID like "America/New_York".
Requires Time::Piece on Windows, or POSIX::tzset on other systems.</td>
<td>Time zone offset or ID, or undef to use the system time zone</td><td align=center>undef</td></tr>
<tr id="Unknown"><td>Unknown</td><td>Control extraction of unknown tags.</td>
<td><table class=clear>
<tr><td valign=top align=center><b>0</b>&nbsp;=</td><td>Unknown tags not extracted</td></tr>
<tr><td valign=top align=center><b>1</b>&nbsp;=</td><td>Unknown tags are extracted from EXIF
<td><table class="clear top">
<tr><td align=center><b>0</b>&nbsp;=</td><td>Unknown tags not extracted</td></tr>
<tr><td align=center><b>1</b>&nbsp;=</td><td>Unknown tags are extracted from EXIF
(and other tagged-format) directories</td></tr>
<tr><td valign=top align=center><b>2</b>&nbsp;=</td><td>Unknown tags also extracted from binary data blocks</td></tr>
<tr><td align=center><b>2</b>&nbsp;=</td><td>Unknown tags also extracted from binary data blocks</td></tr>
</table></td><td align=center>0</td></tr>
<tr id="UserParam"><td>UserParam</td><td>Special option to set/get user-defined parameters.
Useful to allow external input into tag name expressions and ValueConv logic.
@ -947,15 +1086,15 @@ effect as a value of 0 for options with numerical values.</p>
additional arguments, <code>Options('UserParam')</code> returns a reference to the
hash of all user parameters (with lower-case names).
</td>
<td><table class=clear>
<tr><td valign=top><i>PARAM</i></td><td valign=top>-</td><td>Get parameter</td></tr>
<tr><td valign=top><i>PARAM=</i></td><td valign=top>-</td><td>Clear parameter</td></tr>
<tr><td valign=top><i>PARAM^=</i></td><td valign=top>-</td><td>Set parameter to empty string</td></tr></table>
<td><table class="clear top">
<tr><td><i>PARAM</i></td><td>-</td><td>Get parameter</td></tr>
<tr><td><i>PARAM=</i></td><td>-</td><td>Clear parameter</td></tr>
<tr><td><i>PARAM^=</i></td><td>-</td><td>Set parameter to empty string</td></tr></table>
<table class=clear>
<tr><td valign=top><i>PARAM=VALUE</i></td><td valign=top>-</td><td>Set parameter</td></tr>
<tr><td><i>PARAM=VALUE</i></td><td>-</td><td>Set parameter</td></tr>
</table><table class=clear>
<tr><td valign=top><i>hash&nbsp;ref</i></td><td valign=top>-</td><td>Set UserParam hash</td></tr>
<tr><td valign=top><b>undef</b></td><td valign=top>-</td><td>Clear UserParam hash</td></tr>
<tr><td><i>hash&nbsp;ref</i></td><td>-</td><td>Set UserParam hash</td></tr>
<tr><td><b>undef</b></td><td>-</td><td>Clear UserParam hash</td></tr>
</table>
</td><td align=center>{ }</td></tr>
<tr id="Validate"><td>Validate</td><td>Flag to perform extra metadata validation checks
@ -963,29 +1102,31 @@ effect as a value of 0 for options with numerical values.</p>
<td align=center>0 or 1</td><td align=center>undef</td></tr>
<tr id="Verbose"><td>Verbose</td><td>Print verbose messages to file specified by TextOut option.
<a href="verbose.html">Click here</a> for example outputs.</td>
<td><table class=clear>
<tr><td valign=top align=center><b>0</b>&nbsp;=</td><td>No verbose messages</td></tr>
<tr><td valign=top align=center><b>1</b>&nbsp;=</td><td>Print tag names and raw values</td></tr>
<tr><td valign=top align=center><b>2</b>&nbsp;=</td><td>Add additional tag details</td></tr>
<tr><td valign=top align=center><b>3</b>&nbsp;=</td><td>Add hex dump of tag data (with length limits)</td></tr>
<tr><td valign=top align=center><b>4</b>&nbsp;=</td><td>Remove length limit on dump of tag values</td></tr>
<tr><td valign=top align=center><b>5</b>&nbsp;=</td><td>Remove length limit on dump of JPEG segments</td></tr>
<td><table class="clear top">
<tr><td align=center><b>0</b>&nbsp;=</td><td>No verbose messages</td></tr>
<tr><td align=center><b>1</b>&nbsp;=</td><td>Print tag names and raw values</td></tr>
<tr><td align=center><b>2</b>&nbsp;=</td><td>Add additional tag details</td></tr>
<tr><td align=center><b>3</b>&nbsp;=</td><td>Add hex dump of tag data (with length limits)</td></tr>
<tr><td align=center><b>4</b>&nbsp;=</td><td>Remove length limit on dump of tag values</td></tr>
<tr><td align=center><b>5</b>&nbsp;=</td><td>Remove length limit on dump of JPEG segments</td></tr>
</table></td><td align=center>0</td></tr>
<tr id="WindowsLongPath"><td>WindowsLongPath</td><td>Support long path names in Windows.
Enabling this option automatically enables the WindowsWideFile feature.</td>
<td align=center>0 or 1</td><td align=center>1</td></tr>
<tr id="WindowsWideFile"><td>WindowsWideFile</td><td>Force the use of wide-character
Windows I/O functions when the <a href="#CharsetFileName">CharsetFileName option</a>
is used. This may be necessary when files are on a network drive and the current
directory name contains Unicode characters. By default, the wide-character functions
are used only if the specified file path contains Unicode characters.</td>
Windows I/O functions. This may be necessary when files are on a network drive and the
current directory name contains Unicode characters. Without this option the wide-character
functions are used only if the specified file path contains Unicode characters.</td>
<td align=center>0 or 1</td><td align=center>undef</td></tr>
<tr id="WriteMode"><td>WriteMode</td><td>Set tag write/create mode. The level of the group
differs for different types of metadata. For XMP or IPTC this is the full XMP/IPTC block
(the family 0 group), but for EXIF this is the individual IFD (the family 1 group).
The 'w' and 'c' modes are tested only when <a href="#SetNewValue">SetNewValue</a>
is called, but the 'g' mode is also tested in <a href="#WriteInfo">WriteInfo</a>.</td>
<td>A string with one or more of these characters:<table class=clear>
<tr><td valign=top align=center><b>w</b>&nbsp;=</td><td><b>W</b>rite existing tags</td></tr>
<tr><td valign=top align=center><b>c</b>&nbsp;=</td><td><b>C</b>reate new tags</td></tr>
<tr><td valign=top align=center><b>g</b>&nbsp;=</td><td>Create new <b>g</b>roups <sup>&dagger;</sup></td></tr>
<td>A string with one or more of these characters:<table class="clear top">
<tr><td align=center><b>w</b>&nbsp;=</td><td><b>W</b>rite existing tags</td></tr>
<tr><td align=center><b>c</b>&nbsp;=</td><td><b>C</b>reate new tags</td></tr>
<tr><td align=center><b>g</b>&nbsp;=</td><td>Create new <b>g</b>roups <sup>&dagger;</sup></td></tr>
</table></td><td align=center>'wcg'</td></tr>
<tr id="XAttrTags"><td>XAttrTags</td><td>Flag to extract the OS X
extended attribute tags (see the "xattr" man page and the
@ -1067,16 +1208,6 @@ the .ExifTool_config file if it exists.</p>
<blockquote><table class='box'><tr><td><pre>
$success = $exifTool-&gt;<b>ExtractInfo</b>('image.jpg', \%options);
</pre></td></tr></table></blockquote>
<p>The following options are effective in the call to <a href="#ExtractInfo">ExtractInfo</a>:</p>
<blockquote>
Binary, Charset, CharsetEXIF, CharsetFileName, CharsetID3, CharsetIPTC,
CharsetPhotoshop, CharsetQuickTime, CharsetRIFF, Composite, ExtendedXMP,
ExtractEmbedded, FastScan, FixBase, HtmlDump, HtmlDumpBase,
IgnoreMinorErrors, Lang, LargeFileSupport, MakerNotes, MDItemTags,
NoPDFList, Password, QuickTimeUTC (enforced 1904 time zero), RequestAll,
RequestTags, SaveFormat, SavePath, ScanForXMP, Struct, TextOut, Unknown,
Verbose, WindowsWideFile, XAttrTags and XMPAutoConv.
</blockquote>
<hr><h2><a name="GetInfo">GetInfo</a></h2>
<p><a href="#GetInfo">GetInfo</a> is called to return meta information
@ -1113,12 +1244,6 @@ $info = $exifTool-&gt;<b>GetInfo</b>(\@ioTagList);
<span class=com># get all information in Author or Location groups</span>
$info = $exifTool-&gt;<b>GetInfo</b>({Group2 =&gt; ['Author', 'Location']});
</pre></td></tr></table></blockquote>
<p>The following options are effective in the call to <a href="#GetInfo">GetInfo</a>:</p>
<blockquote>
Charset, CoordFormat, DateFormat, Duplicates, Escape, Exclude, Filter, Group#,
GlobalTimeShift, Lang, ListItem, ListJoin, PrintConv, QuickTimeUTC (conversion
to local time), Sort (if a tag list reference is given) and StrictDate.
</blockquote>
<hr><h2><a name="WriteInfo">WriteInfo</a></h2>
<p>Write meta information to a file. The specified source file is rewritten to
@ -1201,13 +1326,6 @@ $warningMessage = $exifTool-&gt;<a href="#GetValue">GetValue</a>('Warning');
be called to obtain the error description. A Warning tag may be set even if
this routine is successful. Calling WriteInfo clears any pre-existing Error
and Warning tags.</p>
<p>The following ExifTool options are effective in the call to
<a href="#WriteInfo">WriteInfo</a>:</p>
<blockquote>
ByteOrder, Charset, CharsetEXIF, CharsetFileName, CharsetIPTC, Compact,
Compress, FixBase, IgnoreMinorErrors, NoMultiExif, NoPDFList, Password,
QuickTimeHandler, QuickTimePad, Verbose, WindowsWideFile and WriteMode.
</blockquote>
<hr><h2><a name="GetTagList">GetTagList</a></h2>
<p>Get a sorted list of tags from the specified information hash or tag list.</p>
@ -1292,11 +1410,13 @@ instead.</p>
<tr><td valign=top><b>Inputs</b></td><td><b>0)</b> ExifTool object reference
<br><b>1)</b> Tag key, or case-sensitive tag name with optional group prefix(es)
<br><b>2)</b> [<i>optional</i>] Value type, 'PrintConv', 'ValueConv', 'Both',
'Raw' or 'Rational'
<br>&nbsp;<br>The default value type is 'PrintConv' if the PrintConv option
is set, otherwise the default is 'ValueConv'. A value type of 'Both'
returns both ValueConv and PrintConv values as a list. 'Rational' returns
the raw rational value as a string fraction for rational types, or undef for
'Raw', 'Bin' or 'Rational'
<br>&nbsp;<br>The default value type is 'PrintConv' if the PrintConv option is set,
otherwise the default is 'ValueConv'. A value type of 'Both' returns both
ValueConv and PrintConv values as a list. 'Raw' returns the raw decoded tag
value. 'Bin' returns the original binary data for EXIF tags if the
<a href="#SaveBin">SaveBin</a> option was set. 'Rational' returns the raw
rational value as a string fraction for rational types, or undef for
other types.
</td></tr>
<tr><td valign=top><b>Returns</b></td><td>
@ -1341,13 +1461,6 @@ if (ref $val eq 'ARRAY') {
<span class=com># list example</span>
my @keywords = $exifTool-&gt;<b>GetValue</b>('Keywords', 'ValueConv');
</pre></td></tr></table></blockquote>
<p>The following options are in effect when <a href="#GetValue">GetValue</a> is
called:</p>
<blockquote>
Charset, CoordFormat, DateFormat, Escape, Filter, GlobalTimeShift, Lang,
ListItem, ListJoin, PrintConv, QuickTimeUTC (conversion to local time),
StrictDate and TimeZone.
</blockquote>
<hr><h2><a name="SetNewValue">SetNewValue</a></h2>
<p>Set the new value for a tag. The routine may be called multiple times to set
@ -1394,10 +1507,10 @@ errors are printed to STDERR.
<tr><th>Option</th><th>Description</th><th width='30%'>Values</th><th>Default</th></tr>
<tr><td>AddValue</td><td>Add value to existing list <b>in a file</b> rather than
overwriting the existing values</td>
<td><table class=clear>
<tr><td valign=top align=center><b>0</b>&nbsp;=</td><td>Overwrite existing value(s)</td></tr>
<tr><td valign=top align=center><b>1</b>&nbsp;=</td><td>Add to existing list, or warn for non-list tags</td></tr>
<tr><td valign=top align=center><b>2</b>&nbsp;=</td><td>Add to existing list, or overwrite non-list tags</td></tr>
<td><table class="clear top">
<tr><td align=center><b>0</b>&nbsp;=</td><td>Overwrite existing value(s)</td></tr>
<tr><td align=center><b>1</b>&nbsp;=</td><td>Add to existing list, or warn for non-list tags</td></tr>
<tr><td align=center><b>2</b>&nbsp;=</td><td>Add to existing list, or overwrite non-list tags</td></tr>
</table></td><td align=center>0</td></tr>
<tr><td>DelValue</td><td>Delete existing tag from a file if it has the specified
value. For list-type tags this deletes a specified item from the list. For
@ -1423,11 +1536,11 @@ errors are printed to STDERR.
shortcuts if not found otherwise.</td><td align=center>0 or 1</td><td align=center>0</td></tr>
<tr><td>Protected</td><td>Allow unsafe and protected tags to be written</td>
<td>Bitmask of tag protection levels to write:
<table class=clear>
<tr><td valign=top align=center><b>0x01</b>&nbsp;=</td>
<table class="clear top">
<tr><td align=center><b>0x01</b>&nbsp;=</td>
<td>Write '<a href="TagNames/index.html">unsafe</a>' tags (ie. tags not copied
automatically via <a href="#SetNewValuesFromFile">SetNewValuesFromFile</a>)</td></tr>
<tr><td valign=top align=center><b>0x02</b>&nbsp;=</td>
<tr><td align=center><b>0x02</b>&nbsp;=</td>
<td>Write '<a href="TagNames/index.html">protected</a>' tags (internal use only)</td></tr>
</table></td><td align=center>0</td></tr>
<tr><td>ProtectSaved</td><td>Avoid setting new values which were saved after the Nth
@ -1436,22 +1549,22 @@ errors are printed to STDERR.
<tr><td>Replace</td><td>Replace previous new values for this tag (ie. replace the values
set in previous calls to <a href="#SetNewValue">SetNewValue</a>). This option
is most commonly used to replace previously-set new values for list-type tags.</td>
<td><table class=clear>
<tr><td valign=top align=center><b>0</b>&nbsp;=</td><td>Set new value normally (adds to new values for list-type tags)</td></tr>
<tr><td valign=top align=center><b>1</b>&nbsp;=</td><td>Reset any previous new values before setting new value</td></tr>
<tr><td valign=top align=center><b>2</b>&nbsp;=</td><td>Reset previous new values only (new value argument is ignored)</td></tr>
<td><table class="clear top">
<tr><td align=center><b>0</b>&nbsp;=</td><td>Set new value normally (adds to new values for list-type tags)</td></tr>
<tr><td align=center><b>1</b>&nbsp;=</td><td>Reset any previous new values before setting new value</td></tr>
<tr><td align=center><b>2</b>&nbsp;=</td><td>Reset previous new values only (new value argument is ignored)</td></tr>
</table></td><td align=center>0</td></tr>
<tr><td>Shift</td><td>Shift the tag by the specified value. Currently only date/time tags
and tags with numerical values may be shifted. Value is added if Shift is 1, or subtracted
if Shift is -1. See <a href="Shift.html">Image::ExifTool::Shift.pl</a> for details time shift formats.</td>
<td><table class=clear>
<tr><td valign=top align=left colspan=2><b>undef</b>&nbsp;= No shift</td></tr>
<tr><td valign=top align=right><b>0</b>&nbsp;=</td><td>Shift if shiftable:<br>
<td><table class="clear top">
<tr><td align=left colspan=2><b>undef</b>&nbsp;= No shift</td></tr>
<tr><td align=right><b>0</b>&nbsp;=</td><td>Shift if shiftable:<br>
Positive if AddValue set, or<br>
Negative if DelValue set and<br>
tag is date/time</td></tr>
<tr><td valign=top align=right><b>1</b>&nbsp;=</td><td>Positive shift</td></tr>
<tr><td valign=top align=right><b>-1</b>&nbsp;=</td><td>Negative shift</td></tr>
<tr><td align=right><b>1</b>&nbsp;=</td><td>Positive shift</td></tr>
<tr><td align=right><b>-1</b>&nbsp;=</td><td>Negative shift</td></tr>
</table></td><td align=center>undef</td></tr>
<tr><td>Type</td><td>The type of value being set</td>
<td>PrintConv, ValueConv or Raw (default depends on <a href="#PrintConv">PrintConv</a> Option)</td>
@ -1557,12 +1670,6 @@ of individual tags after deleting a group.</p>
not deleted by default because doing so may affect the appearance of the image.
However, this information may be deleted by specifying it explicitly, either by
group (with '<code>Adobe:*</code>') or as a block (with '<code>Adobe</code>').</p>
<p>The following ExifTool options are effective in the call to
<a href="#SetNewValue">SetNewValue</a>:</p>
<blockquote>
Charset, DateFormat, Escape, IgnoreMinorErrors, Lang, ListJoin, ListSplit,
PrintConv, QuickTimeUTC, StrictDate, TimeZone, Verbose and WriteMode.
</blockquote>
<hr><h2><a name="GetNewValue">GetNewValue</a><a name="GetNewValues"></a></h2>
<p>Get the new Raw value for a tag. This is the value set by
@ -2127,7 +2234,7 @@ for option details.)</p>
<tr><td valign=top><b>Inputs</b></td><td>(none)</td></tr>
<tr><td valign=top><b>Returns</b></td><td>Reference to list of available options.
Each entry in the list is a list reference with 3 items: 0=Option name, 1=Default value,
2=Description</td></tr>
2=Description, 3=flag set if option is undocumented</td></tr>
</table></blockquote>
<p><b>Example:</b></p>
<blockquote><table class='box'><tr><td><pre>
@ -2204,59 +2311,63 @@ the specific IFD).
<blockquote><table class='norm'>
<tr><th>Family</th><th>Group Names</th></tr>
<tr><td><b>0 (Information&nbsp;Type)</b></td>
<td>AAC, AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP2,
APP3, APP4, APP5, APP6, APP7, APP8, APP9, ASF, Audible, Canon, 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, JUMBF,
Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE, MIFF, MISB, MNG, MOI, MPC, MPEG, MPF,
MXF, MakerNotes, Matroska, Meta, Ogg, OpenEXR, Opus, PDF, PICT, PLIST, PNG,
PSP, Palm, PanasonicRaw, Parrot, PhotoCD, PhotoMechanic, Photoshop,
PostScript, PrintIM, QuickTime, RAF, RIFF, RSRC, RTF, Radiance, Rawzor,
Real, Red, SVG, SigmaRaw, Sony, Stim, Theora, Torrent, Trailer, VCard,
Vorbis, WTV, XML, XMP, ZIP
<td>AAC, AFCP, AIFF, APE, APP0, APP1, APP10, APP11, APP12, APP13, APP14, APP15,
APP2, APP3, APP4, APP5, APP6, APP7, APP8, APP9, ASF, Audible, Canon,
CanonVRD, Composite, DICOM, DjVu, DNG, Ducky, DV, EXE, EXIF, ExifTool, File,
FITS, FLAC, Flash, FlashPix, FLIR, Font, FotoStation, GeoTiff, GIF, GIMP,
GM, GoPro, H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG,
Jpeg2000, JSON, JUMBF, Leaf, LNK, Lytro, M2TS, MakerNotes, Matroska, Meta,
MIE, MIFF, MISB, MNG, MOI, MPC, MPEG, MPF, MXF, Ogg, OpenEXR, Opus, Palm,
PanasonicRaw, Parrot, PDF, PhotoCD, PhotoMechanic, Photoshop, PICT, PLIST,
PNG, PostScript, PrintIM, Protobuf, PSP, QuickTime, Radiance, RAF, Rawzor,
Real, Red, RIFF, RSRC, RTF, SigmaRaw, Sony, Stim, SVG, Theora, Torrent,
Trailer, VCard, Vorbis, WTV, XML, XMP, ZIP
</td></tr>
<tr><td><b>1&nbsp;(Specific&nbsp;Location)</b></td>
<td>AAC, AC3, AFCP, AIFF, APE, ASF, AVI1, Adobe, AdobeCM, AdobeDNG, Apple,
Audible, CBOR, CIFF, CameraIFD, Canon, CanonCustom, CanonDR4, 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,
GSpherical, Garmin, GeoTiff, GlobParamIFD, GoPro, GraphConv, H264, HP, HTC,
<td>AAC, AC3, Adobe, AdobeCM, AdobeDNG, AFCP, AIFF, APE, APP10, APP2, Apple,
ASF, Audible, AudioItemList, AudioKeys, AudioUserData, AVI1, CameraIFD,
Canon, CanonCustom, CanonDR4, CanonRaw, CanonVRD, Casio, CBOR, Chapter#,
CIFF, Composite, DICOM, DJI, DjVu, DjVu-Meta, DNG, Ducky, DV, EPPIM, EXE,
EXIF, ExifIFD, ExifTool, File, FITS, FLAC, Flash, FlashPix, FLIR, Font,
FotoStation, FujiFilm, FujiIFD, Garmin, GE, GeoTiff, GIF, GIMP,
GlobParamIFD, GM, Google, GoPro, GPS, GraphConv, GSpherical, 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, InfiRay, Insta360, 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, M-RAW, 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, MISB, 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-cICP, PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Parrot, 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, VNote, Version0, Vorbis, WTV, XML, XMP, XMP-DICOM,
XMP-Device, XMP-GAudio, XMP-GCamera, XMP-GCreations, 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-ast,
ICC-chrm, ICC-cicp, 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, InfiRay, Insta360, InteropIFD, IPTC, IPTC#, ISO, ITC, ItemList,
iTunes, JFIF, JFXX, JPEG, JPEG-HDR, Jpeg2000, JPS, JSON, JUMBF, JVC,
KDC_IFD, Keys, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD,
KyoceraRaw, Leaf, LeafSubIFD, Leica, LNK, Lyrics3, Lytro, M-RAW, M2TS, MAC,
MacOS, MakerNotes, MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD,
Microsoft, MIE-Audio, MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender,
MIE-Flash, MIE-Geo, MIE-GPS, MIE-Image, MIE-Lens, MIE-Main, MIE-MakerNotes,
MIE-Meta, MIE-Orient, MIE-Preview, MIE-Thumbnail, MIE-Unknown, MIE-UTM,
MIE-Video, MIFF, Minolta, MinoltaRaw, MISB, MNG, MOBI, MOI, Motorola, MPC,
MPEG, MPF0, MPImage, MS-DOC, MXF, Nextbase, Nikon, NikonCapture,
NikonCustom, NikonScan, NikonSettings, NineEdits, Nintendo, NITF, Ocad, Ogg,
Olympus, OnePlus, OpenEXR, Opus, Palm, Panasonic, PanasonicRaw, Parrot, PDF,
Pentax, PhaseOne, PhotoCD, PhotoMechanic, Photoshop, PICT, PictureInfo, PNG,
PNG-cICP, PNG-pHYs, PostScript, PreviewIFD, PrintIM, ProfileIFD, PSP,
Qualcomm, QuickTime, Radiance, RAF, RAF2, Rawzor, Real, Real-CONT,
Real-MDPR, Real-PROP, Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Reconyx, Red,
Ricoh, RIFF, RMETA, RSRC, RTF, Samsung, Sanyo, Scalado, SEAL, Sigma,
SigmaRaw, Sony, SonyIDC, SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#, Stim,
SubIFD, SVG, System, Theora, Torrent, Track#, Track#ItemList, Track#Keys,
Track#UserData, UserData, VCalendar, VCard, Version0, VideoItemList,
VideoKeys, VideoUserData, Vivo, VNote, Vorbis, WTV, XML, XMP, XMP-aas,
XMP-acdsee, XMP-acdsee-rs, XMP-album, XMP-apdi, XMP-apple-fi, XMP-ast,
XMP-aux, XMP-cc, XMP-cell, XMP-crd, XMP-creatorAtom, XMP-crs, XMP-dc,
XMP-dex, XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-et, XMP-exif, XMP-exifEX,
XMP-expressionmedia, XMP-extensis, XMP-fpv, XMP-getty, XMP-hdr, XMP-hdrgm,
XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft,
XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-nine, XMP-panorama, XMP-pdf,
XMP-pdfx, XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism,
XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-sdc, XMP-swf, XMP-tiff, XMP-x,
XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpDSA, XMP-xmpMM, XMP-xmpNote,
XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP, iTunes
XMP-Device, XMP-dex, XMP-DICOM, XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-et,
XMP-exif, XMP-exifEX, XMP-expressionmedia, XMP-extensis, XMP-fpv,
XMP-GAudio, XMP-GCamera, XMP-GContainer, XMP-GCreations, XMP-GDepth,
XMP-getty, XMP-GFocus, XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-hdr,
XMP-HDRGainMap, XMP-hdrgm, XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-LImage,
XMP-lr, XMP-mediapro, XMP-microsoft, XMP-MP, XMP-MP1, XMP-mwg-coll,
XMP-mwg-kw, XMP-mwg-rs, XMP-nine, XMP-panorama, XMP-pdf, XMP-pdfx,
XMP-photomech, XMP-photoshop, XMP-PixelLive, XMP-plus, XMP-pmi, XMP-prism,
XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-sdc, XMP-seal, XMP-swf, XMP-tiff,
XMP-x, XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpDSA, XMP-xmpMM, XMP-xmpNote,
XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP
</td></tr>
<tr><td><b>2&nbsp;(Category)</b></td>
<td>Audio, Author, Camera, Device, Document, ExifTool, Image, Location, Other,
@ -2303,7 +2414,7 @@ alphabetical order.
</table></blockquote>
<p>Below is a current list of deletable group names.</p>
<blockquote>Adobe, AFCP, APP0, APP1, APP10, APP11, APP12, APP13, APP14, APP15, APP2,
APP3, APP4, APP5, APP6, APP7, APP8, APP9, Audio, Author, Camera, CanonVRD,
APP3, APP4, APP5, APP6, APP7, APP8, APP9, AROT, 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,
@ -2409,6 +2520,22 @@ my $num = <b>AddUserDefinedTags</b>('Image::ExifTool::PDF::Info', %tags);
See lib/Image/ExifTool/README in the full distribution for full details on the
elements of the tag information hash.</p>
<hr><h2><a name="OrderedKeys">OrderedKeys</a></h2>
<p>Return a list of ordered keys of a structured tag (ie. a tag value returned
as a HASH reference when the <a href="#Struct">Struct</a> option is used).</p>
<blockquote><table class='norm'>
<tr><td><b>Prototype</b></td><td>OrderedKeys($)</td></tr>
<tr><td valign=top><b>Inputs</b></td><td><b>0)</b> Structure HASH reference
</td></tr>
<tr><td valign=top><b>Returns</b></td><td>List of ordered keys, or keys
sorted in alphabetical order if not ordered.</td></tr>
</table></blockquote>
<p><b>Example:</b></p>
<blockquote><table class='box'><tr><td><pre>
use Image::ExifTool ':Public';
my @keys = OrderedKeys($structRef);
</pre></td></tr></table></blockquote>
<hr>
<p class='lf'><a href="index.html">&lt;-- Back to ExifTool home page</a></p>
</body>

View File

@ -5,7 +5,7 @@
<title>ExifTool Date/Time Shift Module</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:root@osx219.apple.com" />
</head>
<style type='text/css'><!-- --></style></head>
<body style="background-color: white">
<table border="0" width="100%" cellspacing="0" cellpadding="3">
@ -162,7 +162,7 @@
<h1 id="AUTHOR">AUTHOR</h1>
<p>Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)</p>
<p>Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)</p>
<p>This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.</p>

View File

@ -28,8 +28,8 @@ from any tags found in this segment.</p>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'ConTake'</td>
<td>ConTake</td>
<td>'ContTake'</td>
<td>ContTake</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
@ -183,7 +183,7 @@ from any tags found in this segment.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jan 22, 2011</i>
<br><i>Last revised Oct 15, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -90,7 +90,9 @@ toward the bottom, and positive Z points into the face of the phone)</span></spa
<td class=c>int32s</td>
<td><span class=s>1 = ProRAW
<br>2 = Portrait
<br>10 = Photo</span></td></tr>
<br>10 = Photo
<br>11 = Manual Focus
<br>12 = Scene</span></td></tr>
<tr>
<td title='0x0015 = 21'>0x0015</td>
<td>ImageUniqueID</td>
@ -117,15 +119,26 @@ toward the bottom, and positive Z points into the face of the phone)</span></spa
<td class=c>rational64s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x001f = 31'>0x001f</td>
<td>PhotosAppFeatureFlags</td>
<td class=c>int32s</td>
<td><span class=s><span class=n>(set if person or pet detected in image)</span></span></td></tr>
<tr>
<td title='0x0020 = 32'>0x0020</td>
<td>ImageCaptureRequestID?</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x0021 = 33'>0x0021</td>
<td>HDRHeadroom</td>
<td class=c>rational64s</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x0023 = 35'>0x0023</td>
<td>AFPerformance</td>
<td class=c>int32s[2]</td>
<td><span class=s><span class=n>(first number maybe related to focus distance, last number maybe related to
focus accuracy)</span></span></td></tr>
<tr class=b>
<td title='0x0025 = 37'>0x0025</td>
<td>SceneFlags?</td>
@ -147,6 +160,18 @@ toward the bottom, and positive Z points into the face of the phone)</span></spa
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x002d = 45'>0x002d</td>
<td>ColorTemperature</td>
<td class=c>int32s</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x002e = 46'>0x002e</td>
<td>CameraType</td>
<td class=c>int32s</td>
<td><span class=s>0 = Back Wide Angle
<br>1 = Back Normal
<br>6 = Front</span></td></tr>
<tr class=b>
<td title='0x002f = 47'>0x002f</td>
<td>FocusPosition</td>
<td class=c>int32s</td>
@ -180,7 +205,7 @@ toward the bottom, and positive Z points into the face of the phone)</span></spa
<td title='0x0040 = 64'>0x0040</td>
<td>SemanticStyle</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<td><span class=s><span class=n>(_1=Tone, _2=Warm, _3=1.Std,2.Vibrant,3.Rich Contrast,4.Warm,5.Cool)</span></span></td></tr>
<tr>
<td title='0x0041 = 65'>0x0041</td>
<td>SemanticStyleRenderingVer</td>
@ -192,11 +217,25 @@ toward the bottom, and positive Z points into the face of the phone)</span></spa
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x0045 = 69'>0x0045</td>
<td>FrontFacingCamera</td>
<td class=c>int32s</td>
<td><span class=s>0 = No
<br>1 = Yes</span></td></tr>
<td title='0x004e = 78'>0x004e</td>
<td>Apple_0x004e?</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x004f = 79'>0x004f</td>
<td>Apple_0x004f?</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x0054 = 84'>0x0054</td>
<td>Apple_0x0054?</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x005a = 90'>0x005a</td>
<td>Apple_0x005a?</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='RunTime'>Apple RunTime Tags</a></h2>
@ -236,7 +275,7 @@ boot, not including standby time.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Sep 19, 2023</i>
<br><i>Last revised Mar 11, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -172,7 +172,7 @@ Audible .AA files, even if not listed in the table below.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Apr 30, 2019</i>
<br><i>Last revised Mar 24, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -98,13 +98,14 @@
<br>CanonCameraInfo1100D
<br>CanonCameraInfo1200D
<br>CanonCameraInfoR6
<br>CanonCameraInfoR6m2
<br>CanonCameraInfoG5XII
<br>CanonCameraInfoPowerShot
<br>CanonCameraInfoPowerShot2
<br>CanonCameraInfoUnknown32
<br>CanonCameraInfoUnknown16
<br>CanonCameraInfoUnknown</td>
<td class=c>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-</td>
<td class=c>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-</td>
<td>--&gt; <a href='Canon.html#CameraInfo1D'>Canon CameraInfo1D Tags</a>
<br>--&gt; <a href='Canon.html#CameraInfo1DmkII'>Canon CameraInfo1DmkII Tags</a>
<br>--&gt; <a href='Canon.html#CameraInfo1DmkIIN'>Canon CameraInfo1DmkIIN Tags</a>
@ -133,6 +134,7 @@
<br>--&gt; <a href='Canon.html#CameraInfo600D'>Canon CameraInfo600D Tags</a>
<br>--&gt; <a href='Canon.html#CameraInfo60D'>Canon CameraInfo60D Tags</a>
<br>--&gt; <a href='Canon.html#CameraInfoR6'>Canon CameraInfoR6 Tags</a>
<br>--&gt; <a href='Canon.html#CameraInfoR6m2'>Canon CameraInfoR6m2 Tags</a>
<br>--&gt; <a href='Canon.html#CameraInfoG5XII'>Canon CameraInfoG5XII Tags</a>
<br>--&gt; <a href='Canon.html#CameraInfoPowerShot'>Canon CameraInfoPowerShot Tags</a>
<br>--&gt; <a href='Canon.html#CameraInfoPowerShot2'>Canon CameraInfoPowerShot2 Tags</a>
@ -448,8 +450,9 @@
<br>ColorData9
<br>ColorData10
<br>ColorData11
<br>ColorData12
<br>ColorDataUnknown</td>
<td class=c>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-</td>
<td class=c>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-</td>
<td>--&gt; <a href='Canon.html#ColorData1'>Canon ColorData1 Tags</a>
<br>--&gt; <a href='Canon.html#ColorData2'>Canon ColorData2 Tags</a>
<br>--&gt; <a href='Canon.html#ColorData3'>Canon ColorData3 Tags</a>
@ -461,6 +464,7 @@
<br>--&gt; <a href='Canon.html#ColorData9'>Canon ColorData9 Tags</a>
<br>--&gt; <a href='Canon.html#ColorData10'>Canon ColorData10 Tags</a>
<br>--&gt; <a href='Canon.html#ColorData11'>Canon ColorData11 Tags</a>
<br>--&gt; <a href='Canon.html#ColorData12'>Canon ColorData12 Tags</a>
<br>--&gt; <a href='Canon.html#ColorDataUnknown'>Canon ColorDataUnknown Tags</a></td></tr>
<tr class=b>
<td title='0x4002 = 16386'>0x4002</td>
@ -558,6 +562,11 @@
<td>RawBurstModeRoll</td>
<td class=c>-</td>
<td>--&gt; <a href='Canon.html#RawBurstInfo'>Canon RawBurstInfo Tags</a></td></tr>
<tr class=b>
<td title='0x4059 = 16473'>0x4059</td>
<td>LevelInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Canon.html#LevelInfo'>Canon LevelInfo Tags</a></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='CanonModelID'>Canon CanonModelID Values</a></h2>
@ -913,6 +922,8 @@
</tr><tr><td class=r>0x80000481</td><td>= EOS R6 Mark II</td>
</tr><tr><td class=r>0x80000487</td><td>= EOS R8</td>
</tr><tr><td class=r>0x80000491</td><td>= PowerShot V10</td>
</tr><tr><td class=r>0x80000495</td><td>= EOS R1</td>
</tr><tr><td class=r>0x80000496</td><td>= R5 Mark II</td>
</tr><tr><td class=r>0x80000498</td><td>= EOS R100</td>
</tr><tr><td class=r>0x80000520</td><td>= EOS D2000C</td>
</tr><tr><td class=r>0x80000560</td><td>= EOS D6000C</td>
@ -1384,6 +1395,11 @@ others use a range of 0 to 7 where 0 is no sharpening)</span></span></td></tr>
<td><span class=s>0 = n/a
<br>1 = sRAW1 (mRAW)
<br>2 = sRAW2 (sRAW)</span></td></tr>
<tr class=b>
<td class=r title='51 = 0x33'>51</td>
<td>Clarity</td>
<td class=c>int16s</td>
<td><span class=s>32767 = n/a</span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='LensType'>Canon LensType Values</a></h2>
@ -1491,7 +1507,8 @@ others use a range of 0 to 7 where 0 is no sharpening)</span></span></td></tr>
</tr><tr><td>52</td><td>= Canon EF-S 18-55mm f/3.5-5.6 IS II</td>
</tr><tr><td>53</td><td>= Canon EF-S 18-55mm f/3.5-5.6 III</td>
</tr><tr><td>54</td><td>= Canon EF-S 55-250mm f/4-5.6 IS II</td>
</tr><tr><td>60</td><td>= Irix 11mm f/4</td>
</tr><tr><td>60</td><td>= Irix 11mm f/4 or 15mm f/2.4</td>
</tr><tr><td>60</td><td>= Irix 15mm f/2.4</td>
</tr><tr><td>63</td><td>= Irix 30mm F1.4 Dragonfly</td>
</tr><tr><td>80</td><td>= Canon TS-E 50mm f/2.8L Macro</td>
</tr><tr><td>81</td><td>= Canon TS-E 90mm f/2.8L Macro</td>
@ -1810,6 +1827,7 @@ others use a range of 0 to 7 where 0 is no sharpening)</span></span></td></tr>
</tr><tr><td>748</td><td>= Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x or Tamron Lens</td>
</tr><tr><td>748</td><td>= Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 1.4x</td>
</tr><tr><td>748</td><td>= Tamron 70-210mm f/4 Di VC USD (A034) + 2x</td>
</tr><tr><td>749</td><td>= Canon EF 100-400mm f/4.5-5.6L IS II USM + 2x or Tamron Lens</td>
</tr><tr><td>749</td><td>= Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 2x</td>
</tr><tr><td>750</td><td>= Canon EF 35mm f/1.4L II USM or Tamron Lens</td>
</tr><tr><td>750</td><td>= Tamron SP 85mm f/1.8 Di VC USD (F016)</td>
@ -1900,6 +1918,14 @@ others use a range of 0 to 7 where 0 is no sharpening)</span></span></td></tr>
</tr><tr><td>61182</td><td>= Canon RF 28mm F2.8 STM</td>
</tr><tr><td>61182</td><td>= Canon RF 24-105mm F2.8 L IS USM Z</td>
</tr><tr><td>61182</td><td>= Canon RF-S 10-18mm F4.5-6.3 IS STM</td>
</tr><tr><td>61182</td><td>= Canon RF 35mm F1.4 L VCM</td>
</tr><tr><td>61182</td><td>= Canon RF 70-200mm F2.8 L IS USM Z</td>
</tr><tr><td>61182</td><td>= Canon RF 70-200mm F2.8 L IS USM Z + RF1.4x</td>
</tr><tr><td>61182</td><td>= Canon RF 70-200mm F2.8 L IS USM Z + RF2x</td>
</tr><tr><td>61182</td><td>= Canon RF 16-28mm F2.8 IS STM</td>
</tr><tr><td>61182</td><td>= Canon RF 50mm F1.4 L VCM</td>
</tr><tr><td>61182</td><td>= Canon RF 24mm F1.4 L VCM</td>
</tr><tr><td>61182</td><td>= Canon RF 20mm F1.4 L VCM</td>
</tr><tr><td>61491</td><td>= Canon CN-E 14mm T3.1 L F</td>
</tr><tr><td>61492</td><td>= Canon CN-E 24mm T1.5 L F</td>
</tr><tr><td>61494</td><td>= Canon CN-E 85mm T1.3 L F</td>
@ -5747,7 +5773,7 @@ versions 1.0.x, but they may be different for other firmware versions.</p>
</table></td></tr></table></blockquote>
<h2><a name='CameraInfoR6'>Canon CameraInfoR6 Tags</a></h2>
<p>CameraInfo tags for the EOS R6.</p>
<p>CameraInfo tags for the EOS R5 and R6.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
@ -5760,6 +5786,20 @@ versions 1.0.x, but they may be different for other firmware versions.</p>
<td><span class=s><span class=n>(includes electronic + mechanical shutter)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='CameraInfoR6m2'>Canon CameraInfoR6m2 Tags</a></h2>
<p>CameraInfo tags for the EOS R6 Mark II.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index1</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='3369 = 0xd29'>3369</td>
<td>ShutterCount</td>
<td class=c>int32u</td>
<td><span class=s><span class=n>(includes electronic + mechanical shutter)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='CameraInfoG5XII'>Canon CameraInfoG5XII Tags</a></h2>
<p>CameraInfo tags for the PowerShot G5 X Mark II.</p>
<blockquote>
@ -5773,11 +5813,16 @@ versions 1.0.x, but they may be different for other firmware versions.</p>
<td class=c>int32u</td>
<td><span class=s><span class=n>(includes electronic + mechanical shutter)</span></span></td></tr>
<tr class=b>
<td class=r title='2709 = 0xa95'>2709</td>
<td>ShutterCount</td>
<td class=c>int32u</td>
<td><span class=s><span class=n>(includes electronic + mechanical shutter)</span></span></td></tr>
<tr>
<td class=r title='2849 = 0xb21'>2849</td>
<td>DirectoryIndex</td>
<td class=c>int32u</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td class=r title='2861 = 0xb2d'>2861</td>
<td>FileIndex</td>
<td class=c>int32u</td>
@ -6229,7 +6274,13 @@ may be 7, 9, 11, 19, 31, 45 or 61, depending on the camera model.</p>
<br>11 = Flexizone Multi (49 point)
<br>12 = Flexizone Multi (9 point)
<br>13 = Flexizone Single
<br>14 = Large Zone AF</td></tr></table>
<br>14 = Large Zone AF
<br>16 = Large Zone AF (vertical)
<br>17 = Large Zone AF (horizontal)
<br>19 = Flexible Zone AF 1
<br>20 = Flexible Zone AF 2
<br>21 = Flexible Zone AF 3
<br>22 = Whole Area AF</td></tr></table>
</td></tr>
<tr>
<td class=r title='2 = 0x2'>2</td>
@ -6603,6 +6654,12 @@ valid for all camera models)</span></span></td></tr>
<td><span class=s>0 = Off
<br>1 = On</span></td></tr>
<tr>
<td class=r title='32 = 0x20'>32</td>
<td>AntiFlicker</td>
<td class=c>int16s</td>
<td><span class=s>0 = Off
<br>1 = On</span></td></tr>
<tr class=b>
<td class=r title='61 = 0x3d'>61</td>
<td>RFLensType</td>
<td class=c>int16u</td>
@ -6665,7 +6722,17 @@ valid for all camera models)</span></span></td></tr>
<br>312 = Canon RF 10-20mm F4 L IS STM
<br>313 = Canon RF 28mm F2.8 STM
<br>314 = Canon RF 24-105mm F2.8 L IS USM Z
<br>315 = Canon RF-S 10-18mm F4.5-6.3 IS STM</span></td></tr>
<br>315 = Canon RF-S 10-18mm F4.5-6.3 IS STM
<br>316 = Canon RF 35mm F1.4 L VCM
<br>317 = Canon RF-S 3.9mm F3.5 STM DUAL FISHEYE
<br>318 = Canon RF 28-70mm F2.8 IS STM
<br>319 = Canon RF 70-200mm F2.8 L IS USM Z
<br>320 = Canon RF 70-200mm F2.8 L IS USM Z + RF1.4x
<br>321 = Canon RF 70-200mm F2.8 L IS USM Z + RF2x
<br>323 = Canon RF 16-28mm F2.8 IS STM
<br>325 = Canon RF 50mm F1.4 L VCM
<br>326 = Canon RF 24mm F1.4 L VCM
<br>327 = Canon RF 20mm F1.4 L VCM</span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='SerialInfo'>Canon SerialInfo Tags</a></h2>
@ -6831,6 +6898,16 @@ valid for all camera models)</span></span></td></tr>
<td>WBShiftGM</td>
<td class=c>int16s</td>
<td><span class=s><span class=n>(positive is a shift toward green)</span></span></td></tr>
<tr class=b>
<td class=r title='14 = 0xe'>14</td>
<td>UnsharpMaskFineness</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='15 = 0xf'>15</td>
<td>UnsharpMaskThreshold</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='ColorBalance'>Canon ColorBalance Tags</a></h2>
@ -10925,6 +11002,435 @@ option is used.</p>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='ColorData12'>Canon ColorData12 Tags</a></h2>
<p>These tags are used by the EOS R1 and R5mkII</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index2</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='0 = 0x0'>0</td>
<td>ColorDataVersion</td>
<td class=c>int16s</td>
<td><span class=s>64 = 64 (R1, R5 Mark II)</span></td></tr>
<tr class=b>
<td class=r title='105 = 0x69'>105</td>
<td>WB_RGGBLevelsAsShot</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='109 = 0x6d'>109</td>
<td>ColorTempAsShot</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='110 = 0x6e'>110</td>
<td>WB_RGGBLevelsDaylight</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='114 = 0x72'>114</td>
<td>ColorTempDaylight</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='115 = 0x73'>115</td>
<td>WB_RGGBLevelsShade</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='119 = 0x77'>119</td>
<td>ColorTempShade</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='120 = 0x78'>120</td>
<td>WB_RGGBLevelsCloudy</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='124 = 0x7c'>124</td>
<td>ColorTempCloudy</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='125 = 0x7d'>125</td>
<td>WB_RGGBLevelsTungsten</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='129 = 0x81'>129</td>
<td>ColorTempTungsten</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='130 = 0x82'>130</td>
<td>WB_RGGBLevelsFluorescent</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='134 = 0x86'>134</td>
<td>ColorTempFluorescent</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='135 = 0x87'>135</td>
<td>WB_RGGBLevelsFlash</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='139 = 0x8b'>139</td>
<td>ColorTempFlash</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='140 = 0x8c'>140</td>
<td>WB_RGGBLevelsUnknown2?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='144 = 0x90'>144</td>
<td>ColorTempUnknown2?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='145 = 0x91'>145</td>
<td>WB_RGGBLevelsUnknown3?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='149 = 0x95'>149</td>
<td>ColorTempUnknown3?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='150 = 0x96'>150</td>
<td>WB_RGGBLevelsUnknown4?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='154 = 0x9a'>154</td>
<td>ColorTempUnknown4?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='155 = 0x9b'>155</td>
<td>WB_RGGBLevelsUnknown5?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='159 = 0x9f'>159</td>
<td>ColorTempUnknown5?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='160 = 0xa0'>160</td>
<td>WB_RGGBLevelsUnknown6?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='164 = 0xa4'>164</td>
<td>ColorTempUnknown6?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='165 = 0xa5'>165</td>
<td>WB_RGGBLevelsUnknown7?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='169 = 0xa9'>169</td>
<td>ColorTempUnknown7?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='170 = 0xaa'>170</td>
<td>WB_RGGBLevelsUnknown8?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='174 = 0xae'>174</td>
<td>ColorTempUnknown8?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='175 = 0xaf'>175</td>
<td>WB_RGGBLevelsUnknown9?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='179 = 0xb3'>179</td>
<td>ColorTempUnknown9?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='180 = 0xb4'>180</td>
<td>WB_RGGBLevelsUnknown10?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='184 = 0xb8'>184</td>
<td>ColorTempUnknown10?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='185 = 0xb9'>185</td>
<td>WB_RGGBLevelsUnknown11?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='189 = 0xbd'>189</td>
<td>ColorTempUnknown11?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='190 = 0xbe'>190</td>
<td>WB_RGGBLevelsUnknown12?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='194 = 0xc2'>194</td>
<td>ColorTempUnknown12?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='195 = 0xc3'>195</td>
<td>WB_RGGBLevelsUnknown13?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='199 = 0xc7'>199</td>
<td>ColorTempUnknown13?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='200 = 0xc8'>200</td>
<td>WB_RGGBLevelsUnknown14?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='204 = 0xcc'>204</td>
<td>ColorTempUnknown14?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='205 = 0xcd'>205</td>
<td>WB_RGGBLevelsUnknown15?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='209 = 0xd1'>209</td>
<td>ColorTempUnknown15?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='210 = 0xd2'>210</td>
<td>WB_RGGBLevelsUnknown16?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='214 = 0xd6'>214</td>
<td>ColorTempUnknown16?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='215 = 0xd7'>215</td>
<td>WB_RGGBLevelsUnknown17?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='219 = 0xdb'>219</td>
<td>ColorTempUnknown17?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='220 = 0xdc'>220</td>
<td>WB_RGGBLevelsUnknown18?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='224 = 0xe0'>224</td>
<td>ColorTempUnknown18?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='225 = 0xe1'>225</td>
<td>WB_RGGBLevelsUnknown19?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='229 = 0xe5'>229</td>
<td>ColorTempUnknown19?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='230 = 0xe6'>230</td>
<td>WB_RGGBLevelsUnknown20?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='234 = 0xea'>234</td>
<td>ColorTempUnknown20?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='235 = 0xeb'>235</td>
<td>WB_RGGBLevelsUnknown21?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='239 = 0xef'>239</td>
<td>ColorTempUnknown21?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='240 = 0xf0'>240</td>
<td>WB_RGGBLevelsUnknown22?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='244 = 0xf4'>244</td>
<td>ColorTempUnknown22?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='245 = 0xf5'>245</td>
<td>WB_RGGBLevelsUnknown23?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='249 = 0xf9'>249</td>
<td>ColorTempUnknown23?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='250 = 0xfa'>250</td>
<td>WB_RGGBLevelsUnknown24?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='254 = 0xfe'>254</td>
<td>ColorTempUnknown24?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='255 = 0xff'>255</td>
<td>WB_RGGBLevelsUnknown25?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='259 = 0x103'>259</td>
<td>ColorTempUnknown25?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='260 = 0x104'>260</td>
<td>WB_RGGBLevelsUnknown26?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='264 = 0x108'>264</td>
<td>ColorTempUnknown26?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='265 = 0x109'>265</td>
<td>WB_RGGBLevelsUnknown27?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='269 = 0x10d'>269</td>
<td>ColorTempUnknown27?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='270 = 0x10e'>270</td>
<td>WB_RGGBLevelsUnknown28?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='274 = 0x112'>274</td>
<td>ColorTempUnknown28?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='275 = 0x113'>275</td>
<td>WB_RGGBLevelsUnknown29?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='279 = 0x117'>279</td>
<td>ColorTempUnknown29?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='280 = 0x118'>280</td>
<td>WB_RGGBLevelsUnknown30?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='284 = 0x11c'>284</td>
<td>ColorTempUnknown30?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='285 = 0x11d'>285</td>
<td>WB_RGGBLevelsUnknown31?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='289 = 0x121'>289</td>
<td>ColorTempUnknown31?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='290 = 0x122'>290</td>
<td>WB_RGGBLevelsUnknown32?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='294 = 0x126'>294</td>
<td>ColorTempUnknown32?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='295 = 0x127'>295</td>
<td>WB_RGGBLevelsUnknown33?</td>
<td class=c>int16s[4]</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='299 = 0x12b'>299</td>
<td>ColorTempUnknown33?</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='320 = 0x140'>320</td>
<td>ColorCalib?</td>
<td class=c>-</td>
<td>--&gt; <a href='Canon.html#ColorCalib'>Canon ColorCalib Tags</a></td></tr>
<tr>
<td class=r title='383 = 0x17f'>383</td>
<td>PerChannelBlackLevel</td>
<td class=c>int16u[4]</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='660 = 0x294'>660</td>
<td>NormalWhiteLevel</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='661 = 0x295'>661</td>
<td>SpecularWhiteLevel</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='662 = 0x296'>662</td>
<td>LinearityUpperMargin</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='ColorDataUnknown'>Canon ColorDataUnknown Tags</a></h2>
<blockquote>
<table class=frame><tr><td>
@ -11133,7 +11639,7 @@ option is used.</p>
<td>DigitalLensOptimizer</td>
<td class=c>int32s</td>
<td><span class=s>0 = Off
<br>1 = Stanard
<br>1 = Standard
<br>2 = High</span></td></tr>
<tr>
<td class=r title='11 = 0xb'>11</td>
@ -11391,7 +11897,13 @@ to the one printed on the lens)</span></span></td></tr>
<td class=r title='7 = 0x7'>7</td>
<td>USMLensElectronicMF</td>
<td class=c>int32s</td>
<td><span class=s>0 = Enable After AF
<td><span class=s><span class=n>(EOS R models)</span>
<br>0 = Disable After One-Shot
<br>1 = One-Shot -&gt; Enabled
<br>2 = One-Shot -&gt; Enabled (magnify)
<br>3 = Disable in AF Mode
<br><span class=n>(Other models)</span>
<br>0 = Enable After AF
<br>1 = Disable After AF
<br>2 = Disable in AF Mode</span></td></tr>
<tr class=b>
@ -11400,7 +11912,8 @@ to the one printed on the lens)</span></span></td></tr>
<td class=c>int32s</td>
<td><span class=s>0 = Enable
<br>1 = Disable
<br>2 = IR AF Assist Beam Only</span></td></tr>
<br>2 = IR AF Assist Beam Only
<br>3 = LED AF Assist Beam Only</span></td></tr>
<tr>
<td class=r title='9 = 0x9'>9</td>
<td>OneShotAFRelease</td>
@ -11471,17 +11984,31 @@ to the one printed on the lens)</span></span></td></tr>
<td class=r title='18 = 0x12'>18</td>
<td>AFStatusViewfinder</td>
<td class=c>int32s</td>
<td><span class=s><span class=n>(1D X only)</span>
<td><span class=s><span class=n>(1D X and R models)</span>
<br>0 = Show in Field of View
<br>1 = Show Outside View</span></td></tr>
<tr>
<td class=r title='19 = 0x13'>19</td>
<td>InitialAFPointInServo</td>
<td class=c>int32s</td>
<td><span class=s><span class=n>(1D X only)</span>
<td><span class=s><span class=n>(1D X and R models)</span>
<br>0 = Initial AF Point Selected
<br>1 = Manual AF Point
<br>2 = Auto</span></td></tr>
<tr class=b>
<td class=r title='20 = 0x14'>20</td>
<td>SubjectToDetect</td>
<td class=c>int32s</td>
<td><span class=s>0 = None
<br>1 = People
<br>2 = Animals
<br>3 = Vehicles</span></td></tr>
<tr>
<td class=r title='24 = 0x18'>24</td>
<td>EyeDetection</td>
<td class=c>int32s</td>
<td><span class=s>0 = Off
<br>1 = On</span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='RawBurstInfo'>Canon RawBurstInfo Tags</a></h2>
@ -11502,6 +12029,41 @@ to the one printed on the lens)</span></span></td></tr>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='LevelInfo'>Canon LevelInfo Tags</a></h2>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index4</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='4 = 0x4'>4</td>
<td>RollAngle</td>
<td class=c>int32s</td>
<td><span class=s><span class=n>(converted to degrees of clockwise camera rotation)</span></span></td></tr>
<tr class=b>
<td class=r title='5 = 0x5'>5</td>
<td>PitchAngle</td>
<td class=c>int32s</td>
<td><span class=s><span class=n>(converted to degrees of upward camera tilt)</span></span></td></tr>
<tr>
<td class=r title='7 = 0x7'>7</td>
<td>FocalLength</td>
<td class=c>int32s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='8 = 0x8'>8</td>
<td>MinFocalLength2</td>
<td class=c>int32s</td>
<td><span class=s><span class=n>(these seem to be min/max focal length without teleconverter, as opposed to
MinFocalLength and MaxFocalLength which include the effect of a
teleconverter)</span></span></td></tr>
<tr>
<td class=r title='9 = 0x9'>9</td>
<td>MaxFocalLength2</td>
<td class=c>int32s</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='CTMD'>Canon CTMD Tags</a></h2>
<p>Canon Timed MetaData tags found in CR3 images. The <a href="../ExifTool.html#ExtractEmbedded">ExtractEmbedded</a> option
is automatically applied when reading CR3 files to be able to extract this
@ -11754,7 +12316,7 @@ SX280, and CR3 images from cameras such as the EOS M50.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jan 30, 2024</i>
<br><i>Last revised May 4, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -1379,6 +1379,19 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x10100 = 65792'>0x10100</td>
<td>Rating</td>
<td class=c>yes</td>
<td><table class=cols><tr>
<td>0 = Unrated
<br>1 = 1
<br>2 = 2
<br>3 = 3</td><td>&nbsp;&nbsp;</td>
<td>4 = 4
<br>5 = 5
<br>4294967295 = Rejected</td></tr></table>
</td></tr>
<tr class=b>
<td title='0x10101 = 65793'>0x10101</td>
<td>CheckMark</td>
<td class=c>yes</td>
@ -1390,7 +1403,7 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<br>4 = 4
<br>5 = 5</td></tr></table>
</td></tr>
<tr class=b>
<tr>
<td title='0x10200 = 66048'>0x10200</td>
<td>WorkColorSpace</td>
<td class=c>yes</td>
@ -1399,12 +1412,12 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<br>3 = Wide Gamut RGB
<br>4 = Apple RGB
<br>5 = ColorMatch RGB</span></td></tr>
<tr>
<tr class=b>
<td title='0x20001 = 131073'>0x20001</td>
<td>RawBrightnessAdj</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20101 = 131329'>0x20101</td>
<td>WhiteBalanceAdj</td>
<td class=c>yes</td>
@ -1420,27 +1433,27 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<br>9 = Kelvin
<br>255 = Shot Settings</td></tr></table>
</td></tr>
<tr>
<tr class=b>
<td title='0x20102 = 131330'>0x20102</td>
<td>WBAdjColorTemp</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20105 = 131333'>0x20105</td>
<td>WBAdjMagentaGreen</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20106 = 131334'>0x20106</td>
<td>WBAdjBlueAmber</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20125 = 131365'>0x20125</td>
<td>WBAdjRGGBLevels</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20200 = 131584'>0x20200</td>
<td>GammaLinear</td>
<td class=c>yes</td>
@ -1448,7 +1461,7 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<td>0 = No</td><td>&nbsp;&nbsp;</td>
<td>1 = Yes</td></tr></table>
</td></tr>
<tr class=b>
<tr>
<td title='0x20301 = 131841'>0x20301</td>
<td>PictureStyle</td>
<td class=c>yes</td>
@ -1464,22 +1477,22 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<br>0xf0 = Shot Settings
<br>0xff = Custom</td></tr></table>
</td></tr>
<tr>
<tr class=b>
<td title='0x20303 = 131843'>0x20303</td>
<td>ContrastAdj</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20304 = 131844'>0x20304</td>
<td>ColorToneAdj</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20305 = 131845'>0x20305</td>
<td>ColorSaturationAdj</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20306 = 131846'>0x20306</td>
<td>MonochromeToningEffect</td>
<td class=c>yes</td>
@ -1488,7 +1501,7 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<br>2 = Blue
<br>3 = Purple
<br>4 = Green</span></td></tr>
<tr>
<tr class=b>
<td title='0x20307 = 131847'>0x20307</td>
<td>MonochromeFilterEffect</td>
<td class=c>yes</td>
@ -1497,38 +1510,38 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<br>2 = Orange
<br>3 = Red
<br>4 = Green</span></td></tr>
<tr class=b>
<tr>
<td title='0x20308 = 131848'>0x20308</td>
<td>UnsharpMaskStrength</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20309 = 131849'>0x20309</td>
<td>UnsharpMaskFineness</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x2030a = 131850'>0x2030a</td>
<td>UnsharpMaskThreshold</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x2030b = 131851'>0x2030b</td>
<td>ShadowAdj</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x2030c = 131852'>0x2030c</td>
<td>HighlightAdj</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20310 = 131856'>0x20310</td>
<td>SharpnessAdj</td>
<td class=c>yes</td>
<td><span class=s>0 = Sharpness
<br>1 = Unsharp Mask</span></td></tr>
<tr class=b>
<tr>
<td title='0x20310.0 = 131856.0'>0x20310.0</td>
<td>SharpnessAdjOn</td>
<td class=c>yes</td>
@ -1536,17 +1549,17 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<td>0 = No</td><td>&nbsp;&nbsp;</td>
<td>1 = Yes</td></tr></table>
</td></tr>
<tr>
<tr class=b>
<td title='0x20311 = 131857'>0x20311</td>
<td>SharpnessStrength</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20400 = 132096'>0x20400</td>
<td>ToneCurve</td>
<td class=c>-</td>
<td>--&gt; <a href='CanonVRD.html#ToneCurve'>CanonVRD ToneCurve Tags</a></td></tr>
<tr>
<tr class=b>
<td title='0x20400.1 = 132096.1'>0x20400.1</td>
<td>ToneCurveOriginal</td>
<td class=c>yes</td>
@ -1554,24 +1567,24 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<td>0 = No</td><td>&nbsp;&nbsp;</td>
<td>1 = Yes</td></tr></table>
</td></tr>
<tr class=b>
<tr>
<td title='0x20410 = 132112'>0x20410</td>
<td>ToneCurveBrightness</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20411 = 132113'>0x20411</td>
<td>ToneCurveContrast</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20500 = 132352'>0x20500</td>
<td>AutoLightingOptimizer</td>
<td class=c>yes</td>
<td><span class=s>0 = Low
<br>1 = Standard
<br>2 = Strong</span></td></tr>
<tr>
<tr class=b>
<td title='0x20500.0 = 132352.0'>0x20500.0</td>
<td>AutoLightingOptimizerOn</td>
<td class=c>yes</td>
@ -1579,22 +1592,22 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<td>0 = No</td><td>&nbsp;&nbsp;</td>
<td>1 = Yes</td></tr></table>
</td></tr>
<tr class=b>
<tr>
<td title='0x20600 = 132608'>0x20600</td>
<td>LuminanceNoiseReduction</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20601 = 132609'>0x20601</td>
<td>ChrominanceNoiseReduction</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20670 = 132720'>0x20670</td>
<td>ColorMoireReduction</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20670.0 = 132720.0'>0x20670.0</td>
<td>ColorMoireReductionOn</td>
<td class=c>yes</td>
@ -1602,17 +1615,17 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<td>0 = No</td><td>&nbsp;&nbsp;</td>
<td>1 = Yes</td></tr></table>
</td></tr>
<tr class=b>
<tr>
<td title='0x20701 = 132865'>0x20701</td>
<td>ShootingDistance</td>
<td class=c>yes</td>
<td><span class=s><span class=n>(100% = infinity)</span></span></td></tr>
<tr>
<tr class=b>
<td title='0x20702 = 132866'>0x20702</td>
<td>PeripheralIllumination</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20702.0 = 132866.0'>0x20702.0</td>
<td>PeripheralIlluminationOn</td>
<td class=c>yes</td>
@ -1620,12 +1633,12 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<td>0 = No</td><td>&nbsp;&nbsp;</td>
<td>1 = Yes</td></tr></table>
</td></tr>
<tr>
<tr class=b>
<td title='0x20703 = 132867'>0x20703</td>
<td>ChromaticAberration</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20703.0 = 132867.0'>0x20703.0</td>
<td>ChromaticAberrationOn</td>
<td class=c>yes</td>
@ -1633,7 +1646,7 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<td>0 = No</td><td>&nbsp;&nbsp;</td>
<td>1 = Yes</td></tr></table>
</td></tr>
<tr>
<tr class=b>
<td title='0x20704 = 132868'>0x20704</td>
<td>ColorBlurOn</td>
<td class=c>yes</td>
@ -1641,12 +1654,12 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<td>0 = No</td><td>&nbsp;&nbsp;</td>
<td>1 = Yes</td></tr></table>
</td></tr>
<tr class=b>
<tr>
<td title='0x20705 = 132869'>0x20705</td>
<td>DistortionCorrection</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20705.0 = 132869.0'>0x20705.0</td>
<td>DistortionCorrectionOn</td>
<td class=c>yes</td>
@ -1654,12 +1667,12 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<td>0 = No</td><td>&nbsp;&nbsp;</td>
<td>1 = Yes</td></tr></table>
</td></tr>
<tr class=b>
<tr>
<td title='0x20706 = 132870'>0x20706</td>
<td>DLOSetting</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20706.0 = 132870.0'>0x20706.0</td>
<td>DLOOn</td>
<td class=c>yes</td>
@ -1667,17 +1680,17 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<td>0 = No</td><td>&nbsp;&nbsp;</td>
<td>1 = Yes</td></tr></table>
</td></tr>
<tr class=b>
<tr>
<td title='0x20707 = 132871'>0x20707</td>
<td>ChromaticAberrationRed</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20708 = 132872'>0x20708</td>
<td>ChromaticAberrationBlue</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20709 = 132873'>0x20709</td>
<td>DistortionEffect</td>
<td class=c>yes</td>
@ -1686,7 +1699,7 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<br>2 = Emphasize Distance
<br>3 = Emphasize Periphery
<br>4 = Emphasize Center</span></td></tr>
<tr>
<tr class=b>
<td title='0x2070b = 132875'>0x2070b</td>
<td>DiffractionCorrectionOn</td>
<td class=c>yes</td>
@ -1694,61 +1707,86 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<td>0 = No</td><td>&nbsp;&nbsp;</td>
<td>1 = Yes</td></tr></table>
</td></tr>
<tr class=b>
<tr>
<td title='0x20900 = 133376'>0x20900</td>
<td>ColorHue</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20901 = 133377'>0x20901</td>
<td>SaturationAdj</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20910 = 133392'>0x20910</td>
<td>RedHSL</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20911 = 133393'>0x20911</td>
<td>OrangeHSL</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20912 = 133394'>0x20912</td>
<td>YellowHSL</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20913 = 133395'>0x20913</td>
<td>GreenHSL</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20914 = 133396'>0x20914</td>
<td>AquaHSL</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20915 = 133397'>0x20915</td>
<td>BlueHSL</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20916 = 133398'>0x20916</td>
<td>PurpleHSL</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x20917 = 133399'>0x20917</td>
<td>MagentaHSL</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x20a00 = 133632'>0x20a00</td>
<td>GammaInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='CanonVRD.html#GammaInfo'>CanonVRD GammaInfo Tags</a></td></tr>
<tr class=b>
<td title='0x20b10 = 133904'>0x20b10</td>
<td>DPRAWMicroadjustBackFront</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x20b12 = 133906'>0x20b12</td>
<td>DPRAWMicroadjustStrength</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x20b20 = 133920'>0x20b20</td>
<td>DPRAWBokehShift</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x20b21 = 133921'>0x20b21</td>
<td>DPRAWBokehShiftArea</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x20b30 = 133936'>0x20b30</td>
<td>DPRAWGhostingReductionArea</td>
<td class=c>yes</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x30101 = 196865'>0x30101</td>
<td>CropAspectRatio</td>
@ -1989,16 +2027,21 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<td class=c>int32s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='8 = 0x8'>8</td>
<td class=r title='7 = 0x7'>7</td>
<td>CropRotation</td>
<td class=c>double</td>
<td class=c>int32s</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='8 = 0x8'>8</td>
<td>CropAngle</td>
<td class=c>double</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='10 = 0xa'>10</td>
<td>CropOriginalWidth</td>
<td class=c>int32s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td class=r title='11 = 0xb'>11</td>
<td>CropOriginalHeight</td>
<td class=c>int32s</td>
@ -2036,7 +2079,7 @@ below by a decimal appended to the tag ID (.0, .1 or .2).</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Mar 14, 2018</i>
<br><i>Last revised Apr 23, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -45,8 +45,7 @@ values, may created via the <a href="../config.html">ExifTool configuration file
<tr class=b>
<td>AutoFocus</td>
<td class=c>no</td>
<td class=n>Nikon:PhaseDetectAF
<br>Nikon:ContrastDetectAF</td>
<td class=n>Nikon:FocusMode</td>
<td><span class=s>0 = Off
<br>1 = On</span></td></tr>
<tr>
@ -99,6 +98,13 @@ may be incorrect if the image has been resized)</span></span></td></tr>
<br>FlashBits</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>ContrastDetectAF</td>
<td class=c>no</td>
<td class=n>Nikon:FocusMode
<br>Nikon:AFDetectionMethod</td>
<td><span class=s>0 = Off
<br>1 = On</span></td></tr>
<tr>
<td>DOF</td>
<td class=c>no</td>
<td class=n>FocalLength
@ -111,26 +117,26 @@ may be incorrect if the image has been resized)</span></span></td></tr>
<br>FocusDistanceLower
<br>FocusDistanceUpper</td>
<td><span class=s><span class=n>(this value may be incorrect if the image has been resized)</span></span></td></tr>
<tr>
<tr class=b>
<td>DateCreated</td>
<td class=c>no</td>
<td class=n>Kodak:YearCreated
<br>Kodak:MonthDayCreated</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>DateTimeCreated</td>
<td class=c>no</td>
<td class=n>IPTC:DateCreated
<br>IPTC:TimeCreated</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>DateTimeOriginal</td>
<td class=c>no</td>
<td class=n>DateTimeCreated
<br>DateCreated
<br>TimeCreated</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>DateTimeOriginal</td>
<td class=c>no</td>
<td class=n>ID3:RecordingTime
@ -138,27 +144,27 @@ may be incorrect if the image has been resized)</span></span></td></tr>
<br>ID3:Date
<br>ID3:Time</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>DepthMapTiff</td>
<td class=c>no</td>
<td class=n>DepthMapData
<br>DepthMapWidth
<br>DepthMapHeight</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>DigitalCreationDateTime</td>
<td class=c>no</td>
<td class=n>IPTC:DigitalCreationDate
<br>IPTC:DigitalCreationTime</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>DigitalZoom</td>
<td class=c>no</td>
<td class=n>Canon:ZoomSourceWidth
<br>Canon:ZoomTargetWidth
<br>Canon:DigitalZoom</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>DriveMode</td>
<td class=c>no</td>
<td class=n>ContinuousDrive
@ -166,13 +172,13 @@ may be incorrect if the image has been resized)</span></span></td></tr>
<td><span class=s>0 = Continuous Shooting
<br>1 = Self-timer Operation
<br>2 = Single-frame Shooting</span></td></tr>
<tr>
<tr class=b>
<td>Duration</td>
<td class=c>no</td>
<td class=n>AIFF:SampleRate
<br>AIFF:NumSampleFrames</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>Duration</td>
<td class=c>no</td>
<td class=n>APE:SampleRate
@ -180,13 +186,13 @@ may be incorrect if the image has been resized)</span></span></td></tr>
<br>APE:BlocksPerFrame
<br>APE:FinalFrameBlocks</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>Duration</td>
<td class=c>no</td>
<td class=n>FLAC:SampleRate
<br>FLAC:TotalSamples</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>Duration</td>
<td class=c>no</td>
<td class=n>FileSize
@ -197,7 +203,7 @@ may be incorrect if the image has been resized)</span></span></td></tr>
<br>MPEG:SampleRate
<br>MPEG:MPEGAudioVersion</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>Duration</td>
<td class=c>no</td>
<td class=n>RIFF:FrameRate
@ -205,7 +211,7 @@ may be incorrect if the image has been resized)</span></span></td></tr>
<br>VideoFrameRate
<br>VideoFrameCount</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>Duration</td>
<td class=c>no</td>
<td class=n>RIFF:AvgBytesPerSec
@ -213,13 +219,13 @@ may be incorrect if the image has been resized)</span></span></td></tr>
<br>FrameCount
<br>VideoFrameCount</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>Duration</td>
<td class=c>no</td>
<td class=n>Vorbis:NominalBitrate
<br>FileSize</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>ExtenderStatus</td>
<td class=c>no</td>
<td class=n>Olympus:Extender
@ -231,7 +237,7 @@ an attempt to represent the actual status of the extender.)</span>
<br>0 = Not attached
<br>1 = Attached
<br>2 = Removed</span></td></tr>
<tr>
<tr class=b>
<td>FOV</td>
<td class=c>no</td>
<td class=n>FocalLength
@ -239,13 +245,13 @@ an attempt to represent the actual status of the extender.)</span>
<br>FocusDistance</td>
<td><span class=s><span class=n>(calculated for the long image dimension. This value may be incorrect for
fisheye lenses, or if the image has been resized)</span></span></td></tr>
<tr class=b>
<tr>
<td>FileNumber</td>
<td class=c>yes</td>
<td class=n>DirectoryIndex
<br>FileIndex</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>Flash</td>
<td class=c>yes</td>
<td class=n>XMP:FlashFired
@ -256,7 +262,7 @@ fisheye lenses, or if the image has been resized)</span></span></td></tr>
<br>XMP:Flash</td>
<td>--&gt; <a href='EXIF.html#Flash'>EXIF Flash Values</a>
<br><span class='n s'>(facilitates copying camera flash information between XMP and EXIF)</span></td></tr>
<tr class=b>
<tr>
<td>FlashType</td>
<td class=c>no</td>
<td class=n>FlashBits</td>
@ -264,25 +270,25 @@ fisheye lenses, or if the image has been resized)</span></span></td></tr>
manual mode)</span>
<br>0 = Built-In Flash
<br>1 = External</span></td></tr>
<tr>
<tr class=b>
<td>FocalLength35efl</td>
<td class=c>no</td>
<td class=n>FocalLength
<br>ScaleFactor35efl</td>
<td><span class=s><span class=n>(this value may be incorrect if the image has been resized)</span></span></td></tr>
<tr class=b>
<tr>
<td>FocusDistance</td>
<td class=c>no</td>
<td class=n>Sony:FocusPosition
<br>FocalLength</td>
<td><span class=s><span class=n>(distance in metres = FocusPosition * FocalLength / 1000)</span></span></td></tr>
<tr>
<tr class=b>
<td>FocusDistance2</td>
<td class=c>no</td>
<td class=n>Sony:FocusPosition2
<br>FocalLengthIn35mmFormat</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>GPSAltitude</td>
<td class=c>no</td>
<td class=n>GPS:GPSAltitude
@ -290,128 +296,128 @@ manual mode)</span>
<br>XMP:GPSAltitude
<br>XMP:GPSAltitudeRef</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>GPSAltitude</td>
<td class=c>no</td>
<td class=n>QuickTime:GPSCoordinates</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>GPSAltitude</td>
<td class=c>no</td>
<td class=n>QuickTime:LocationInformation</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>GPSAltitudeRef</td>
<td class=c>no</td>
<td class=n>QuickTime:GPSCoordinates</td>
<td><span class=s>0 = Above Sea Level
<br>1 = Below Sea Level</span></td></tr>
<tr class=b>
<tr>
<td>GPSAltitudeRef</td>
<td class=c>no</td>
<td class=n>QuickTime:LocationInformation</td>
<td><span class=s>0 = Above Sea Level
<br>1 = Below Sea Level</span></td></tr>
<tr>
<tr class=b>
<td>GPSDateTime</td>
<td class=c>no</td>
<td class=n>GPS:GPSDateStamp
<br>GPS:GPSTimeStamp</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>GPSDateTime</td>
<td class=c>no</td>
<td class=n>Parrot:GPSLatitude
<br>Main:CreateDate
<br>SampleTime</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>GPSDateTime</td>
<td class=c>no</td>
<td class=n>Sony:GPSDateStamp
<br>Sony:GPSTimeStamp</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>GPSDestLatitude</td>
<td class=c>no</td>
<td class=n>GPS:GPSDestLatitude
<br>GPS:GPSDestLatitudeRef</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>GPSDestLatitudeRef</td>
<td class=c>no</td>
<td class=n>XMP-exif:GPSDestLatitude</td>
<td><span class=s>&#39;N&#39; = North
<br>&#39;S&#39; = South</span></td></tr>
<tr class=b>
<tr>
<td>GPSDestLongitude</td>
<td class=c>no</td>
<td class=n>GPS:GPSDestLongitude
<br>GPS:GPSDestLongitudeRef</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>GPSDestLongitudeRef</td>
<td class=c>no</td>
<td class=n>XMP-exif:GPSDestLongitude</td>
<td><span class=s>&#39;E&#39; = East
<br>&#39;W&#39; = West</span></td></tr>
<tr class=b>
<tr>
<td>GPSLatitude</td>
<td class=c title=' / = Avoid'>yes/</td>
<td class=n>GPS:GPSLatitude
<br>GPS:GPSLatitudeRef</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>GPSLatitude</td>
<td class=c>no</td>
<td class=n>QuickTime:GPSCoordinates</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>GPSLatitude</td>
<td class=c>no</td>
<td class=n>QuickTime:LocationInformation</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>GPSLatitude</td>
<td class=c>no</td>
<td class=n>Sony:GPSLatitude
<br>Sony:GPSLatitudeRef</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>GPSLatitudeRef</td>
<td class=c>no</td>
<td class=n>XMP-exif:GPSLatitude</td>
<td><span class=s>&#39;N&#39; = North
<br>&#39;S&#39; = South</span></td></tr>
<tr>
<tr class=b>
<td>GPSLongitude</td>
<td class=c title=' / = Avoid'>yes/</td>
<td class=n>GPS:GPSLongitude
<br>GPS:GPSLongitudeRef</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>GPSLongitude</td>
<td class=c>no</td>
<td class=n>QuickTime:GPSCoordinates</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>GPSLongitude</td>
<td class=c>no</td>
<td class=n>QuickTime:LocationInformation</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>GPSLongitude</td>
<td class=c>no</td>
<td class=n>Sony:GPSLongitude
<br>Sony:GPSLongitudeRef</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>GPSLongitudeRef</td>
<td class=c>no</td>
<td class=n>XMP-exif:GPSLongitude</td>
<td><span class=s>&#39;E&#39; = East
<br>&#39;W&#39; = West</span></td></tr>
<tr class=b>
<tr>
<td>GPSPosition</td>
<td class=c title=' ! = Unsafe'>yes!</td>
<td class=n>GPSLatitude
@ -419,46 +425,46 @@ manual mode)</span>
<td><span class=s><span class=n>(when written, writes GPSLatitude, GPSLatitudeRef, GPSLongitude and
GPSLongitudeRef. This tag may be written using the same coordinate
format as provided by Google Maps when right-clicking on a location)</span></span></td></tr>
<tr>
<tr class=b>
<td>HiddenData</td>
<td class=c>no</td>
<td class=n>Sony:HiddenDataOffset
<br>Sony:HiddenDataLength</td>
<td><span class=s><span class=n>(hidden data in some Sony JPG and ARW images, extracted only if specifically
requested)</span></span></td></tr>
<tr class=b>
<tr>
<td>HyperfocalDistance</td>
<td class=c>no</td>
<td class=n>FocalLength
<br>Aperture
<br>CircleOfConfusion</td>
<td><span class=s><span class=n>(this value may be incorrect if the image has been resized)</span></span></td></tr>
<tr>
<tr class=b>
<td>IDCPreviewImage</td>
<td class=c>no</td>
<td class=n>IDCPreviewStart
<br>IDCPreviewLength</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>ISO</td>
<td class=c>no</td>
<td class=n>Canon:CameraISO
<br>Canon:BaseISO
<br>Canon:AutoISO</td>
<td><span class=s><span class=n>(use CameraISO if numerical, otherwise calculate as BaseISO * AutoISO / 100)</span></span></td></tr>
<tr>
<tr class=b>
<td>ImageHeight</td>
<td class=c>no</td>
<td class=n>IFD0:SensorTopBorder
<br>IFD0:SensorBottomBorder</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>ImageHeight</td>
<td class=c>no</td>
<td class=n>Main:PostScript:ImageData
<br>PostScript:BoundingBox</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>ImageSize</td>
<td class=c>no</td>
<td class=n>ImageWidth
@ -467,32 +473,32 @@ requested)</span></span></td></tr>
<br>ExifImageHeight
<br>RawImageCroppedSize</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>ImageWidth</td>
<td class=c>no</td>
<td class=n>IFD0:SensorLeftBorder
<br>IFD0:SensorRightBorder</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>ImageWidth</td>
<td class=c>no</td>
<td class=n>Main:PostScript:ImageData
<br>PostScript:BoundingBox</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>JpgFromRaw</td>
<td class=c>yes</td>
<td class=n>JpgFromRawStart
<br>JpgFromRawLength</td>
<td><span class=s><span class=n>(this tag is writable, and may be used to update existing embedded images,
but not create or delete them)</span></span></td></tr>
<tr>
<tr class=b>
<td>Lens</td>
<td class=c>no</td>
<td class=n>Canon:MinFocalLength
<br>Canon:MaxFocalLength</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>Lens35efl</td>
<td class=c>no</td>
<td class=n>Canon:MinFocalLength
@ -500,7 +506,7 @@ but not create or delete them)</span></span></td></tr>
<br>Lens
<br>ScaleFactor35efl</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>LensID</td>
<td class=c>no</td>
<td class=n>LensType
@ -519,7 +525,7 @@ but not create or delete them)</span></span></td></tr>
<td><span class=s><span class=n>(attempt to identify the actual lens from all lenses with a given LensType.
Applies only to LensType values with a lookup table. May be configured
by adding user-defined lenses)</span></span></td></tr>
<tr class=b>
<tr>
<td>LensID</td>
<td class=c>no</td>
<td class=n>LensModel
@ -527,7 +533,7 @@ by adding user-defined lenses)</span></span></td></tr>
<br>XMP-aux:LensID
<br>Make</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>LensID</td>
<td class=c>no</td>
<td class=n>Nikon:LensIDNumber
@ -539,12 +545,12 @@ by adding user-defined lenses)</span></span></td></tr>
<br>MCUVersion
<br>Nikon:LensType</td>
<td>--&gt; <a href='Nikon.html#LensID'>Nikon LensID Values</a></td></tr>
<tr class=b>
<tr>
<td>LensID</td>
<td class=c>no</td>
<td class=n>Ricoh:LensFirmware</td>
<td>--&gt; <a href='Ricoh.html#LensID'>Ricoh LensID Values</a></td></tr>
<tr>
<tr class=b>
<td>LensID</td>
<td class=c>no</td>
<td class=n>XMP-aux:LensID
@ -554,20 +560,20 @@ by adding user-defined lenses)</span></span></td></tr>
<br>LensModel
<br>MaxApertureValue</td>
<td><span class=s><span class=n>(attempt to convert numerical XMP-aux:LensID stored by Adobe applications)</span></span></td></tr>
<tr class=b>
<tr>
<td>LensSpec</td>
<td class=c>no</td>
<td class=n>Nikon:Lens
<br>Nikon:LensType</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>LensType</td>
<td class=c>no</td>
<td class=n>LensTypeMake
<br>LensTypeModel</td>
<td>--&gt; <a href='Olympus.html#LensType'>Olympus LensType Values</a>
<br><span class='n s'>(based on tags found in some Panasonic RW2 images)</span></td></tr>
<tr class=b>
<tr>
<td>LightValue</td>
<td class=c>no</td>
<td class=n>Aperture
@ -575,7 +581,7 @@ by adding user-defined lenses)</span></span></td></tr>
<br>ISO</td>
<td><span class=s><span class=n>(calculated LV = 2 * log2(Aperture) - log2(ShutterSpeed) - log2(ISO/100);
similar to exposure value but normalized to ISO 100)</span></span></td></tr>
<tr>
<tr class=b>
<td>MPImage</td>
<td class=c>no</td>
<td class=n>MPImageStart
@ -584,17 +590,17 @@ similar to exposure value but normalized to ISO 100)</span></span></td></tr>
<td><span class=s><span class=n>(the first MPF &quot;Large Thumbnail&quot; is extracted as PreviewImage, and the rest
of the embedded MPF images are extracted as MPImage#. The <a href="../ExifTool.html#ExtractEmbedded">ExtractEmbedded</a>
option may be used to extract information from these embedded images.)</span></span></td></tr>
<tr class=b>
<tr>
<td>Megapixels</td>
<td class=c>no</td>
<td class=n>ImageSize</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>OriginalDecisionData</td>
<td class=c title=' ! = Unsafe'>yes!</td>
<td class=n>OriginalDecisionDataOffset</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>OtherImage</td>
<td class=c>yes</td>
<td class=n>OtherImageStart
@ -603,11 +609,24 @@ option may be used to extract information from these embedded images.)</span></s
<br>OtherImageLength (1)</td>
<td><span class=s><span class=n>(this tag is writable, and may be used to update existing embedded images,
but not create or delete them)</span></span></td></tr>
<tr>
<tr class=b>
<td>PeakSpectralSensitivity</td>
<td class=c>no</td>
<td class=n>FLIR:PlanckB</td>
<td>&nbsp;</td></tr>
<tr>
<td>PhaseDetectAF</td>
<td class=c>no</td>
<td class=n>Nikon:FocusPointSchema
<br>Nikon:AFDetectionMethod</td>
<td><table class=cols><tr>
<td>0 = Off
<br>1 = On (51-point)
<br>2 = On (11-point)</td><td>&nbsp;&nbsp;</td>
<td>3 = On (39-point)
<br>7 = On (153-point)
<br>9 = On (105-point)</td></tr></table>
</td></tr>
<tr class=b>
<td>PreviewImage</td>
<td class=c>yes</td>
@ -630,6 +649,14 @@ but not create or delete them)</span></span></td></tr>
<br>PreviewImageHeight</td>
<td>&nbsp;</td></tr>
<tr>
<td>PreviewJXL</td>
<td class=c>no</td>
<td class=n>PreviewJXLStart
<br>PreviewJXLLength
<br>PreviewJXLStart (1)
<br>PreviewJXLLength (1)</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>RedBalance</td>
<td class=c>no</td>
<td class=n>WB_RGGBLevels
@ -644,37 +671,37 @@ but not create or delete them)</span></span></td></tr>
<br>WBRedLevel
<br>WBGreenLevel</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>RedEyeReduction</td>
<td class=c>no</td>
<td class=n>CanonFlashMode
<br>FlashBits</td>
<td><span class=s>0 = Off
<br>1 = On</span></td></tr>
<tr>
<tr class=b>
<td>RicohPitch</td>
<td class=c>no</td>
<td class=n>Ricoh:Accelerometer</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>RicohRoll</td>
<td class=c>no</td>
<td class=n>Ricoh:Accelerometer</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>Rotation</td>
<td class=c title=' ! = Unsafe'>yes!</td>
<td class=n>QuickTime:MatrixStructure
<br>QuickTime:HandlerType</td>
<td><span class=s><span class=n>(writing this tag updates QuickTime MatrixStructure for all tracks with a
non-zero image size)</span></span></td></tr>
<tr class=b>
<td><span class=s><span class=n>(degrees of clockwise camera rotation. Writing this tag updates QuickTime
MatrixStructure for all tracks with a non-zero image size)</span></span></td></tr>
<tr>
<td>RunTimeSincePowerUp</td>
<td class=c>no</td>
<td class=n>Apple:RunTimeValue
<br>Apple:RunTimeScale</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>ScaleFactor35efl</td>
<td class=c>no</td>
<td class=n>FocalLength
@ -695,56 +722,56 @@ non-zero image size)</span></span></td></tr>
<br>ImageHeight</td>
<td><span class=s><span class=n>(this value and any derived values may be incorrect if the image has been
resized)</span></span></td></tr>
<tr class=b>
<tr>
<td>ShootingMode</td>
<td class=c>no</td>
<td class=n>CanonExposureMode
<br>EasyMode
<br>BulbDuration</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>ShutterCurtainHack</td>
<td class=c>no</td>
<td class=n>FlashBits
<br>ShutterCurtainSync</td>
<td><span class=s>0 = 1st-curtain sync
<br>1 = 2nd-curtain sync</span></td></tr>
<tr class=b>
<tr>
<td>ShutterSpeed</td>
<td class=c>no</td>
<td class=n>ExposureTime
<br>ShutterSpeedValue
<br>BulbDuration</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>SingleShotDepthMapTiff</td>
<td class=c>no</td>
<td class=n>SingleShotDepthMap
<br>SegWidth
<br>SegHeight</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>SubSecCreateDate</td>
<td class=c>yes</td>
<td class=n>EXIF:CreateDate
<br>SubSecTimeDigitized
<br>OffsetTimeDigitized</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>SubSecDateTimeOriginal</td>
<td class=c>yes</td>
<td class=n>EXIF:DateTimeOriginal
<br>SubSecTimeOriginal
<br>OffsetTimeOriginal</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>SubSecModifyDate</td>
<td class=c>yes</td>
<td class=n>EXIF:ModifyDate
<br>SubSecTime
<br>OffsetTime</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>ThumbnailImage</td>
<td class=c>yes</td>
<td class=n>ThumbnailOffset
@ -753,7 +780,7 @@ resized)</span></span></td></tr>
only create a thumbnail in IFD1 of certain types of files. Note that for
this and other Composite embedded-image tags the family 0 and 1 groups match
those of the originating tags)</span></span></td></tr>
<tr class=b>
<tr>
<td>ThumbnailTIFF</td>
<td class=c>no</td>
<td class=n>SubfileType
@ -769,13 +796,13 @@ those of the originating tags)</span></span></td></tr>
<br>PlanarConfiguration
<br>Orientation</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>VolumeSize</td>
<td class=c>no</td>
<td class=n>ISO:VolumeBlockCount
<br>ISO:VolumeBlockSize</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>WB_RGBLevels</td>
<td class=c>no</td>
<td class=n>KDC_IFD:WhiteBalance
@ -787,7 +814,7 @@ those of the originating tags)</span></span></td></tr>
<br>WB_RGBLevels5
<br>WB_RGBLevelsShade</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>WB_RGBLevels</td>
<td class=c>no</td>
<td class=n>KodakIFD:WhiteBalance
@ -802,7 +829,7 @@ those of the originating tags)</span></span></td></tr>
<br>KodakIFD:ColorTemperature
<br>Kodak:WB_RGBLevels</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>WB_RGGBLevels</td>
<td class=c>no</td>
<td class=n>Canon:WhiteBalance
@ -817,13 +844,13 @@ those of the originating tags)</span></span></td></tr>
<br>WB_RGGBLevelsShade
<br>WB_RGGBLevelsKelvin</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>WB_RGGBLevels</td>
<td class=c>no</td>
<td class=n>WB_RGGBLevelsUncorrected
<br>WB_RGGBLevelsBlack</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>ZoomedPreviewImage</td>
<td class=c>no</td>
<td class=n>ZoomedPreviewStart
@ -833,7 +860,7 @@ those of the originating tags)</span></span></td></tr>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Dec 29, 2023</i>
<br><i>Last revised Mar 24, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -431,9 +431,567 @@ Phantom drones.</p>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Protobuf'>DJI Protobuf Tags</a></h2>
<p>Tags found in protobuf-format DJI djmd and dbgi timed metadata. The known
tags listed below are extracted by default, but unknown djmd tags may be
extracted as well by setting the Unknown option to 1, or 2 to also extract
unknown dbgi debug tags. Tag ID&#39;s are composed of the corresponding .proto
file name combined with the hierarchical protobuf field numbers.</p>
<p>ExifTool currently extracts timed GPS plus a few other tags from DJI devices
which use the following protocols: dvtm_AVATA2.proto (Avata 2),
dvtm_ac203.proto (Osmo Action 4), dvtm_ac204.proto (Osmo Action 5),
dvtm_wm265e.proto (Mavic 3), dvtm_pm320.proto (Matrice 30) and
dvtm_pm320.proto (Mini 4 Pro).</p>
<p>Note that with the protobuf format, numerical tags missing from the output
for a given protocol should be considered to have the default value of 0.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag&nbsp;ID</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>'Protocol'</td>
<td>Protocol</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_AVATA2_1-1-5'</td>
<td>SerialNumber</td>
<td class=c>no</td>
<td><span class=s><span class=n>(Avata 2)</span></span></td></tr>
<tr>
<td>'dvtm_AVATA2_1-1-10'</td>
<td>Model</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_AVATA2_2-2-3-1'</td>
<td>SerialNumber2</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_AVATA2_2-3'</td>
<td>FrameInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#FrameInfo'>DJI FrameInfo Tags</a></td></tr>
<tr class=b>
<td>'dvtm_AVATA2_3-1-2'</td>
<td>TimeStamp</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_AVATA2_3-2-2-1'</td>
<td>ISO</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_AVATA2_3-2-4-1'</td>
<td>ShutterSpeed</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_AVATA2_3-2-6-1'</td>
<td>ColorTemperature</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_AVATA2_3-2-10-1'</td>
<td>FNumber</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_AVATA2_3-4-3'</td>
<td>DroneInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#DroneInfo'>DJI DroneInfo Tags</a></td></tr>
<tr class=b>
<td>'dvtm_AVATA2_3-4-4-1'</td>
<td>GPSInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#GPSInfo'>DJI GPSInfo Tags</a></td></tr>
<tr>
<td>'dvtm_AVATA2_3-4-4-2'</td>
<td>AbsoluteAltitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_AVATA2_3-4-5-1'</td>
<td>RelativeAltitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_Mini4_Pro_1-1-5'</td>
<td>SerialNumber</td>
<td class=c>no</td>
<td><span class=s><span class=n>(Mini 4 Pro)</span></span></td></tr>
<tr class=b>
<td>'dvtm_Mini4_Pro_1-1-10'</td>
<td>Model</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_Mini4_Pro_2-3'</td>
<td>FrameInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#FrameInfo'>DJI FrameInfo Tags</a></td></tr>
<tr class=b>
<td>'dvtm_Mini4_Pro_3-2-7-1'</td>
<td>ISO</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_Mini4_Pro_3-3-3'</td>
<td>DroneInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#DroneInfo'>DJI DroneInfo Tags</a></td></tr>
<tr class=b>
<td>'dvtm_Mini4_Pro_3-3-4-1'</td>
<td>GPSInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#GPSInfo'>DJI GPSInfo Tags</a></td></tr>
<tr>
<td>'dvtm_Mini4_Pro_3-3-4-2'</td>
<td>AbsoluteAltitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_Mini4_Pro_3-3-5-1'</td>
<td>RelativeAltitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_Mini4_Pro_3-4-3'</td>
<td>GimbalInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#GimbalInfo'>DJI GimbalInfo Tags</a></td></tr>
<tr class=b>
<td>'dvtm_Mini4_Pro_3-2-10-1'</td>
<td>ShutterSpeed</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_Mini4_Pro_3-2-11-1'</td>
<td>FNumber</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_Mini4_Pro_3-2-32-1'</td>
<td>ColorTemperature</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_ac203_1-1-5'</td>
<td>SerialNumber</td>
<td class=c>no</td>
<td><span class=s><span class=n>(Osmo Action 4)</span></span></td></tr>
<tr class=b>
<td>'dvtm_ac203_1-1-10'</td>
<td>Model</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_ac203_2-3'</td>
<td>FrameInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#FrameInfo'>DJI FrameInfo Tags</a></td></tr>
<tr class=b>
<td>'dvtm_ac203_3-2-2-1'</td>
<td>ISO</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_ac203_3-2-4-1'</td>
<td>ShutterSpeed</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_ac203_3-2-6-1'</td>
<td>ColorTemperature</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_ac203_3-2-10-2'</td>
<td>AccelerometerX</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_ac203_3-2-10-3'</td>
<td>AccelerometerY</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_ac203_3-2-10-4'</td>
<td>AccelerometerZ</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_ac203_3-4-2-1'</td>
<td>GPSInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#GPSInfo'>DJI GPSInfo Tags</a></td></tr>
<tr>
<td>'dvtm_ac203_3-4-2-2'</td>
<td>GPSAltitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_ac203_3-4-2-6-1'</td>
<td>GPSDateTime</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_ac204_1-1-5'</td>
<td>SerialNumber</td>
<td class=c>no</td>
<td><span class=s><span class=n>(Osmo Action 5)</span></span></td></tr>
<tr class=b>
<td>'dvtm_ac204_1-1-10'</td>
<td>Model</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_ac204_2-3'</td>
<td>FrameInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#FrameInfo'>DJI FrameInfo Tags</a></td></tr>
<tr class=b>
<td>'dvtm_ac204_3-2-4-1'</td>
<td>ShutterSpeed</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_ac204_3-2-6-1'</td>
<td>ColorTemperature</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_ac204_3-2-10-2'</td>
<td>AccelerometerX</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_ac204_3-2-10-3'</td>
<td>AccelerometerY</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_ac204_3-2-10-4'</td>
<td>AccelerometerZ</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_ac204_3-4-2-1'</td>
<td>GPSInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#GPSInfo'>DJI GPSInfo Tags</a></td></tr>
<tr class=b>
<td>'dvtm_ac204_3-4-2-2'</td>
<td>GPSAltitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_ac204_3-4-2-6-1'</td>
<td>GPSDateTime</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_pm320_1-1-5'</td>
<td>SerialNumber</td>
<td class=c>no</td>
<td><span class=s><span class=n>(Matrice 30)</span></span></td></tr>
<tr>
<td>'dvtm_pm320_1-1-10'</td>
<td>Model</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_pm320_2-2'</td>
<td>FrameInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#FrameInfo'>DJI FrameInfo Tags</a></td></tr>
<tr>
<td>'dvtm_pm320_3-2-2-1'</td>
<td>ISO</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_pm320_3-2-3-1'</td>
<td>ShutterSpeed</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_pm320_3-2-4-1'</td>
<td>FNumber</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_pm320_3-2-6-1'</td>
<td>DigitalZoom</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_pm320_3-3-3'</td>
<td>DroneInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#DroneInfo'>DJI DroneInfo Tags</a></td></tr>
<tr class=b>
<td>'dvtm_pm320_3-3-4-1'</td>
<td>GPSInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#GPSInfo'>DJI GPSInfo Tags</a></td></tr>
<tr>
<td>'dvtm_pm320_3-3-4-2'</td>
<td>AbsoluteAltitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_pm320_3-3-5-1'</td>
<td>RelativeAltitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_pm320_3-4-3'</td>
<td>GimbalInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#GimbalInfo'>DJI GimbalInfo Tags</a></td></tr>
<tr class=b>
<td>'dvtm_wm265e_1-1-5'</td>
<td>SerialNumber</td>
<td class=c>no</td>
<td><span class=s><span class=n>(Mavic 3)</span></span></td></tr>
<tr>
<td>'dvtm_wm265e_1-1-10'</td>
<td>Model</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_wm265e_2-2'</td>
<td>FrameInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#FrameInfo'>DJI FrameInfo Tags</a></td></tr>
<tr>
<td>'dvtm_wm265e_3-2-2-1'</td>
<td>ISO</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_wm265e_3-2-3-1'</td>
<td>ShutterSpeed</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_wm265e_3-2-6-1'</td>
<td>DigitalZoom</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_wm265e_3-3-3'</td>
<td>DroneInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#DroneInfo'>DJI DroneInfo Tags</a></td></tr>
<tr>
<td>'dvtm_wm265e_3-3-4-1'</td>
<td>GPSInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#GPSInfo'>DJI GPSInfo Tags</a></td></tr>
<tr class=b>
<td>'dvtm_wm265e_3-3-4-2'</td>
<td>AbsoluteAltitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'dvtm_wm265e_3-3-5-1'</td>
<td>RelativeAltitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dvtm_wm265e_3-4-3'</td>
<td>GimbalInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='DJI.html#GimbalInfo'>DJI GimbalInfo Tags</a></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='FrameInfo'>DJI FrameInfo Tags</a></h2>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Field&nbsp;#</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='1 = 0x1'>1</td>
<td>FrameWidth</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='2 = 0x2'>2</td>
<td>FrameHeight</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='3 = 0x3'>3</td>
<td>FrameRate</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='DroneInfo'>DJI DroneInfo Tags</a></h2>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Field&nbsp;#</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='1 = 0x1'>1</td>
<td>DroneRoll</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='2 = 0x2'>2</td>
<td>DronePitch</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='3 = 0x3'>3</td>
<td>DroneYaw</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='GPSInfo'>DJI GPSInfo Tags</a></h2>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Field&nbsp;#</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='1 = 0x1'>1</td>
<td>CoordinateUnits</td>
<td class=c>no</td>
<td><span class=s><span class=n>(not extracted, but used internally to convert coordinates to degrees)</span></span></td></tr>
<tr class=b>
<td class=r title='2 = 0x2'>2</td>
<td>GPSLatitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='3 = 0x3'>3</td>
<td>GPSLongitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='GimbalInfo'>DJI GimbalInfo Tags</a></h2>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Field&nbsp;#</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='1 = 0x1'>1</td>
<td>GimbalPitch</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='2 = 0x2'>2</td>
<td>GimbalRoll</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='3 = 0x3'>3</td>
<td>GimbalYaw</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Glamour'>DJI Glamour Tags</a></h2>
<p>Glamour settings used by some DJI models.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag&nbsp;ID</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>'acne_spot_removal'</td>
<td>AcneSpotRemoval</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'beauty_enable'</td>
<td>BeautyEnable</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'blush'</td>
<td>Blush</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'dark_circle'</td>
<td>DarkCircle</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'eye_enlarge'</td>
<td>EyeEnlarge</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'eyebrows'</td>
<td>Eyebrows</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'face_slimming'</td>
<td>FaceSlimming</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'head_shrinking'</td>
<td>HeadShrinking</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'leg_longer'</td>
<td>LegLonger</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'lipstick'</td>
<td>Lipstick</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'mouth_beautify'</td>
<td>MouthModify</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'nose_slimming'</td>
<td>NoseSlimming</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'smoother'</td>
<td>Smoother</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'teeth_whitening'</td>
<td>TeethWhitening</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'whitening'</td>
<td>Whitening</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Nov 19, 2023</i>
<br><i>Last revised Mar 24, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -11,7 +11,8 @@
<p>
The main DNG tags are found in the EXIF table. The tables below define only
information found within structures of these main DNG tag values. See
<a href="http://www.adobe.com/products/dng/">http://www.adobe.com/products/dng/</a> for the official DNG specification.
<a href="https://helpx.adobe.com/camera-raw/digital-negative.html">https://helpx.adobe.com/camera-raw/digital-negative.html</a> for the official
DNG specification.
</p>
<h2><a name='AdobeData'>DNG AdobeData Tags</a></h2>
<p>This information is found in the &quot;Adobe&quot; DNGPrivateData.</p>
@ -369,7 +370,7 @@ information.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Oct 26, 2023</i>
<br><i>Last revised Jun 7, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -141,7 +141,7 @@
<br>3 = Logarithmic
<br>4 = Unspecified video
<br>5 = SMPTE 274M
<br>6 = ITU-R 704-4
<br>6 = ITU-R 709-4
<br>7 = ITU-R 601-5 system B or G (625)
<br>8 = ITU-R 601-5 system M (525)
<br>9 = Composite video (NTSC)
@ -168,7 +168,7 @@
<br>1 = Printing density
<br>4 = Unspecified video
<br>5 = SMPTE 274M
<br>6 = ITU-R 704-4
<br>6 = ITU-R 709-4
<br>7 = ITU-R 601-5 system B or G (625)
<br>8 = ITU-R 601-5 system M (525)
<br>9 = Composite video (NTSC)
@ -294,7 +294,7 @@
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Sep 22, 2021</i>
<br><i>Last revised May 21, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -236,174 +236,182 @@
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(EventEventTime)</span></span></td></tr>
<tr>
<td>EventEventType</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>EventFieldNotes</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>EventFieldNumber</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>EventHabitat</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>EventLatestDate</td>
<td class=c title=' _ = Flattened'>date_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>EventMonth</td>
<td class=c title=' _ = Flattened'>integer_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>EventParentEventID</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>EventSampleSizeUnit</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>EventSampleSizeValue</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>EventSamplingEffort</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>EventSamplingProtocol</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>EventStartDayOfYear</td>
<td class=c title=' _ = Flattened'>integer_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>EventVerbatimEventDate</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>EventYear</td>
<td class=c title=' _ = Flattened'>integer_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>FossilSpecimen</td>
<td class=c>struct</td>
<td>--&gt; <a href='DarwinCore.html#MaterialSample'>DarwinCore MaterialSample Struct</a></td></tr>
<tr>
<tr class=b>
<td>FossilSpecimenMaterialSampleID</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>GeologicalContext</td>
<td class=c>struct</td>
<td>--&gt; <a href='DarwinCore.html#GeologicalContext'>DarwinCore GeologicalContext Struct</a></td></tr>
<tr>
<tr class=b>
<td>GeologicalContextBed</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>EarliestAgeOrLowestStage</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(GeologicalContextEarliestAgeOrLowestStage)</span></span></td></tr>
<tr>
<tr class=b>
<td>EarliestEonOrLowestEonothem</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(GeologicalContextEarliestEonOrLowestEonothem)</span></span></td></tr>
<tr class=b>
<tr>
<td>EarliestEpochOrLowestSeries</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(GeologicalContextEarliestEpochOrLowestSeries)</span></span></td></tr>
<tr>
<tr class=b>
<td>EarliestEraOrLowestErathem</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(GeologicalContextEarliestEraOrLowestErathem)</span></span></td></tr>
<tr class=b>
<tr>
<td>EarliestPeriodOrLowestSystem</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(GeologicalContextEarliestPeriodOrLowestSystem)</span></span></td></tr>
<tr>
<tr class=b>
<td>GeologicalContextFormation</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>GeologicalContextID</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(GeologicalContextGeologicalContextID)</span></span></td></tr>
<tr>
<tr class=b>
<td>GeologicalContextGroup</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>HighestBiostratigraphicZone</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(GeologicalContextHighestBiostratigraphicZone)</span></span></td></tr>
<tr>
<tr class=b>
<td>LatestAgeOrHighestStage</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(GeologicalContextLatestAgeOrHighestStage)</span></span></td></tr>
<tr class=b>
<tr>
<td>LatestEonOrHighestEonothem</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(GeologicalContextLatestEonOrHighestEonothem)</span></span></td></tr>
<tr>
<tr class=b>
<td>LatestEpochOrHighestSeries</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(GeologicalContextLatestEpochOrHighestSeries)</span></span></td></tr>
<tr class=b>
<tr>
<td>LatestEraOrHighestErathem</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(GeologicalContextLatestEraOrHighestErathem)</span></span></td></tr>
<tr>
<tr class=b>
<td>LatestPeriodOrHighestSystem</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(GeologicalContextLatestPeriodOrHighestSystem)</span></span></td></tr>
<tr class=b>
<tr>
<td>LithostratigraphicTerms</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(GeologicalContextLithostratigraphicTerms)</span></span></td></tr>
<tr>
<tr class=b>
<td>LowestBiostratigraphicZone</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(GeologicalContextLowestBiostratigraphicZone)</span></span></td></tr>
<tr class=b>
<tr>
<td>GeologicalContextMember</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>HumanObservation</td>
<td class=c>struct</td>
<td>--&gt; <a href='DarwinCore.html#Event'>DarwinCore Event Struct</a></td></tr>
<tr class=b>
<tr>
<td>HumanObservationDay</td>
<td class=c title=' _ = Flattened'>integer_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>HumanObservationEarliestDate</td>
<td class=c title=' _ = Flattened'>date_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>HumanObservationEndDayOfYear</td>
<td class=c title=' _ = Flattened'>integer_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>HumanObservationEventDate</td>
<td class=c title=' _ = Flattened'>date_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>HumanObservationEventID</td>
<td class=c title=' / = Avoid
_ = Flattened'>string/_</td>
<td><span class=s><span class=n>(avoided in favor of XMP-iptcExt:EventID)</span></span></td></tr>
<tr>
<tr class=b>
<td>HumanObservationEventRemarks</td>
<td class=c title=' _ = Flattened'>lang-alt_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>HumanObservationEventTime</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>HumanObservationEventType</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<td>HumanObservationFieldNotes</td>
<td class=c title=' _ = Flattened'>string_</td>
@ -542,105 +550,113 @@
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<td>MachineObservationEventType</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>MachineObservationFieldNotes</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>MachineObservationFieldNumber</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>MachineObservationHabitat</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>MachineObservationLatestDate</td>
<td class=c title=' _ = Flattened'>date_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>MachineObservationMonth</td>
<td class=c title=' _ = Flattened'>integer_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>MachineObservationParentEventID</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>MachineObservationSampleSizeUnit</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>MachineObservationSampleSizeValue</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>MachineObservationSamplingEffort</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>MachineObservationSamplingProtocol</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>MachineObservationStartDayOfYear</td>
<td class=c title=' _ = Flattened'>integer_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>MachineObservationVerbatimEventDate</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>MachineObservationYear</td>
<td class=c title=' _ = Flattened'>integer_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>MaterialSample</td>
<td class=c>struct</td>
<td>--&gt; <a href='DarwinCore.html#MaterialSample'>DarwinCore MaterialSample Struct</a></td></tr>
<tr>
<tr class=b>
<td>MaterialSampleID</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(MaterialSampleMaterialSampleID)</span></span></td></tr>
<tr class=b>
<tr>
<td>MeasurementOrFact</td>
<td class=c>struct</td>
<td>--&gt; <a href='DarwinCore.html#MeasurementOrFact'>DarwinCore MeasurementOrFact Struct</a></td></tr>
<tr>
<tr class=b>
<td>MeasurementAccuracy</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(MeasurementOrFactMeasurementAccuracy)</span></span></td></tr>
<tr class=b>
<tr>
<td>MeasurementDeterminedBy</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(MeasurementOrFactMeasurementDeterminedBy)</span></span></td></tr>
<tr>
<tr class=b>
<td>MeasurementDeterminedDate</td>
<td class=c title=' _ = Flattened'>date_</td>
<td><span class=s><span class=n>(MeasurementOrFactMeasurementDeterminedDate)</span></span></td></tr>
<tr class=b>
<tr>
<td>MeasurementID</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(MeasurementOrFactMeasurementID)</span></span></td></tr>
<tr>
<tr class=b>
<td>MeasurementMethod</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(MeasurementOrFactMeasurementMethod)</span></span></td></tr>
<tr class=b>
<tr>
<td>MeasurementRemarks</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(MeasurementOrFactMeasurementRemarks)</span></span></td></tr>
<tr>
<tr class=b>
<td>MeasurementType</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(MeasurementOrFactMeasurementType)</span></span></td></tr>
<tr class=b>
<tr>
<td>MeasurementUnit</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(MeasurementOrFactMeasurementUnit)</span></span></td></tr>
<tr>
<tr class=b>
<td>MeasurementValue</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(MeasurementOrFactMeasurementValue)</span></span></td></tr>
<tr>
<td>ParentMeasurementID</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(MeasurementOrFactParentMeasurementID)</span></span></td></tr>
<tr class=b>
<td>Occurrence</td>
<td class=c>struct</td>
@ -670,97 +686,105 @@
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<td>OccurrenceCaste</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>OccurrenceCatalogNumber</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>OccurrenceDegreeOfEstablishment</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>OccurrenceDisposition</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>OccurrenceEstablishmentMeans</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>OccurrenceGeoreferenceVerificationStatus</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>OccurrenceIndividualCount</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>OccurrenceIndividualID</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>OccurrenceLifeStage</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>OccurrenceDetails</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(OccurrenceOccurrenceDetails)</span></span></td></tr>
<tr class=b>
<tr>
<td>OccurrenceID</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(OccurrenceOccurrenceID)</span></span></td></tr>
<tr>
<tr class=b>
<td>OccurrenceRemarks</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(OccurrenceOccurrenceRemarks)</span></span></td></tr>
<tr class=b>
<tr>
<td>OccurrenceStatus</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(OccurrenceOccurrenceStatus)</span></span></td></tr>
<tr>
<tr class=b>
<td>OccurrenceOrganismQuantity</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>OccurrenceOrganismQuantityType</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>OccurrenceOtherCatalogNumbers</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>OccurrencePathway</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>OccurrencePreparations</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>OccurrencePreviousIdentifications</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>OccurrenceRecordedBy</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>OccurrenceRecordedByID</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>OccurrenceRecordNumber</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>OccurrenceReproductiveCondition</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>OccurrenceSex</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<td>OccurrenceVitality</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>Organism</td>
<td class=c>struct</td>
@ -910,13 +934,21 @@
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<td>TaxonGenus</td>
<td>TaxonGenericName</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>TaxonGenus</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<td>TaxonHigherClassification</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>TaxonInfragenericEpithet</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<td>TaxonInfraspecificEpithet</td>
<td class=c title=' _ = Flattened'>string_</td>
@ -994,29 +1026,45 @@
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>TaxonSubFamily</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<td>TaxonSubgenus</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<td>TaxonConceptID</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(TaxonTaxonConceptID)</span></span></td></tr>
<tr class=b>
<td>TaxonID</td>
<td>TaxonSubTribe</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(TaxonTaxonID)</span></span></td></tr>
<td>&nbsp;</td></tr>
<tr>
<td>TaxonTaxonomicStatus</td>
<td>TaxonSuperFamily</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>TaxonConceptID</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(TaxonTaxonConceptID)</span></span></td></tr>
<tr>
<td>TaxonID</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(TaxonTaxonID)</span></span></td></tr>
<tr class=b>
<td>TaxonTaxonomicStatus</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr>
<td>TaxonRank</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(TaxonTaxonRank)</span></span></td></tr>
<tr>
<tr class=b>
<td>TaxonRemarks</td>
<td class=c title=' _ = Flattened'>string_</td>
<td><span class=s><span class=n>(TaxonTaxonRemarks)</span></span></td></tr>
<tr>
<td>TaxonTribe</td>
<td class=c title=' _ = Flattened'>string_</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>TaxonVerbatimTaxonRank</td>
<td class=c title=' _ = Flattened'>string_</td>
@ -1250,54 +1298,58 @@
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>EventType</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<td>FieldNotes</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>FieldNumber</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>Habitat</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>LatestDate</td>
<td class=c>date</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>Month</td>
<td class=c>integer</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>ParentEventID</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>SampleSizeUnit</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>SampleSizeValue</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>SamplingEffort</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>SamplingProtocol</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>StartDayOfYear</td>
<td class=c>integer</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>VerbatimEventDate</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>Year</td>
<td class=c>integer</td>
<td>&nbsp;</td></tr>
@ -1485,6 +1537,10 @@
<td>MeasurementValue</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>ParentMeasurementID</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Occurrence'>DarwinCore Occurrence Struct</a></h2>
@ -1518,97 +1574,105 @@
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<td>Caste</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CatalogNumber</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>DegreeOfEstablishment</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>Disposition</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>EstablishmentMeans</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>GeoreferenceVerificationStatus</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>IndividualCount</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>IndividualID</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>LifeStage</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>OccurrenceDetails</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>OccurrenceID</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>OccurrenceRemarks</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>OccurrenceStatus</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>OrganismQuantity</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>OrganismQuantityType</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>OtherCatalogNumbers</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>Pathway</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>Preparations</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>PreviousIdentifications</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>RecordNumber</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>RecordedBy</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>RecordedByID</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>ReproductiveCondition</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>Sex</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<td>Vitality</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Organism'>DarwinCore Organism Struct</a></h2>
@ -1766,13 +1830,21 @@
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>Genus</td>
<td>GenericName</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<td>Genus</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>HigherClassification</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<td>InfragenericEpithet</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>InfraspecificEpithet</td>
<td class=c>string</td>
@ -1850,29 +1922,45 @@
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<td>SubFamily</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>SubTribe</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<td>Subgenus</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>SuperFamily</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<td>TaxonConceptID</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>TaxonID</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>TaxonRank</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>TaxonRemarks</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>TaxonomicStatus</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>Tribe</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<td>VerbatimTaxonRank</td>
<td class=c>string</td>
@ -1885,7 +1973,7 @@
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jul 21, 2022</i>
<br><i>Last revised Mar 11, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -22,7 +22,9 @@ DLL libraries.</p>
<td>MachineType</td>
<td class=c>no</td>
<td><table class=cols><tr>
<td>0x14c = Intel 386 or later, and compatibles
<td>0x0 = Unknown
<br>0x1 = Target host
<br>0x14c = Intel 386 or later, and compatibles
<br>0x14d = Intel i860
<br>0x162 = MIPS R3000
<br>0x166 = MIPS little endian (R4000)
@ -32,10 +34,12 @@ DLL libraries.</p>
<br>0x184 = Alpha AXP
<br>0x1a2 = Hitachi SH3
<br>0x1a3 = Hitachi SH3 DSP
<br>0x1a4 = Hitachi SH3E
<br>0x1a6 = Hitachi SH4
<br>0x1a8 = Hitachi SH5
<br>0x1c0 = ARM little endian
<br>0x1c2 = Thumb
<br>0x1c4 = Thumb 2 little endian
<br>0x1d3 = Matsushita AM33
<br>0x1f0 = PowerPC little endian
<br>0x1f1 = PowerPC with floating point support
@ -45,10 +49,20 @@ DLL libraries.</p>
<br>0x284 = Alpha AXP 64-bit
<br>0x366 = MIPS with FPU
<br>0x466 = MIPS16 with FPU
<br>0x520 = Infineon Tricore
<br>0xcef = CEF
<br>0xebc = EFI Byte Code
<br>0x3a64 = Compiled Hybrid PE
<br>0x5032 = RISC-V 32-bit
<br>0x5064 = RISC-V 64-bit
<br>0x5128 = RISC-V 128-bit
<br>0x6232 = LoongArch 32-bit
<br>0x6264 = LoongArch 64-bit
<br>0x8664 = AMD AMD64
<br>0x9041 = Mitsubishi M32R little endian
<br>0xc0ee = clr pure MSIL</td></tr></table>
<br>0xaa64 = ARM64 little endian
<br>0xc0ee = clr pure MSIL
<br>0xec20 = Dotnet 0xEC20</td></tr></table>
</td></tr>
<tr class=b>
<td class=r title='2 = 0x2'>2</td>
@ -434,6 +448,73 @@ for the full list of Microsoft language codes.</p>
<td>&nbsp;</td><td>&nbsp;</td>
</tr></table></td></tr></table></blockquote>
<h2><a name='DebugRSDS'>EXE DebugRSDS Tags</a></h2>
<p>CodeView RSDS debug information found in some Windows EXE files.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index1</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='0 = 0x0'>0</td>
<td>PDBModifyDate</td>
<td class=c>no</td>
<td><span class=s><span class=n>(Taken from debug directory entry pointing to RSDS record.)</span></span></td></tr>
<tr class=b>
<td class=r title='20 = 0x14'>20</td>
<td>PDBAge</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='24 = 0x18'>24</td>
<td>PDBFileName</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='DebugNB10'>EXE DebugNB10 Tags</a></h2>
<p>CodeView NB10 debug information found in some Windows EXE files.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index1</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='0 = 0x0'>0</td>
<td>PDBModifyDate</td>
<td class=c>no</td>
<td><span class=s><span class=n>(Taken from debug directory entry pointing to NB10 record.)</span></span></td></tr>
<tr class=b>
<td class=r title='8 = 0x8'>8</td>
<td>PDBCreateDate</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='12 = 0xc'>12</td>
<td>PDBAge</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='16 = 0x10'>16</td>
<td>PDBFileName</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Misc'>EXE Misc Tags</a></h2>
<p>Miscellaneous CodeView debug information in Windows EXE files.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index1</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='12 = 0xc'>12</td>
<td>EXEFileName</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='MachO'>EXE MachO Tags</a></h2>
<p>Information extracted from Mach-O (Mac OS X) executable files and DYLIB
libraries.</p>
@ -807,7 +888,7 @@ libraries.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Nov 19, 2023</i>
<br><i>Last revised Jan 25, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -196,12 +196,13 @@ for the official EXIF 2.32 specification.
<td title='0x0111 = 273'>0x0111</td>
<td><u>StripOffsets</u>
<br>OtherImageStart
<br>PreviewJXLStart
<br>StripOffsets
<br>PreviewImageStart
<br>PreviewImageStart
<br>JpgFromRawStart</td>
<td class=c title=' * = Protected'>no<br>no<br>no<br>int32u*<br>int32u*<br>int32u*</td>
<td class=c>-<br>-<br>-<br>IFD0<br>All<br>SubIFD2</td>
<td class=c title=' * = Protected'>no<br>no<br>no<br>no<br>int32u*<br>int32u*<br>int32u*</td>
<td class=c>-<br>-<br>-<br>-<br>IFD0<br>All<br>SubIFD2</td>
<td><span class=s><span class=n>(called StripOffsets in most locations, but it is PreviewImageStart in IFD0
of CR2 images and various IFD&#39;s of DNG images except for SubIFD2 where it is
JpgFromRawStart)</span></span></td></tr>
@ -236,12 +237,13 @@ JpgFromRawStart)</span></span></td></tr>
<td title='0x0117 = 279'>0x0117</td>
<td><u>StripByteCounts</u>
<br>OtherImageLength
<br>PreviewJXLLength
<br>StripByteCounts
<br>PreviewImageLength
<br>PreviewImageLength
<br>JpgFromRawLength</td>
<td class=c title=' * = Protected'>no<br>no<br>no<br>int32u*<br>int32u*<br>int32u*</td>
<td class=c>-<br>-<br>-<br>IFD0<br>All<br>SubIFD2</td>
<td class=c title=' * = Protected'>no<br>no<br>no<br>no<br>int32u*<br>int32u*<br>int32u*</td>
<td class=c>-<br>-<br>-<br>-<br>IFD0<br>All<br>SubIFD2</td>
<td><span class=s><span class=n>(called StripByteCounts in most locations, but it is PreviewImageLength in
IFD0 of CR2 images and various IFD&#39;s of DNG images except for SubIFD2 where
it is JpgFromRawLength)</span></span></td></tr>
@ -2908,8 +2910,8 @@ by the EXIF spec.)</span></span></td></tr>
<td>&nbsp;</td></tr>
<tr>
<td title='0xa436 = 42038'>0xa436</td>
<td><u>Title</u></td>
<td class=c title=' / = Avoid'>string/</td>
<td><u>ImageTitle</u></td>
<td class=c>string</td>
<td class=c>ExifIFD</td>
<td>&nbsp;</td></tr>
<tr class=b>
@ -4076,7 +4078,7 @@ one; 2. Pixel width of segments except last; 3. Pixel width of last segment)</sp
<td class=c>IFD0</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0xcd3b = 52539'>0xcd3b</td>
<td title='0xcd3f = 52543'>0xcd3f</td>
<td>RGBTables</td>
<td class=c title=' ! = Unsafe'>undef!</td>
<td class=c>IFD0</td>
@ -4124,6 +4126,30 @@ one; 2. Pixel width of segments except last; 3. Pixel width of last segment)</sp
<td class=c>IFD0</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0xcd49 = 52553'>0xcd49</td>
<td>JXLDistance</td>
<td class=c>float</td>
<td class=c>IFD0</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0xcd4a = 52554'>0xcd4a</td>
<td>JXLEffort</td>
<td class=c>int32u</td>
<td class=c>IFD0</td>
<td><span class=s><span class=n>(values range from 1=low to 9=high)</span></span></td></tr>
<tr class=b>
<td title='0xcd4b = 52555'>0xcd4b</td>
<td>JXLDecodeSpeed</td>
<td class=c>int32u</td>
<td class=c>IFD0</td>
<td><span class=s><span class=n>(values range from 1=slow to 4=fast)</span></span></td></tr>
<tr>
<td title='0xcea1 = 52897'>0xcea1</td>
<td>SEAL</td>
<td class=c>string</td>
<td class=c>IFD0</td>
<td>--&gt; <a href='XMP.html#SEAL'>XMP SEAL Tags</a></td></tr>
<tr class=b>
<td title='0xea1c = 59932'>0xea1c</td>
<td>Padding</td>
<td class=c title=' ! = Unsafe'>undef!</td>
@ -4278,10 +4304,13 @@ these unless they already exist in the file)</span></span></td></tr>
</tr><tr><td class=r>34887</td><td>= ESRI Lerc</td>
</tr><tr><td class=r>34892</td><td>= Lossy JPEG</td>
</tr><tr><td class=r>34925</td><td>= LZMA2</td>
</tr><tr><td class=r>34926</td><td>= Zstd</td>
</tr><tr><td class=r>34927</td><td>= WebP</td>
</tr><tr><td class=r>34926</td><td>= Zstd (old)</td>
</tr><tr><td class=r>34927</td><td>= WebP (old)</td>
</tr><tr><td class=r>34933</td><td>= PNG</td>
</tr><tr><td class=r>34934</td><td>= JPEG XR</td>
</tr><tr><td class=r>50000</td><td>= Zstd</td>
</tr><tr><td class=r>50001</td><td>= WebP</td>
</tr><tr><td class=r>50002</td><td>= JPEG XL (old)</td>
</tr><tr><td class=r>52546</td><td>= JPEG XL</td>
</tr><tr><td class=r>65000</td><td>= Kodak DCR Compressed</td>
</tr><tr><td class=r>65535</td><td>= Pentax PEF Compressed</td>
@ -4354,7 +4383,7 @@ these unless they already exist in the file)</span></span></td></tr>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Dec 29, 2023</i>
<br><i>Last revised Jan 9, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -126,7 +126,7 @@ updated whenever any software, including ExifTool, reads the file)</span></span>
<td>FileAttributes</td>
<td class=c>no</td>
<td class=c>System</td>
<td><span class=s><span class=n>(extracted only if specifically requested or the <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a> API
<td><span class=s><span class=n>(extracted only if specifically requested or the API <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a>
option is set. 2 or 3 values: 0. File type, 1. Attribute bits, 2. Windows
attribute bits if Win32API::File is available)</span>
<br>[Value 0]</span><table class=cols><tr>
@ -170,13 +170,13 @@ attribute bits if Win32API::File is available)</span>
<td>FileBlockCount</td>
<td class=c>no</td>
<td class=c>System</td>
<td><span class=s><span class=n>(extracted only if specifically requested or the <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a> API
<td><span class=s><span class=n>(extracted only if specifically requested or the API <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a>
option is set)</span></span></td></tr>
<tr>
<td>FileBlockSize</td>
<td class=c>no</td>
<td class=c>System</td>
<td><span class=s><span class=n>(extracted only if specifically requested or the <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a> API
<td><span class=s><span class=n>(extracted only if specifically requested or the API <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a>
option is set)</span></span></td></tr>
<tr class=b>
<td>FileCreateDate</td>
@ -192,26 +192,26 @@ installed by typing <code>xcode-select --install</code> in the Terminal)</span><
<td>FileDeviceID</td>
<td class=c>no</td>
<td class=c>System</td>
<td><span class=s><span class=n>(extracted only if specifically requested or the <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a> API
<td><span class=s><span class=n>(extracted only if specifically requested or the API <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a>
option is set)</span></span></td></tr>
<tr class=b>
<td>FileDeviceNumber</td>
<td class=c>no</td>
<td class=c>System</td>
<td><span class=s><span class=n>(extracted only if specifically requested or the <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a> API
<td><span class=s><span class=n>(extracted only if specifically requested or the API <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a>
option is set)</span></span></td></tr>
<tr>
<td>FileGroupID</td>
<td class=c title=' ! = Unsafe'>yes!</td>
<td class=c>System</td>
<td><span class=s><span class=n>(extracted only if specifically requested or the <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a> API
<td><span class=s><span class=n>(extracted only if specifically requested or the API <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a>
option is set. Returns group ID number with the -n option, or name
otherwise. May be written with either group name or number)</span></span></td></tr>
<tr class=b>
<td>FileHardLinks</td>
<td class=c>no</td>
<td class=c>System</td>
<td><span class=s><span class=n>(extracted only if specifically requested or the <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a> API
<td><span class=s><span class=n>(extracted only if specifically requested or the API <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a>
option is set)</span></span></td></tr>
<tr>
<td>FileInodeChangeDate</td>
@ -223,7 +223,7 @@ Non-Windows systems only)</span></span></td></tr>
<td>FileInodeNumber</td>
<td class=c>no</td>
<td class=c>System</td>
<td><span class=s><span class=n>(extracted only if specifically requested or the <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a> API
<td><span class=s><span class=n>(extracted only if specifically requested or the API <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a>
option is set)</span></span></td></tr>
<tr>
<td>FileModifyDate</td>
@ -286,7 +286,7 @@ option)</span></span></td></tr>
<td>FileUserID</td>
<td class=c title=' ! = Unsafe'>yes!</td>
<td class=c>System</td>
<td><span class=s><span class=n>(extracted only if specifically requested or the <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a> API
<td><span class=s><span class=n>(extracted only if specifically requested or the API <a href="../ExifTool.html#SystemTags">SystemTags</a> or <a href="../ExifTool.html#RequestAll">RequestAll</a>
option is set. Returns user ID number with the -n option, or name
otherwise. May be written with either user name or number)</span></span></td></tr>
<tr class=b>
@ -300,6 +300,82 @@ EXIF to be rewritten only if the MakerNotes offset base was fixed, or &quot;All&
to rewrite all of these metadata types. Values are case insensitive, and
multiple values may be separated with commas, eg. <code>-ForceWrite=exif,xmp</code>)</span></span></td></tr>
<tr>
<td>Geolocate</td>
<td class=c>yes</td>
<td class=c>-</td>
<td><span class=s><span class=n>(this write-only tag may be used to write geolocation city, region, country
code and country based in input GPS coordinates, or to write GPS
coordinates based on geolocation name. See the
<a href="../geolocation.html#Write">Writing section of the Geolocation page</a> for
details. This tag is writable regardless of the API <a href="../ExifTool.html#Geolocation">Geolocation</a>
option setting)</span></span></td></tr>
<tr class=b>
<td>GeolocationBearing</td>
<td class=c>no</td>
<td class=c>ExifTool</td>
<td><span class=s><span class=n>(compass bearing to GeolocationCity center. Geolocation tags are
generated only if API <a href="../ExifTool.html#Geolocation">Geolocation</a> option is set)</span></span></td></tr>
<tr>
<td>GeolocationCity</td>
<td class=c>no</td>
<td class=c>ExifTool</td>
<td><span class=s><span class=n>(name of city nearest to the current GPS coordinates)</span></span></td></tr>
<tr class=b>
<td>GeolocationCountry</td>
<td class=c>no</td>
<td class=c>ExifTool</td>
<td><span class=s><span class=n>(geolocation country name)</span></span></td></tr>
<tr>
<td>GeolocationCountryCode</td>
<td class=c>no</td>
<td class=c>ExifTool</td>
<td><span class=s><span class=n>(geolocation country code)</span></span></td></tr>
<tr class=b>
<td>GeolocationDistance</td>
<td class=c>no</td>
<td class=c>ExifTool</td>
<td><span class=s><span class=n>(distance in km from current GPS to city)</span></span></td></tr>
<tr>
<td>GeolocationFeatureCode</td>
<td class=c>no</td>
<td class=c>ExifTool</td>
<td><span class=s><span class=n>(geolocation feature code, see <a href="http://www.geonames.org/export/codes.html#P">http://www.geonames.org/export/codes.html#P</a>)</span></span></td></tr>
<tr class=b>
<td>GeolocationFeatureType</td>
<td class=c>no</td>
<td class=c>ExifTool</td>
<td><span class=s><span class=n>(geolocation feature type)</span></span></td></tr>
<tr>
<td>GeolocationPopulation</td>
<td class=c>no</td>
<td class=c>ExifTool</td>
<td><span class=s><span class=n>(city population rounded to 2 significant digits)</span></span></td></tr>
<tr class=b>
<td>GeolocationPosition</td>
<td class=c>no</td>
<td class=c>ExifTool</td>
<td><span class=s><span class=n>(approximate GPS coordinates of city)</span></span></td></tr>
<tr>
<td>GeolocationRegion</td>
<td class=c>no</td>
<td class=c>ExifTool</td>
<td><span class=s><span class=n>(geolocation state, province or region)</span></span></td></tr>
<tr class=b>
<td>GeolocationSubregion</td>
<td class=c>no</td>
<td class=c>ExifTool</td>
<td><span class=s><span class=n>(geolocation county or subregion)</span></span></td></tr>
<tr>
<td>GeolocationTimeZone</td>
<td class=c>no</td>
<td class=c>ExifTool</td>
<td><span class=s><span class=n>(geolocation time zone ID)</span></span></td></tr>
<tr class=b>
<td>GeolocationWarning</td>
<td class=c>no</td>
<td class=c>ExifTool</td>
<td>&nbsp;</td></tr>
<tr>
<td>Geosync</td>
<td class=c>yes</td>
<td class=c>-</td>
@ -316,9 +392,10 @@ image files. See the <a href="../geotag.html">geotagging documentation</a> for
<td><span class=s><span class=n>(this write-only tag is used to define the GPS track log data or track log
file name. Currently supported track log formats are GPX, NMEA RMC/GGA/GLL,
KML, IGC, Garmin XML and TCX, Magellan PMGNTRK, Honeywell PTNTHPR, Winplus
Beacon text, and Bramor gEO log files. May be set to the special value of
&quot;DATETIMEONLY&quot; (all caps) to set GPS date/time tags if no input track points
are available. See <a href="../geotag.html">geotag.html</a> for details)</span></span></td></tr>
Beacon text, Bramor gEO, Google Takeout JSON, and CSV log files. May be set
to the special value of &quot;DATETIMEONLY&quot; (all caps) to set GPS date/time tags
if no input track points are available. See <a href="../geotag.html">geotag.html</a>
for details)</span></span></td></tr>
<tr>
<td>Geotime</td>
<td class=c>yes</td>
@ -456,32 +533,43 @@ API <a href="../ExifTool.html#RequestAll">RequestAll</a> option is set)</span></
<td class=c>File</td>
<td><span class=s><span class=n>(JPEG-format embedded preview image)</span></span></td></tr>
<tr>
<td>PreviewJXL</td>
<td class=c>no</td>
<td class=c>File</td>
<td><span class=s><span class=n>(JXL-format embedded preview image)</span></span></td></tr>
<tr class=b>
<td>PreviewPDF</td>
<td class=c>no</td>
<td class=c>File</td>
<td><span class=s><span class=n>(PDF-format embedded preview image)</span></span></td></tr>
<tr class=b>
<tr>
<td>PreviewPNG</td>
<td class=c>no</td>
<td class=c>File</td>
<td><span class=s><span class=n>(PNG-format embedded preview image)</span></span></td></tr>
<tr>
<tr class=b>
<td>PreviewTIFF</td>
<td class=c>no</td>
<td class=c>File</td>
<td><span class=s><span class=n>(TIFF-format embedded preview image)</span></span></td></tr>
<tr class=b>
<tr>
<td>PreviewWMF</td>
<td class=c>no</td>
<td class=c>File</td>
<td><span class=s><span class=n>(WMF-format embedded preview image)</span></span></td></tr>
<tr>
<tr class=b>
<td>ProcessingTime</td>
<td class=c>no</td>
<td class=c>ExifTool</td>
<td><span class=s><span class=n>(the clock time in seconds taken by ExifTool to extract information from this
file. Not generated unless specifically requested or the <a href="../ExifTool.html#RequestAll">RequestAll</a> API
file. Not generated unless specifically requested or the API <a href="../ExifTool.html#RequestAll">RequestAll</a>
option is set. Requires Time::HiRes)</span></span></td></tr>
<tr>
<td>RAFCompression</td>
<td class=c>no</td>
<td class=c>File</td>
<td><span class=s>0 = Uncompressed
<br>2 = Compressed</span></td></tr>
<tr class=b>
<td>RAFVersion</td>
<td class=c>no</td>
@ -532,7 +620,7 @@ to the console, but does not affect the file itself)</span></span></td></tr>
<td class=c title=' ! = Unsafe'>yes!</td>
<td class=c>File</td>
<td><span class=s><span class=n>(the full JPEG trailer data block. Extracted only if specifically requested
or the API RequestAll option is set to 3 or higher)</span></span></td></tr>
or the API <a href="../ExifTool.html#RequestAll">RequestAll</a> option is set to 3 or higher)</span></span></td></tr>
<tr>
<td>Validate</td>
<td class=c>no</td>
@ -551,7 +639,9 @@ feature focuses mainly on validation of EXIF/TIFF metadata)</span>
Use the -a or <a href="../ExifTool.html#Duplicates">Duplicates</a> option to see all warnings if more than one
occurred. Minor warnings may be ignored with the -m or <a href="../ExifTool.html#IgnoreMinorErrors">IgnoreMinorErrors</a>
option. Minor warnings with a capital &quot;M&quot; in the &quot;[Minor]&quot; designation
indicate that the processing is affected by ignoring the warning)</span></span></td></tr>
indicate that the processing is affected by ignoring the warning. Multiple
identical warnings are indicated by a count after the warning message, eg.
&quot;[x2]&quot; if the same warning occurred twice)</span></span></td></tr>
<tr>
<td>XML</td>
<td class=c>no</td>
@ -585,7 +675,7 @@ stream. Requires Win32API::File)</span></span></td></tr>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jan 30, 2024</i>
<br><i>Last revised Dec 12, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -1428,7 +1428,7 @@ in FLIR MP4 videos.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Sep 16, 2022</i>
<br><i>Last revised Mar 24, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -22,31 +22,36 @@ AFM, ACFM and AMFM font files.</p>
<td class=c>-</td>
<td>--&gt; <a href='Font.html#AFM'>Font AFM Tags</a></td></tr>
<tr class=b>
<td>'C2PA'</td>
<td>C2PA</td>
<td class=c>-</td>
<td>--&gt; <a href='Jpeg2000.html'>Jpeg2000 Tags</a></td></tr>
<tr>
<td>'PFM'</td>
<td>PFMHeader</td>
<td class=c>-</td>
<td>--&gt; <a href='Font.html#PFM'>Font PFM Tags</a></td></tr>
<tr>
<tr class=b>
<td>'PSInfo'</td>
<td>PSFontInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Font.html#PSInfo'>Font PSInfo Tags</a></td></tr>
<tr class=b>
<tr>
<td>'fontname'</td>
<td>FontName</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'name'</td>
<td>Name</td>
<td class=c>-</td>
<td>--&gt; <a href='Font.html#Name'>Font Name Tags</a></td></tr>
<tr class=b>
<tr>
<td>'numfonts'</td>
<td>NumFonts</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'postfont'</td>
<td>PostScriptFontName</td>
<td class=c>no</td>
@ -480,7 +485,7 @@ default language of &quot;en&quot;.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jan 31, 2012</i>
<br><i>Last revised Aug 28, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -379,7 +379,8 @@ the date of manufacture)</span></span></td></tr>
<td><span class=s>0 = n/a
<br>1 = Full-frame on GFX
<br>2 = Sports Finder Mode
<br>4 = Electronic Shutter 1.25x Crop</span></td></tr>
<br>4 = Electronic Shutter 1.25x Crop
<br>8 = Digital Tele-Conv</span></td></tr>
<tr class=b>
<td title='0x104e = 4174'>0x104e</td>
<td>ColorChromeFXBlue</td>
@ -396,6 +397,22 @@ the date of manufacture)</span></span></td></tr>
<br>2 = Electronic (long shutter speed)
<br>3 = Electronic Front Curtain</span></td></tr>
<tr class=b>
<td title='0x1051 = 4177'>0x1051</td>
<td>CropFlag</td>
<td class=c>int8u</td>
<td><span class=s><span class=n>(this tag exists only if the image was cropped, and is 0 for cropped JPG
image or 1 for a cropped RAF)</span></span></td></tr>
<tr>
<td title='0x1052 = 4178'>0x1052</td>
<td>CropTopLeft</td>
<td class=c>int32u</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x1053 = 4179'>0x1053</td>
<td>CropSize</td>
<td class=c>int32u</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x1100 = 4352'>0x1100</td>
<td>AutoBracketing</td>
<td class=c>int16u</td>
@ -408,32 +425,32 @@ the date of manufacture)</span></span></td></tr>
<br>1 = On
<br>2 = No flash &amp; flash
<br>6 = Pixel Shift</span></td></tr>
<tr>
<tr class=b>
<td title='0x1101 = 4353'>0x1101</td>
<td>SequenceNumber</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x1103 = 4355'>0x1103</td>
<td>DriveSettings</td>
<td class=c>-</td>
<td>--&gt; <a href='FujiFilm.html#DriveSettings'>FujiFilm DriveSettings Tags</a></td></tr>
<tr>
<tr class=b>
<td title='0x1105 = 4357'>0x1105</td>
<td>PixelShiftShots</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x1106 = 4358'>0x1106</td>
<td>PixelShiftOffset</td>
<td class=c>rational64s[2]</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x1153 = 4435'>0x1153</td>
<td>PanoramaAngle</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x1154 = 4436'>0x1154</td>
<td>PanoramaDirection</td>
<td class=c>int16u</td>
@ -441,7 +458,7 @@ the date of manufacture)</span></span></td></tr>
<br>2 = Up
<br>3 = Left
<br>4 = Down</span></td></tr>
<tr>
<tr class=b>
<td title='0x1201 = 4609'>0x1201</td>
<td>AdvancedFilter</td>
<td class=c>int32u</td>
@ -458,45 +475,46 @@ the date of manufacture)</span></span></td></tr>
<br>0x60005 = Partial Color Orange
<br>0x60006 = Partial Color Purple
<br>0x70000 = Soft Focus
<br>0x90000 = Low Key</td></tr></table>
<br>0x90000 = Low Key
<br>0x100000 = Light Leak</td></tr></table>
</td></tr>
<tr class=b>
<tr>
<td title='0x1210 = 4624'>0x1210</td>
<td>ColorMode</td>
<td class=c>int16u</td>
<td><span class=s>0x0 = Standard
<br>0x10 = Chrome
<br>0x30 = B &amp; W</span></td></tr>
<tr>
<tr class=b>
<td title='0x1300 = 4864'>0x1300</td>
<td>BlurWarning</td>
<td class=c>int16u</td>
<td><span class=s>0 = None
<br>1 = Blur Warning</span></td></tr>
<tr class=b>
<tr>
<td title='0x1301 = 4865'>0x1301</td>
<td>FocusWarning</td>
<td class=c>int16u</td>
<td><span class=s>0 = Good
<br>1 = Out of focus</span></td></tr>
<tr>
<tr class=b>
<td title='0x1302 = 4866'>0x1302</td>
<td>ExposureWarning</td>
<td class=c>int16u</td>
<td><span class=s>0 = Good
<br>1 = Bad exposure</span></td></tr>
<tr class=b>
<tr>
<td title='0x1304 = 4868'>0x1304</td>
<td>GEImageSize</td>
<td class=c>string</td>
<td><span class=s><span class=n>(GE models only)</span></span></td></tr>
<tr>
<tr class=b>
<td title='0x1400 = 5120'>0x1400</td>
<td>DynamicRange</td>
<td class=c>int16u</td>
<td><span class=s>1 = Standard
<br>3 = Wide</span></td></tr>
<tr class=b>
<tr>
<td title='0x1401 = 5121'>0x1401</td>
<td>FilmMode</td>
<td class=c>int16u</td>
@ -516,7 +534,7 @@ the date of manufacture)</span></span></td></tr>
<br>0x900 = Bleach Bypass
<br>0xa00 = Nostalgic Neg
<br>0xb00 = Reala ACE</span></td></tr>
<tr>
<tr class=b>
<td title='0x1402 = 5122'>0x1402</td>
<td>DynamicRangeSetting</td>
<td class=c>int16u</td>
@ -528,37 +546,37 @@ the date of manufacture)</span></span></td></tr>
<br>0x201 = Wide2 (400%)
<br>0x8000 = Film Simulation</td></tr></table>
</td></tr>
<tr class=b>
<tr>
<td title='0x1403 = 5123'>0x1403</td>
<td>DevelopmentDynamicRange</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x1404 = 5124'>0x1404</td>
<td>MinFocalLength</td>
<td class=c>rational64s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x1405 = 5125'>0x1405</td>
<td>MaxFocalLength</td>
<td class=c>rational64s</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x1406 = 5126'>0x1406</td>
<td>MaxApertureAtMinFocal</td>
<td class=c>rational64s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x1407 = 5127'>0x1407</td>
<td>MaxApertureAtMaxFocal</td>
<td class=c>rational64s</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x140b = 5131'>0x140b</td>
<td>AutoDynamicRange</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x1422 = 5154'>0x1422</td>
<td>ImageStabilization</td>
<td class=c>int16u[3]</td>
@ -573,7 +591,7 @@ the date of manufacture)</span></span></td></tr>
<br>0 = Off
<br>1 = On (mode 1, continuous)
<br>2 = On (mode 2, shooting only)</span></td></tr>
<tr>
<tr class=b>
<td title='0x1425 = 5157'>0x1425</td>
<td>SceneRecognition</td>
<td class=c>int16u</td>
@ -586,62 +604,62 @@ the date of manufacture)</span></span></td></tr>
<br>0x300 = Night Scene
<br>0x400 = Macro</td></tr></table>
</td></tr>
<tr class=b>
<tr>
<td title='0x1431 = 5169'>0x1431</td>
<td>Rating</td>
<td class=c>int32u</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x1436 = 5174'>0x1436</td>
<td>ImageGeneration</td>
<td class=c>int16u</td>
<td><span class=s>0 = Original Image
<br>1 = Re-developed from RAW</span></td></tr>
<tr class=b>
<tr>
<td title='0x1438 = 5176'>0x1438</td>
<td>ImageCount</td>
<td class=c>int16u</td>
<td><span class=s><span class=n>(may reset to 0 when new firmware is installed)</span></span></td></tr>
<tr>
<tr class=b>
<td title='0x1443 = 5187'>0x1443</td>
<td>DRangePriority</td>
<td class=c>int16u</td>
<td><span class=s>0 = Auto
<br>1 = Fixed</span></td></tr>
<tr class=b>
<tr>
<td title='0x1444 = 5188'>0x1444</td>
<td>DRangePriorityAuto</td>
<td class=c>int16u</td>
<td><span class=s>1 = Weak
<br>2 = Strong
<br>3 = Plus</span></td></tr>
<tr>
<tr class=b>
<td title='0x1445 = 5189'>0x1445</td>
<td>DRangePriorityFixed</td>
<td class=c>int16u</td>
<td><span class=s>1 = Weak
<br>2 = Strong</span></td></tr>
<tr class=b>
<tr>
<td title='0x1446 = 5190'>0x1446</td>
<td>FlickerReduction</td>
<td class=c>int32u</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x1447 = 5191'>0x1447</td>
<td>FujiModel</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x1448 = 5192'>0x1448</td>
<td>FujiModel2</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x144d = 5197'>0x144d</td>
<td>RollAngle</td>
<td class=c>rational64s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x3803 = 14339'>0x3803</td>
<td>VideoRecordingMode</td>
<td class=c>int32u</td>
@ -649,61 +667,61 @@ the date of manufacture)</span></span></td></tr>
<br>0x10 = F-log
<br>0x20 = HLG
<br>0x30 = F-log2</span></td></tr>
<tr>
<tr class=b>
<td title='0x3804 = 14340'>0x3804</td>
<td>PeripheralLighting</td>
<td class=c>int16u</td>
<td><span class=s>0 = Off
<br>1 = On</span></td></tr>
<tr class=b>
<tr>
<td title='0x3806 = 14342'>0x3806</td>
<td>VideoCompression</td>
<td class=c>int16u</td>
<td><span class=s>1 = Log GOP
<br>2 = All Intra</span></td></tr>
<tr>
<tr class=b>
<td title='0x3820 = 14368'>0x3820</td>
<td>FrameRate</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x3821 = 14369'>0x3821</td>
<td>FrameWidth</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x3822 = 14370'>0x3822</td>
<td>FrameHeight</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x3824 = 14372'>0x3824</td>
<td>FullHDHighSpeedRec</td>
<td class=c>int32u</td>
<td><span class=s>1 = Off
<br>2 = On</span></td></tr>
<tr>
<tr class=b>
<td title='0x4005 = 16389'>0x4005</td>
<td>FaceElementSelected</td>
<td class=c>int16u[4]</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x4100 = 16640'>0x4100</td>
<td>FacesDetected</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x4103 = 16643'>0x4103</td>
<td>FacePositions</td>
<td class=c>int16u[n]</td>
<td><span class=s><span class=n>(left, top, right and bottom coordinates in full-sized image for each face
detected)</span></span></td></tr>
<tr class=b>
<tr>
<td title='0x4200 = 16896'>0x4200</td>
<td>NumFaceElements</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x4201 = 16897'>0x4201</td>
<td>FaceElementTypes</td>
<td class=c>int8u[n]</td>
@ -732,33 +750,33 @@ detected)</span></span></td></tr>
<br>28 = Animal Head (28)
<br>29 = Animal Body (29)</td></tr></table>
</td></tr>
<tr class=b>
<tr>
<td title='0x4203 = 16899'>0x4203</td>
<td>FaceElementPositions</td>
<td class=c>int16u[n]</td>
<td><span class=s><span class=n>(left, top, right and bottom coordinates in full-sized image for each face
element)</span></span></td></tr>
<tr>
<tr class=b>
<td title='0x4282 = 17026'>0x4282</td>
<td>FaceRecInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='FujiFilm.html#FaceRecInfo'>FujiFilm FaceRecInfo Tags</a></td></tr>
<tr class=b>
<tr>
<td title='0x8000 = 32768'>0x8000</td>
<td>FileSource</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x8002 = 32770'>0x8002</td>
<td>OrderNumber</td>
<td class=c>int32u</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x8003 = 32771'>0x8003</td>
<td>FrameNumber</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0xb211 = 45585'>0xb211</td>
<td>Parallax</td>
<td class=c>rational64s</td>
@ -826,7 +844,7 @@ element)</span></span></td></tr>
<td class=r title='0 = 0x0'>0.5</td>
<td>AFAreaZoneSize</td>
<td class=c>int32u</td>
<td><span class=s>[val &gt;&gt; 16 &amp; 0xf]
<td><span class=s>[val &gt;&gt; 16 &amp; 0xff]
<br>0 = n/a</span></td></tr>
</table></td></tr></table></blockquote>
@ -1008,6 +1026,27 @@ element)</span></span></td></tr>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='RAFHeader'>FujiFilm RAFHeader Tags</a></h2>
<p>Tags extracted from the header of RAF images.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index1</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='60 = 0x3c'>60</td>
<td>RAFVersion</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='108 = 0x6c'>108</td>
<td>RAFCompression</td>
<td class=c>no</td>
<td><span class=s>0 = Uncompressed
<br>2 = Lossless
<br>3 = Lossy</span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='RAF'>FujiFilm RAF Tags</a></h2>
<p>FujiFilm RAF images contain meta information stored in a proprietary
FujiFilm RAF format, as well as EXIF information stored inside an embedded
@ -1039,81 +1078,97 @@ RAF-format information.</p>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x0117 = 279'>0x0117</td>
<td>RawZoomActive</td>
<td class=c>no</td>
<td><span class=s>0 = No
<br>1 = Yes</span></td></tr>
<tr class=b>
<td title='0x0118 = 280'>0x0118</td>
<td>RawZoomTopLeft</td>
<td class=c>no</td>
<td><span class=s><span class=n>(relative to RawCroppedImageSize)</span></span></td></tr>
<tr>
<td title='0x0119 = 281'>0x0119</td>
<td>RawZoomSize</td>
<td class=c>no</td>
<td><span class=s><span class=n>(relative to RawCroppedImageSize)</span></span></td></tr>
<tr class=b>
<td title='0x0121 = 289'>0x0121</td>
<td>RawImageSize</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x0130 = 304'>0x0130</td>
<td>FujiLayout</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x0131 = 305'>0x0131</td>
<td>XTransLayout</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x2000 = 8192'>0x2000</td>
<td>WB_GRGBLevelsAuto</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x2100 = 8448'>0x2100</td>
<td>WB_GRGBLevelsDaylight</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x2200 = 8704'>0x2200</td>
<td>WB_GRGBLevelsCloudy</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x2300 = 8960'>0x2300</td>
<td>WB_GRGBLevelsDaylightFluor</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x2301 = 8961'>0x2301</td>
<td>WB_GRGBLevelsDayWhiteFluor</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x2302 = 8962'>0x2302</td>
<td>WB_GRGBLevelsWhiteFluorescent</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x2310 = 8976'>0x2310</td>
<td>WB_GRGBLevelsWarmWhiteFluor</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x2311 = 8977'>0x2311</td>
<td>WB_GRGBLevelsLivingRoomWarmWhiteFluor</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x2400 = 9216'>0x2400</td>
<td>WB_GRGBLevelsTungsten</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x2ff0 = 12272'>0x2ff0</td>
<td>WB_GRGBLevels</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x9200 = 37376'>0x9200</td>
<td>RelativeExposure</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x9650 = 38480'>0x9650</td>
<td>RawExposureBias</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0xc000 = 49152'>0xc000</td>
<td>RAFData</td>
<td class=c>-</td>
@ -1304,7 +1359,7 @@ group name for these tags is &quot;M-RAW&quot;.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Dec 21, 2023</i>
<br><i>Last revised May 22, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -190,7 +190,7 @@ specification.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Nov 19, 2023</i>
<br><i>Last revised Nov 8, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

559
html/TagNames/GM.html Normal file
View File

@ -0,0 +1,559 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- (this file generated automatically by Image::ExifTool::BuildTagLookup) -->
<head>
<title>GM Tags</title>
<link rel=stylesheet type='text/css' href='style.css' title='Style'>
</head>
<body>
<h2 class=top>GM Tags</h2>
<p>
These tags are extracted from GM/Cosworth PDR (Performance Data Recorder)
information found in videos from General Motors cars such as Corvette and
Camero.</p>
<p>Use the API <a href="../ExifTool.html#PrintCSV">PrintCSV</a> option to output all timed
PDR data in CSV format at greatly increased speed and with much lower memory
usage. This option prints the numerical values for each channel in CSV
format, suitable for import into RaceRender. In this output, the gear
numbers for Neutral and Reverse are changed to -1 and -100 respectively for
compatibility with RaceRender.
</p>
<h2><a name='marl'>GM marl Tags</a></h2>
<p>Tags extracted from the &#39;ctbx&#39; &#39;marl&#39; (Marlin) box of timed PDR metadata
from GM cars. Use the -ee (<a href="../ExifTool.html#ExtractEmbedded">API ExtractEmbedded</a>) option to extract this
information, or the <a href="../ExifTool.html#PrintCSV">API PrintCSV</a> option to output in CSV format.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>ABSActive</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>AccelPos</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>BatteryVoltage</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>Beacon</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>BoostPressureInd</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>BrakePos</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>CPUFree</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CPUIO</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>CPUIRQ</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CPUSystem</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>CPUUser</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>ClutchPos</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>CoolantTemp</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CornerExitSetting</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>DiskReadOperations</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>DiskReadRate</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>DiskReadTime</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>DiskWriteOperations</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>DiskWriteRate</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>DiskWriteTime</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>Distance</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>DriverPerformanceMode</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>EngineSpeedRequest</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>EngineTorqureReq</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>FuelCapacity</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>FuelLevel</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>GPSAltitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>GPSDateTime</td>
<td class=c>no</td>
<td><span class=s><span class=n>(generated from the TimeStamp only if specifically requested)</span></span></td></tr>
<tr>
<td>GPSFix</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>GPSLatitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>GPSLongitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>GPSTrack</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>Gear</td>
<td class=c>no</td>
<td><span class=s><span class=n>(in the PrintCSV output, the value for Neutral is set to -1, and Reverse to
-100 for compatibility with RaceRender)</span></span><table class=cols><tr>
<td>1 = 1
<br>2 = 2
<br>3 = 3
<br>4 = 4</td><td>&nbsp;&nbsp;</td>
<td>5 = 5
<br>6 = 6
<br>13 = N
<br>14 = R</td></tr></table>
</td></tr>
<tr class=b>
<td>InfotainOpMode</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>IntakeAirTemperature</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>IntakeBoostPressure</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>LFTyrePressure</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>LFTyreTemp</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>LRTyrePressure</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>LRTyreTemp</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>LateralAcceleration</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>LongitudinalAcceleration</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>OilPressure</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>OilTemp</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>OutsideAirTemperature</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>RFTyrePressure</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>RFTyreTemp</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>RPM</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>RRTyrePressure</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>RRTyreTemp</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>RecordingEventOdometer</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>Speed</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>SpeedControlResponse</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>SpeedRequestIntervention</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>Steering1Switch</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>Steering2Switch</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>SteeringAngle</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>SuspensionDisplacementLeftFront</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>SuspensionDisplacementLeftRear</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>SuspensionDisplacementRightFront</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>SuspensionDisplacementRightRear</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>SystemBackupPowerEnabled</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>SystemBackupPowerMode</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>SystemPowerMode</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>TimeStamp</td>
<td class=c>no</td>
<td><span class=s><span class=n>(the numerical value is seconds since start of video, but the print
conversion adds StartTime to provide a date/time value. Extracted as
GPSDateTime if requested)</span></span></td></tr>
<tr class=b>
<td>TractionControlActive</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>TransOilTemp</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>TransportStorageMode</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>ValetMode</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>VehicleStabilityActive</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>VerticalAcceleration</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>WheelspeedLeftDriven</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>WheelspeedLeftNon-Driven</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>WheelspeedRightDriven</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>WheelspeedRightNon-Driven</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>YawRate</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='mrld'>GM mrld Tags</a></h2>
<p>The Marlin dictionary. Only one channel is listed but all available
channels are extracted. Use the -struct (<a href="../ExifTool.html#Struct">API Struct</a>) option to extract the
channel information as structures.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>Channel01</td>
<td class=c>struct</td>
<td>--&gt; <a href='GM.html#Channel'>GM Channel Struct</a></td></tr>
<tr class=b>
<td>Channel01Description</td>
<td class=c title=' _ = Flattened'>no_</td>
<td><span class=s><span class=n>(channel description)</span></span></td></tr>
<tr>
<td>Channel01DispMax</td>
<td class=c title=' _ = Flattened'>no_</td>
<td><span class=s><span class=n>(displayed value maximum)</span></span></td></tr>
<tr class=b>
<td>Channel01DispMin</td>
<td class=c title=' _ = Flattened'>no_</td>
<td><span class=s><span class=n>(displayed value minimum)</span></span></td></tr>
<tr>
<td>Channel01Flags</td>
<td class=c title=' _ = Flattened'>no_</td>
<td><span class=s><span class=n>(channel flags)</span></span></td></tr>
<tr class=b>
<td>Channel01ID</td>
<td class=c title=' _ = Flattened'>no_</td>
<td><span class=s><span class=n>(channel ID number)</span></span></td></tr>
<tr>
<td>Channel01Interval</td>
<td class=c title=' _ = Flattened'>no_</td>
<td><span class=s><span class=n>(measurement interval)</span></span></td></tr>
<tr class=b>
<td>Channel01Max</td>
<td class=c title=' _ = Flattened'>no_</td>
<td><span class=s><span class=n>(raw value maximum)</span></span></td></tr>
<tr>
<td>Channel01Min</td>
<td class=c title=' _ = Flattened'>no_</td>
<td><span class=s><span class=n>(raw value minimum)</span></span></td></tr>
<tr class=b>
<td>Channel01Multiplier</td>
<td class=c title=' _ = Flattened'>no_</td>
<td><span class=s><span class=n>(multiplier for raw value)</span></span></td></tr>
<tr>
<td>Channel01Name</td>
<td class=c title=' _ = Flattened'>no_</td>
<td><span class=s><span class=n>(channel name)</span></span></td></tr>
<tr class=b>
<td>Channel01Num</td>
<td class=c title=' _ = Flattened'>no_</td>
<td><span class=s><span class=n>(units ID number)</span></span></td></tr>
<tr>
<td>Channel01Offset</td>
<td class=c title=' _ = Flattened'>no_</td>
<td><span class=s><span class=n>(offset for scaled value)</span></span></td></tr>
<tr class=b>
<td>Channel01Type</td>
<td class=c title=' _ = Flattened'>no_</td>
<td><span class=s><span class=n>(measurement type)</span></span></td></tr>
<tr>
<td>Channel01Units</td>
<td class=c title=' _ = Flattened'>no_</td>
<td><span class=s><span class=n>(units string)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Channel'>GM Channel Struct</a></h2>
<p>Information stored for each channel in the Marlin dictionary.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Field Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>ID</td>
<td class=c>no</td>
<td><span class=s><span class=n>(channel ID number)</span></span></td></tr>
<tr class=b>
<td>Type</td>
<td class=c>no</td>
<td><span class=s><span class=n>(measurement type)</span></span></td></tr>
<tr>
<td>Num</td>
<td class=c>no</td>
<td><span class=s><span class=n>(units ID number)</span></span></td></tr>
<tr class=b>
<td>Units</td>
<td class=c>no</td>
<td><span class=s><span class=n>(units string)</span></span></td></tr>
<tr>
<td>Flags</td>
<td class=c>no</td>
<td><span class=s><span class=n>(channel flags)</span></span></td></tr>
<tr class=b>
<td>Interval</td>
<td class=c>no</td>
<td><span class=s><span class=n>(measurement interval)</span></span></td></tr>
<tr>
<td>Min</td>
<td class=c>no</td>
<td><span class=s><span class=n>(raw value minimum)</span></span></td></tr>
<tr class=b>
<td>Max</td>
<td class=c>no</td>
<td><span class=s><span class=n>(raw value maximum)</span></span></td></tr>
<tr>
<td>DispMin</td>
<td class=c>no</td>
<td><span class=s><span class=n>(displayed value minimum)</span></span></td></tr>
<tr class=b>
<td>DispMax</td>
<td class=c>no</td>
<td><span class=s><span class=n>(displayed value maximum)</span></span></td></tr>
<tr>
<td>Multiplier</td>
<td class=c>no</td>
<td><span class=s><span class=n>(multiplier for raw value)</span></span></td></tr>
<tr class=b>
<td>Offset</td>
<td class=c>no</td>
<td><span class=s><span class=n>(offset for scaled value)</span></span></td></tr>
<tr>
<td>Name</td>
<td class=c>no</td>
<td><span class=s><span class=n>(channel name)</span></span></td></tr>
<tr class=b>
<td>Description</td>
<td class=c>no</td>
<td><span class=s><span class=n>(channel description)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='mrlh'>GM mrlh Tags</a></h2>
<p>The Marlin PDR header.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index1</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='0 = 0x0'>0</td>
<td>MarlinDataVersion</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='mrlv'>GM mrlv Tags</a></h2>
<p>Tags found in the &#39;mrlv&#39; (Marlin values) box.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag&nbsp;ID</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>'date'</td>
<td>Date1</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'lang'</td>
<td>Language</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'ldat'</td>
<td>Date2</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'ltim'</td>
<td>Time2</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'swvs'</td>
<td>SoftwareVersion</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'time'</td>
<td>Time1</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'tstm'</td>
<td>StartTime</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'unit'</td>
<td>Units</td>
<td class=c>no</td>
<td><span class=s>&#39;usim&#39; = U.S. Imperial</span></td></tr>
<tr>
<td>'zone'</td>
<td>TimeZone</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Apr 18, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -75,7 +75,9 @@ longitudes or negative for west, or a string containing E, East, W or West)</spa
<td><span class=s><span class=n>(ExifTool will also accept number when writing this tag, with negative
numbers indicating below sea level)</span>
<br>0 = Above Sea Level
<br>1 = Below Sea Level</span></td></tr>
<br>1 = Below Sea Level
<br>2 = Positive Sea Level (sea-level ref)
<br>3 = Negative Sea Level (sea-level ref)</span></td></tr>
<tr>
<td title='0x0006 = 6'>0x0006</td>
<td>GPSAltitude</td>
@ -225,7 +227,7 @@ UTC if time includes a timezone. Format is YYYY:mm:dd)</span></span></td></tr>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Mar 17, 2021</i>
<br><i>Last revised Mar 3, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -25,15 +25,35 @@ let me know if you discover the meaning of any of these unknown tags. See
<td class=c>no</td>
<td><span class=s><span class=n>(dBFS)</span></span></td></tr>
<tr class=b>
<td>'ABSC'</td>
<td>AutoBoostScore</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'ACCL'</td>
<td>Accelerometer</td>
<td class=c>no</td>
<td><span class=s><span class=n>(accelerator readings in m/s2)</span></span></td></tr>
<tr>
<tr class=b>
<td>'ALLD'</td>
<td>AutoLowLightDuration</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'APTO'</td>
<td>AudioProtuneOption</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'ARUW'</td>
<td>AspectRatioUnwarped</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'ARWA'</td>
<td>AspectRatioWarped</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'ATTD'</td>
<td>Attitude</td>
@ -45,30 +65,73 @@ let me know if you discover the meaning of any of these unknown tags. See
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'AUBT'</td>
<td>AudioBlueTooth</td>
<td class=c>no</td>
<td><span class=s>&#39;N&#39; = No
<br>&#39;Y&#39; = Yes</span></td></tr>
<tr>
<td>'AUDO'</td>
<td>AudioSetting</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'AUPT'</td>
<td>AutoProtune</td>
<td class=c>no</td>
<td><span class=s>&#39;N&#39; = No
<br>&#39;Y&#39; = Yes</span></td></tr>
<tr>
<td>'BITR'</td>
<td>BitrateSetting</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'BPOS'</td>
<td>Controller?</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'CASN'</td>
<td>CameraSerialNumber</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'CDAT'</td>
<td>CreationDate</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'CDTM'</td>
<td>CaptureDelayTimer</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'CLDP'</td>
<td>ClassificationDataPresent</td>
<td class=c>no</td>
<td><span class=s>&#39;N&#39; = No
<br>&#39;Y&#39; = Yes</span></td></tr>
<tr>
<td>'CORI'</td>
<td>CameraOrientation</td>
<td class=c>no</td>
<td><span class=s><span class=n>(quaternions 0-1)</span></span></td></tr>
<tr class=b>
<td>'CPIN'</td>
<td>ChapterNumber</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'CSEN'</td>
<td>CoyoteSense</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'CTRL'</td>
<td>ControlLevel</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'CYTS'</td>
<td>CoyoteStatus</td>
@ -80,26 +143,47 @@ let me know if you discover the meaning of any of these unknown tags. See
<td class=c>-</td>
<td>--&gt; <a href='GoPro.html#GPMF'>GoPro GPMF Tags</a></td></tr>
<tr>
<td>'DUST'</td>
<td>DurationSetting</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'DVID'</td>
<td>DeviceID?</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'DVNM'</td>
<td>DeviceName</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'DZMX'</td>
<td>DigitalZoomAmount</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'DZOM'</td>
<td>DigitalZoom</td>
<td>DigitalZoomOn</td>
<td class=c>no</td>
<td><span class=s>&#39;N&#39; = No
<br>&#39;Y&#39; = Yes</span></td></tr>
<tr class=b>
<td>'DZST'</td>
<td>DigitalZoom</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'EISA'</td>
<td>ElectronicImageStabilization</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'EISE'</td>
<td>ElectronicStabilizationOn</td>
<td class=c>no</td>
<td><span class=s>&#39;N&#39; = No
<br>&#39;Y&#39; = Yes</span></td></tr>
<tr>
<td>'EMPT'</td>
<td>Empty?</td>
@ -112,7 +196,7 @@ let me know if you discover the meaning of any of these unknown tags. See
<td>&nbsp;</td></tr>
<tr>
<td>'EXPT'</td>
<td>MaximumShutterAngle</td>
<td>ExposureType</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
@ -151,36 +235,57 @@ let me know if you discover the meaning of any of these unknown tags. See
<td class=c>-</td>
<td>--&gt; <a href='GoPro.html#GPS5'>GoPro GPS5 Tags</a></td></tr>
<tr>
<td>'GPS9'</td>
<td>GPSInfo9</td>
<td class=c>-</td>
<td>--&gt; <a href='GoPro.html#GPS9'>GoPro GPS9 Tags</a></td></tr>
<tr class=b>
<td>'GPSA'</td>
<td>GPSAltitudeSystem</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'GPSF'</td>
<td>GPSMeasureMode</td>
<td class=c>no</td>
<td><span class=s>2 = 2-Dimensional Measurement
<br>3 = 3-Dimensional Measurement</span></td></tr>
<tr>
<tr class=b>
<td>'GPSP'</td>
<td>GPSHPositioningError</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'GPSU'</td>
<td>GPSDateTime</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'GRAV'</td>
<td>GravityVector</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'GYRO'</td>
<td>Gyroscope</td>
<td class=c>no</td>
<td><span class=s><span class=n>(gyroscope readings in rad/s)</span></span></td></tr>
<tr class=b>
<td>'HCLT'</td>
<td>HorizonControl</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'HDRV'</td>
<td>HDRVideo</td>
<td class=c>no</td>
<td><span class=s>&#39;N&#39; = No
<br>&#39;Y&#39; = Yes</span></td></tr>
<tr class=b>
<td>'HSGT'</td>
<td>HindsightSettings</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'HUES'</td>
<td>PrediminantHue</td>
@ -217,25 +322,56 @@ let me know if you discover the meaning of any of these unknown tags. See
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'MAPX'</td>
<td>MappingXCoefficients</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'MAPY'</td>
<td>MappingYCoefficients</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'MINF'</td>
<td>Model</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'MMOD'</td>
<td>MediaMode</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'MTRX'</td>
<td>AccelerometerMatrix</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'MUID'</td>
<td>MediaUniqueID</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'MWET'</td>
<td>MicrophoneWet</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'MXCF'</td>
<td>MappingXMode</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'MYCF'</td>
<td>MappingYMode</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'ORDP'</td>
<td>OrientationDataPresent</td>
<td class=c>no</td>
<td><span class=s>&#39;N&#39; = No
<br>&#39;Y&#39; = Yes</span></td></tr>
<tr class=b>
<td>'OREN'</td>
<td>AutoRotation</td>
@ -259,46 +395,76 @@ let me know if you discover the meaning of any of these unknown tags. See
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'PIMD'</td>
<td>ProtuneISOMode</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'PIMN'</td>
<td>AutoISOMin</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'PIMX'</td>
<td>AutoISOMax</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'POLY'</td>
<td>PolynomialCoefficients</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'PRES'</td>
<td>PhotoResolution</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'PRJT'</td>
<td>LensProjection</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'PRTN'</td>
<td>ProTune</td>
<td>Protune</td>
<td class=c>no</td>
<td><span class=s>&#39;N&#39; = Off
<br>&#39;Y&#39; = On</span></td></tr>
<tr class=b>
<tr>
<td>'PTCL'</td>
<td>ColorMode</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'PTEV'</td>
<td>ExposureCompensation</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'PTSH'</td>
<td>Sharpness</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'PTWB'</td>
<td>WhiteBalance</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'PWPR'</td>
<td>PowerProfile</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'PYCF'</td>
<td>PolynomialPower</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'RAMP'</td>
<td>SpeedRampSetting</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'RATE'</td>
<td>Rate</td>
@ -315,15 +481,26 @@ let me know if you discover the meaning of any of these unknown tags. See
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'SCAP'</td>
<td>ScheduleCapture</td>
<td class=c>no</td>
<td><span class=s>&#39;N&#39; = No
<br>&#39;Y&#39; = Yes</span></td></tr>
<tr class=b>
<td>'SCEN'</td>
<td>SceneClassification</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'SCPR'</td>
<td>ScaledPressure</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'SCTM'</td>
<td>ScheduleCaptureTime</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'SHUT'</td>
<td>ExposureTimes</td>
@ -340,45 +517,56 @@ let me know if you discover the meaning of any of these unknown tags. See
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'SMTR'</td>
<td>SpotMeter</td>
<td class=c>no</td>
<td><span class=s>&#39;N&#39; = No
<br>&#39;Y&#39; = Yes</span></td></tr>
<tr>
<td>'SROT'</td>
<td>SensorReadoutTime</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'STMP'</td>
<td>TimeStamp</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'STNM'</td>
<td>StreamName?</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'STRM'</td>
<td>NestedSignalStream</td>
<td class=c>-</td>
<td>--&gt; <a href='GoPro.html#GPMF'>GoPro GPMF Tags</a></td></tr>
<tr class=b>
<tr>
<td>'SYST'</td>
<td>SystemTime</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'TMPC'</td>
<td>CameraTemperature</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'TSMP'</td>
<td>TotalSamples?</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'TYPE'</td>
<td>StructureType?</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'TZON'</td>
<td>TimeZone</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'UNIF'</td>
<td>InputUniformity</td>
@ -402,10 +590,20 @@ let me know if you discover the meaning of any of these unknown tags. See
<br>&#39;S&#39; = Super View
<br>&#39;W&#39; = Wide</span></td></tr>
<tr class=b>
<td>'VFPS'</td>
<td>VideoFrameRate</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'VFRH'</td>
<td>VisualFlightRulesHUD</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'VRES'</td>
<td>VideoFrameSize</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'WBAL'</td>
<td>ColorTemperatures</td>
@ -426,6 +624,16 @@ let me know if you discover the meaning of any of these unknown tags. See
<td>LumaAverage</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'ZFOV'</td>
<td>DiagonalFieldOfView</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'ZMPL'</td>
<td>ZoomScaleNormalization</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='GLPI'>GoPro GLPI Tags</a></h2>
@ -539,12 +747,61 @@ let me know if you discover the meaning of any of these unknown tags. See
<td class=r title='3 = 0x3'>3</td>
<td>GPSSpeed</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<td><span class=s><span class=n>(stored as m/s but converted to km/h when extracted)</span></span></td></tr>
<tr>
<td class=r title='4 = 0x4'>4</td>
<td>GPSSpeed3D</td>
<td class=c>no</td>
<td><span class=s><span class=n>(stored as m/s but converted to km/h when extracted)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='GPS9'>GoPro GPS9 Tags</a></h2>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='0 = 0x0'>0</td>
<td>GPSLatitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='1 = 0x1'>1</td>
<td>GPSLongitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='2 = 0x2'>2</td>
<td>GPSAltitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='3 = 0x3'>3</td>
<td>GPSSpeed</td>
<td class=c>no</td>
<td><span class=s><span class=n>(stored as m/s but converted to km/h when extracted)</span></span></td></tr>
<tr>
<td class=r title='4 = 0x4'>4</td>
<td>GPSSpeed3D</td>
<td class=c>no</td>
<td><span class=s><span class=n>(stored as m/s but converted to km/h when extracted)</span></span></td></tr>
<tr class=b>
<td class=r title='6 = 0x6'>6</td>
<td>GPSDateTime</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='7 = 0x7'>7</td>
<td>GPSDOP</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='8 = 0x8'>8</td>
<td>GPSMeasureMode</td>
<td class=c>no</td>
<td><span class=s>2 = 2-Dimensional Measurement
<br>3 = 3-Dimensional Measurement</span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='KBAT'>GoPro KBAT Tags</a></h2>
@ -633,7 +890,7 @@ let me know if you discover the meaning of any of these unknown tags. See
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Dec 29, 2023</i>
<br><i>Last revised Feb 1, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -371,195 +371,205 @@ specification.</p>
<td class=c>-</td>
<td>--&gt; <a href='ICC_Profile.html#Chromaticity'>ICC_Profile Chromaticity Tags</a></td></tr>
<tr>
<td>'cicp'</td>
<td>ColorRepresentation</td>
<td class=c>-</td>
<td>--&gt; <a href='ICC_Profile.html#ColorRep'>ICC_Profile ColorRep Tags</a></td></tr>
<tr class=b>
<td>'ciis'</td>
<td>ColorimetricIntentImageState</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'clio'</td>
<td>ColorantInfoOut</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'cloo'</td>
<td>ColorantOrderOut</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'clot'</td>
<td>ColorantTableOut</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'clro'</td>
<td>ColorantOrder</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'clrt'</td>
<td>ColorantTable</td>
<td class=c>-</td>
<td>--&gt; <a href='ICC_Profile.html#ColorantTable'>ICC_Profile ColorantTable Tags</a></td></tr>
<tr>
<tr class=b>
<td>'cprt'</td>
<td>ProfileCopyright</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'crdi'</td>
<td>CRDInfo</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'csnm'</td>
<td>ColorSpaceName</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'dAB0'</td>
<td>DirectionalAToB0</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'dAB1'</td>
<td>DirectionalAToB1</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'dAB2'</td>
<td>DirectionalAToB2</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'dAB3'</td>
<td>DirectionalAToB3</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'dBA0'</td>
<td>DirectionalBToA0</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'dBA1'</td>
<td>DirectionalBToA1</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'dBA2'</td>
<td>DirectionalBToA2</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'dBA3'</td>
<td>DirectionalBToA3</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'dBD0'</td>
<td>DirectionalBToD0</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'dBD1'</td>
<td>DirectionalBToD1</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'dBD2'</td>
<td>DirectionalBToD2</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'dBD3'</td>
<td>DirectionalBToD3</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'dDB0'</td>
<td>DirectionalDToB0</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'dDB1'</td>
<td>DirectionalDToB1</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'dDB2'</td>
<td>DirectionalDToB2</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'dDB3'</td>
<td>DirectionalDToB3</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'desc'</td>
<td>ProfileDescription</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'devs'</td>
<td>DeviceSettings</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'dmdd'</td>
<td>DeviceModelDesc</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'dmnd'</td>
<td>DeviceMfgDesc</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'dscm'</td>
<td>ProfileDescriptionML</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'fpce'</td>
<td>FocalPlaneColorimetryEstimates</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'gTRC'</td>
<td>GreenTRC</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'gXYZ'</td>
<td>GreenMatrixColumn</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'gamt'</td>
<td>Gamut</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'gdb0'</td>
<td>GamutBoundaryDescription0</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'gdb1'</td>
<td>GamutBoundaryDescription1</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'gdb2'</td>
<td>GamutBoundaryDescription2</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'gdb3'</td>
<td>GamutBoundaryDescription3</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'hdgm'</td>
<td>HDGainMapInfo</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'kTRC'</td>
<td>GrayTRC</td>
@ -1258,6 +1268,80 @@ specification.</p>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='ColorRep'>ICC_Profile ColorRep Tags</a></h2>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index1</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='8 = 0x8'>8</td>
<td>ColorPrimaries</td>
<td class=c>no</td>
<td><span class=s>1 = BT.709
<br>2 = Unspecified
<br>4 = BT.470 System M (historical)
<br>5 = BT.470 System B, G (historical)
<br>6 = BT.601
<br>7 = SMPTE 240
<br>8 = Generic film (color filters using illuminant C)
<br>9 = BT.2020, BT.2100
<br>10 = SMPTE 428 (CIE 1931 XYZ)
<br>11 = SMPTE RP 431-2
<br>12 = SMPTE EG 432-1
<br>22 = EBU Tech. 3213-E</span></td></tr>
<tr class=b>
<td class=r title='9 = 0x9'>9</td>
<td>TransferCharacteristics</td>
<td class=c>no</td>
<td><table class=cols><tr>
<td>0 = For future use (0)
<br>1 = BT.709
<br>2 = Unspecified
<br>3 = For future use (3)
<br>4 = BT.470 System M (historical)
<br>5 = BT.470 System B, G (historical)
<br>6 = BT.601
<br>7 = SMPTE 240 M
<br>8 = Linear
<br>9 = Logarithmic (100 : 1 range)
<br>10 = Logarithmic (100 * Sqrt(10) : 1 range)
<br>11 = IEC 61966-2-4
<br>12 = BT.1361
<br>13 = sRGB or sYCC
<br>14 = BT.2020 10-bit systems
<br>15 = BT.2020 12-bit systems
<br>16 = SMPTE ST 2084, ITU BT.2100 PQ
<br>17 = SMPTE ST 428
<br>18 = BT.2100 HLG, ARIB STD-B67</td></tr></table>
</td></tr>
<tr>
<td class=r title='10 = 0xa'>10</td>
<td>MatrixCoefficients</td>
<td class=c>no</td>
<td><span class=s>0 = Identity matrix
<br>1 = BT.709
<br>2 = Unspecified
<br>3 = For future use (3)
<br>4 = US FCC 73.628
<br>5 = BT.470 System B, G (historical)
<br>6 = BT.601
<br>7 = SMPTE 240 M
<br>8 = YCgCo
<br>9 = BT.2020 non-constant luminance, BT.2100 YCbCr
<br>10 = BT.2020 constant luminance
<br>11 = SMPTE ST 2085 YDzDx
<br>12 = Chromaticity-derived non-constant luminance
<br>13 = Chromaticity-derived constant luminance
<br>14 = BT.2100 ICtCp</span></td></tr>
<tr class=b>
<td class=r title='11 = 0xb'>11</td>
<td>VideoFullRangeFlag</td>
<td class=c>no</td>
<td><span class=s>0 = Limited
<br>1 = Full</span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='ColorantTable'>ICC_Profile ColorantTable Tags</a></h2>
<blockquote>
<table class=frame><tr><td>
@ -1406,7 +1490,7 @@ Metadata tags that exist.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Sep 16, 2022</i>
<br><i>Last revised Dec 16, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -1731,7 +1731,7 @@ supports ID3. See <a href="https://id3.org/Lyrics3">https://id3.org/Lyrics3</a>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Nov 19, 2023</i>
<br><i>Last revised Jun 7, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -49,12 +49,14 @@
<br>FPXR
<br>MPF
<br>InfiRayVersion
<br>UniformResourceName
<br>PreviewImage</td>
<td class=c>-<br>-<br>-<br>-<br>no</td>
<td class=c>-<br>-<br>-<br>-<br>no<br>no</td>
<td>--&gt; <a href='ICC_Profile.html'>ICC_Profile Tags</a>
<br>--&gt; <a href='FlashPix.html'>FlashPix Tags</a>
<br>--&gt; <a href='MPF.html'>MPF Tags</a>
<br>--&gt; <a href='InfiRay.html#Version'>InfiRay Version Tags</a>
<br><span class=n>(used in Apple HDR images)</span>
<br><span class=n>(Samsung APP2 preview image)</span></td></tr>
<tr class=b>
<td>'APP3'</td>
@ -75,14 +77,16 @@
<td>'APP4'</td>
<td>Scalado
<br>FPXR
<br>QualcommDualCamera
<br>InfiRayFactory
<br>ThermalParams
<br>ThermalParams2
<br>ThermalParams3
<br>PreviewImage</td>
<td class=c>-<br>-<br>-<br>-<br>-<br>-<br>no</td>
<td class=c>-<br>-<br>-<br>-<br>-<br>-<br>-<br>no</td>
<td>--&gt; <a href='Scalado.html'>Scalado Tags</a>
<br>--&gt; <a href='FlashPix.html'>FlashPix Tags</a>
<br>--&gt; <a href='Qualcomm.html#DualCamera'>Qualcomm DualCamera Tags</a>
<br>--&gt; <a href='InfiRay.html#Factory'>InfiRay Factory Tags</a>
<br>--&gt; <a href='DJI.html#ThermalParams'>DJI ThermalParams Tags</a>
<br>--&gt; <a href='DJI.html#ThermalParams2'>DJI ThermalParams2 Tags</a>
@ -132,22 +136,28 @@
<tr>
<td>'APP8'</td>
<td>SPIFF
<br>InfiRayIsothermal</td>
<td class=c>-<br>-</td>
<br>InfiRayIsothermal
<br>SEAL</td>
<td class=c>-<br>-<br>-</td>
<td>--&gt; <a href='JPEG.html#SPIFF'>JPEG SPIFF Tags</a>
<br>--&gt; <a href='InfiRay.html#Isothermal'>InfiRay Isothermal Tags</a></td></tr>
<br>--&gt; <a href='InfiRay.html#Isothermal'>InfiRay Isothermal Tags</a>
<br>--&gt; <a href='XMP.html#SEAL'>XMP SEAL Tags</a></td></tr>
<tr class=b>
<td>'APP9'</td>
<td>MediaJukebox
<br>InfiRaySensor</td>
<td class=c>-<br>-</td>
<br>InfiRaySensor
<br>SEAL</td>
<td class=c>-<br>-<br>-</td>
<td>--&gt; <a href='JPEG.html#MediaJukebox'>JPEG MediaJukebox Tags</a>
<br>--&gt; <a href='InfiRay.html#Sensor'>InfiRay Sensor Tags</a></td></tr>
<br>--&gt; <a href='InfiRay.html#Sensor'>InfiRay Sensor Tags</a>
<br>--&gt; <a href='XMP.html#SEAL'>XMP SEAL Tags</a></td></tr>
<tr>
<td>'APP10'</td>
<td>Comment</td>
<td class=c>no</td>
<td><span class=s><span class=n>(PhotoStudio Unicode comment)</span></span></td></tr>
<td>Comment
<br>HDRGainInfo</td>
<td class=c>no<br>-</td>
<td><span class=s><span class=n>(PhotoStudio Unicode comment)</span>
<br>JPEG HDRGainInfo</span></td></tr>
<tr class=b>
<td>'APP11'</td>
<td>JPEG-HDR
@ -201,19 +211,27 @@
<br>FotoStation
<br>PhotoMechanic
<br>MIE
<br>MPF
<br>Samsung
<br>Vivo
<br>OnePlus
<br>Google
<br>EmbeddedVideo
<br>Insta360
<br>NikonApp
<br>SonyHiddenData
<br>PreviewImage</td>
<td class=c>-<br>-<br>-<br>-<br>-<br>-<br>no<br>no<br>no<br>no<br>yes</td>
<td class=c>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>-<br>no<br>no<br>no<br>no<br>yes</td>
<td>--&gt; <a href='AFCP.html'>AFCP Tags</a>
<br>--&gt; <a href='CanonVRD.html'>CanonVRD Tags</a>
<br>--&gt; <a href='FotoStation.html'>FotoStation Tags</a>
<br>--&gt; <a href='PhotoMechanic.html'>PhotoMechanic Tags</a>
<br>--&gt; <a href='MIE.html'>MIE Tags</a>
<br>--&gt; <a href='MPF.html'>MPF Tags</a>
<br>--&gt; <a href='Samsung.html#Trailer'>Samsung Trailer Tags</a>
<br>--&gt; <a href='Trailer.html#Vivo'>Trailer Vivo Tags</a>
<br>--&gt; <a href='Trailer.html#OnePlus'>Trailer OnePlus Tags</a>
<br>--&gt; <a href='Trailer.html#Google'>Trailer Google Tags</a>
<br><span class=n>(extracted only when ExtractEmbedded option is used)</span>
<br><span class=n>(contains editing information in XMP format)</span></td></tr>
</table></td></tr></table></blockquote>
@ -521,6 +539,24 @@ SPIFF sample, version 1.2)</span></span></td></tr>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='HDRGainInfo'>JPEG HDRGainInfo Tags</a></h2>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index1</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='6 = 0x6'>6</td>
<td>HDRGainCurveSize</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='10 = 0xa'>10</td>
<td>HDRGainCurve</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='HDR'>JPEG HDR Tags</a></h2>
<p>Information extracted from APP11 of a JPEG-HDR image.</p>
<blockquote>
@ -691,7 +727,7 @@ because it may affect the appearance of the image.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jan 10, 2024</i>
<br><i>Last revised Apr 25, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -17,34 +17,38 @@ JSON-formatted files.</p>
<tr class=h><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>AdjustmentsSettingsStatisticsLightMap</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>ON1_SettingsData</td>
<td class=c>-</td>
<td>--&gt; <a href='PLIST.html'>PLIST Tags</a></td></tr>
<tr class=b>
<tr>
<td>ON1_SettingsMetadataCreated</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>ON1_SettingsMetadataModified</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>ON1_SettingsMetadataName</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>ON1_SettingsMetadataPluginID</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>ON1_SettingsMetadataTimestamp</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>ON1_SettingsMetadataUsage</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>ON1_SettingsMetadataVisibleToUser</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
@ -52,7 +56,7 @@ JSON-formatted files.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Oct 29, 2020</i>
<br><i>Last revised Feb 12, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -396,7 +396,7 @@ ColorSpace, or 4 when writing ColorSpecData)</span>
<td>ICC_Profile
<br>ColorSpace
<br>ColorSpecData</td>
<td class=c title=' ! = Unsafe'>-<br>int32u!<br>undef!</td>
<td class=c title=' ! = Unsafe'>-<br>int32u!<br>undef[$size-3]!</td>
<td>--&gt; <a href='ICC_Profile.html'>ICC_Profile Tags</a>
<br><table class=cols><tr>
<td>0 = Bi-level
@ -444,7 +444,7 @@ ColorSpace, or 4 when writing ColorSpecData)</span>
<tr>
<td class=r title='2 = 0x2'>2</td>
<td>CompatibleBrands</td>
<td class=c>no</td>
<td class=c title=' + = List'>no+</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
@ -605,7 +605,7 @@ ColorSpace, or 4 when writing ColorSpecData)</span>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jan 30, 2024</i>
<br><i>Last revised Oct 2, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -5729,7 +5729,7 @@ sub-documents when the <a href="../ExifTool.html#Duplicates">Duplicates</a> opti
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jul 8, 2019</i>
<br><i>Last revised Mar 24, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -94,7 +94,7 @@ calculate the Duration)</span></span></td></tr>
</tr><tr><td class=r>0x86</td><td>= DTS-HD Audio</td>
</tr><tr><td class=r>0x87</td><td>= E-AC-3 Audio</td>
</tr><tr><td class=r>0x8a</td><td>= DTS Audio</td>
</tr><tr><td class=r>0x90</td><td>= PGS Audio</td>
</tr><tr><td class=r>0x90</td><td>= Presentation Graphic Stream (subtitle)</td>
</tr><tr><td class=r>0x91</td><td>= A52b/AC-3 Audio</td>
</tr><tr><td class=r>0x92</td><td>= DVD_SPU vls Subtitle</td>
</tr><tr><td class=r>0x94</td><td>= SDDS Audio</td>
@ -148,7 +148,7 @@ calculate the Duration)</span></span></td></tr>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Oct 13, 2022</i>
<br><i>Last revised Oct 22, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -165,11 +165,15 @@ embedded images.</p>
<td>0x0 = Undefined
<br>0x10001 = Large Thumbnail (VGA equivalent)
<br>0x10002 = Large Thumbnail (full HD equivalent)
<br>0x10003 = Large Thumbnail (4K equivalent)
<br>0x10004 = Large Thumbnail (8K equivalent)
<br>0x10005 = Large Thumbnail (16K equivalent)
<br>0x20001 = Multi-frame Panorama
<br>0x20002 = Multi-frame Disparity
<br>0x20003 = Multi-angle
<br>0x30000 = Baseline MP Primary Image
<br>0x40000 = Original Preservation Image</td></tr></table>
<br>0x40000 = Original Preservation Image
<br>0x50000 = Gain Map Image</td></tr></table>
</td></tr>
<tr class=b>
<td class=r title='4 = 0x4'>4</td>
@ -195,7 +199,7 @@ embedded images.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jun 8, 2023</i>
<br><i>Last revised Apr 13, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -184,6 +184,198 @@ implements this policy and changes EXIF:Artist to a list-type tag.</p>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Collections'>MWG Collections Tags</a></h2>
<p>Collections metadata defined by the MWG 2.0 specification. See
<a href="https://web.archive.org/web/20180919181934/http://www.metadataworkinggroup.org/pdf/mwg_guidance.pdf">https://web.archive.org/web/20180919181934/http://www.metadataworkinggroup.org/pdf/mwg_guidance.pdf</a>
for the official specification.</p>
<p>These tags belong to the ExifTool XMP-mwg-coll family 1 group.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>Collections</td>
<td class=c title=' + = List'>struct+</td>
<td>--&gt; <a href='MWG.html#CollectionInfo'>MWG CollectionInfo Struct</a></td></tr>
<tr class=b>
<td>CollectionName</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(CollectionsCollectionName)</span></span></td></tr>
<tr>
<td>CollectionURI</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(CollectionsCollectionURI)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='CollectionInfo'>MWG CollectionInfo Struct</a></h2>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Field Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>CollectionName</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CollectionURI</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Keywords'>MWG Keywords Tags</a></h2>
<p>Hierarchical keywords metadata defined by the MWG 2.0 specification.
ExifTool unrolls keyword structures to an arbitrary depth of 6 to allow
individual levels to be accessed with different tag names, and to avoid
infinite recursion. See
<a href="https://web.archive.org/web/20180919181934/http://www.metadataworkinggroup.org/pdf/mwg_guidance.pdf">https://web.archive.org/web/20180919181934/http://www.metadataworkinggroup.org/pdf/mwg_guidance.pdf</a>
for the official specification.</p>
<p>These tags belong to the ExifTool XMP-mwg-kw family 1 group.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>KeywordInfo</td>
<td class=c>struct</td>
<td>--&gt; <a href='MWG.html#KeywordInfo'>MWG KeywordInfo Struct</a>
<br><span class='n s'>(called Keywords by the spec)</span></td></tr>
<tr class=b>
<td>HierarchicalKeywords</td>
<td class=c title=' _ = Flattened
+ = List'>struct_+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a>
<br><span class='n s'>(KeywordsHierarchy)</span></td></tr>
<tr>
<td>HierarchicalKeywords1Applied</td>
<td class=c title=' _ = Flattened
+ = List'>boolean_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyApplied)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords1Children</td>
<td class=c title=' _ = Flattened
+ = List'>struct_+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a>
<br><span class='n s'>(KeywordsHierarchyChildren)</span></td></tr>
<tr>
<td>HierarchicalKeywords2Applied</td>
<td class=c title=' _ = Flattened
+ = List'>boolean_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenApplied)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords2Children</td>
<td class=c title=' _ = Flattened
+ = List'>struct_+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a>
<br><span class='n s'>(KeywordsHierarchyChildrenChildren)</span></td></tr>
<tr>
<td>HierarchicalKeywords3Applied</td>
<td class=c title=' _ = Flattened
+ = List'>boolean_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenApplied)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords3Children</td>
<td class=c title=' _ = Flattened
+ = List'>struct_+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a>
<br><span class='n s'>(KeywordsHierarchyChildrenChildrenChildren)</span></td></tr>
<tr>
<td>HierarchicalKeywords4Applied</td>
<td class=c title=' _ = Flattened
+ = List'>boolean_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenChildrenApplied)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords4Children</td>
<td class=c title=' _ = Flattened
+ = List'>struct_+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a>
<br><span class='n s'>(KeywordsHierarchyChildrenChildrenChildrenChildren)</span></td></tr>
<tr>
<td>HierarchicalKeywords5Applied</td>
<td class=c title=' _ = Flattened
+ = List'>boolean_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenChildrenChildrenApplied)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords5Children</td>
<td class=c title=' _ = Flattened
+ = List'>struct_+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a>
<br><span class='n s'>(KeywordsHierarchyChildrenChildrenChildrenChildrenChildren)</span></td></tr>
<tr>
<td>HierarchicalKeywords6Applied</td>
<td class=c title=' _ = Flattened
+ = List'>boolean_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenChildrenChildrenChildrenApplied)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords6</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenChildrenChildrenChildrenKeyword)</span></span></td></tr>
<tr>
<td>HierarchicalKeywords5</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenChildrenChildrenKeyword)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords4</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenChildrenKeyword)</span></span></td></tr>
<tr>
<td>HierarchicalKeywords3</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenKeyword)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords2</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenKeyword)</span></span></td></tr>
<tr>
<td>HierarchicalKeywords1</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyKeyword)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='KeywordInfo'>MWG KeywordInfo Struct</a></h2>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Field Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>Hierarchy</td>
<td class=c title=' + = List'>MWG KeywordStruct+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='KeywordStruct'>MWG KeywordStruct Struct</a></h2>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Field Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>Applied</td>
<td class=c>boolean</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>Children</td>
<td class=c title=' + = List'>MWG KeywordStruct+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a></td></tr>
<tr>
<td>Keyword</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Regions'>MWG Regions Tags</a></h2>
<p>Image region metadata defined by the MWG 2.0 specification. These tags
may be accessed without the need to load the MWG Composite tags above. See
@ -391,201 +583,9 @@ conversion).</p>
<tr><td colspan=3 class=c><i>[no tags known]</i></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Keywords'>MWG Keywords Tags</a></h2>
<p>Hierarchical keywords metadata defined by the MWG 2.0 specification.
ExifTool unrolls keyword structures to an arbitrary depth of 6 to allow
individual levels to be accessed with different tag names, and to avoid
infinite recursion. See
<a href="https://web.archive.org/web/20180919181934/http://www.metadataworkinggroup.org/pdf/mwg_guidance.pdf">https://web.archive.org/web/20180919181934/http://www.metadataworkinggroup.org/pdf/mwg_guidance.pdf</a>
for the official specification.</p>
<p>These tags belong to the ExifTool XMP-mwg-kw family 1 group.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>KeywordInfo</td>
<td class=c>struct</td>
<td>--&gt; <a href='MWG.html#KeywordInfo'>MWG KeywordInfo Struct</a>
<br><span class='n s'>(called Keywords by the spec)</span></td></tr>
<tr class=b>
<td>HierarchicalKeywords</td>
<td class=c title=' _ = Flattened
+ = List'>struct_+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a>
<br><span class='n s'>(KeywordsHierarchy)</span></td></tr>
<tr>
<td>HierarchicalKeywords1Applied</td>
<td class=c title=' _ = Flattened
+ = List'>boolean_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyApplied)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords1Children</td>
<td class=c title=' _ = Flattened
+ = List'>struct_+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a>
<br><span class='n s'>(KeywordsHierarchyChildren)</span></td></tr>
<tr>
<td>HierarchicalKeywords2Applied</td>
<td class=c title=' _ = Flattened
+ = List'>boolean_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenApplied)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords2Children</td>
<td class=c title=' _ = Flattened
+ = List'>struct_+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a>
<br><span class='n s'>(KeywordsHierarchyChildrenChildren)</span></td></tr>
<tr>
<td>HierarchicalKeywords3Applied</td>
<td class=c title=' _ = Flattened
+ = List'>boolean_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenApplied)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords3Children</td>
<td class=c title=' _ = Flattened
+ = List'>struct_+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a>
<br><span class='n s'>(KeywordsHierarchyChildrenChildrenChildren)</span></td></tr>
<tr>
<td>HierarchicalKeywords4Applied</td>
<td class=c title=' _ = Flattened
+ = List'>boolean_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenChildrenApplied)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords4Children</td>
<td class=c title=' _ = Flattened
+ = List'>struct_+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a>
<br><span class='n s'>(KeywordsHierarchyChildrenChildrenChildrenChildren)</span></td></tr>
<tr>
<td>HierarchicalKeywords5Applied</td>
<td class=c title=' _ = Flattened
+ = List'>boolean_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenChildrenChildrenApplied)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords5Children</td>
<td class=c title=' _ = Flattened
+ = List'>struct_+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a>
<br><span class='n s'>(KeywordsHierarchyChildrenChildrenChildrenChildrenChildren)</span></td></tr>
<tr>
<td>HierarchicalKeywords6Applied</td>
<td class=c title=' _ = Flattened
+ = List'>boolean_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenChildrenChildrenChildrenApplied)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords6</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenChildrenChildrenChildrenKeyword)</span></span></td></tr>
<tr>
<td>HierarchicalKeywords5</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenChildrenChildrenKeyword)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords4</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenChildrenKeyword)</span></span></td></tr>
<tr>
<td>HierarchicalKeywords3</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenChildrenKeyword)</span></span></td></tr>
<tr class=b>
<td>HierarchicalKeywords2</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyChildrenKeyword)</span></span></td></tr>
<tr>
<td>HierarchicalKeywords1</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(KeywordsHierarchyKeyword)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='KeywordInfo'>MWG KeywordInfo Struct</a></h2>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Field Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>Hierarchy</td>
<td class=c title=' + = List'>MWG KeywordStruct+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='KeywordStruct'>MWG KeywordStruct Struct</a></h2>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Field Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>Applied</td>
<td class=c>boolean</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>Children</td>
<td class=c title=' + = List'>MWG KeywordStruct+</td>
<td>--&gt; <a href='MWG.html#KeywordStruct'>MWG KeywordStruct Struct</a></td></tr>
<tr>
<td>Keyword</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Collections'>MWG Collections Tags</a></h2>
<p>Collections metadata defined by the MWG 2.0 specification. See
<a href="https://web.archive.org/web/20180919181934/http://www.metadataworkinggroup.org/pdf/mwg_guidance.pdf">https://web.archive.org/web/20180919181934/http://www.metadataworkinggroup.org/pdf/mwg_guidance.pdf</a>
for the official specification.</p>
<p>These tags belong to the ExifTool XMP-mwg-coll family 1 group.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>Collections</td>
<td class=c title=' + = List'>struct+</td>
<td>--&gt; <a href='MWG.html#CollectionInfo'>MWG CollectionInfo Struct</a></td></tr>
<tr class=b>
<td>CollectionName</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(CollectionsCollectionName)</span></span></td></tr>
<tr>
<td>CollectionURI</td>
<td class=c title=' _ = Flattened
+ = List'>string_+</td>
<td><span class=s><span class=n>(CollectionsCollectionURI)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='CollectionInfo'>MWG CollectionInfo Struct</a></h2>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Field Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>CollectionName</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CollectionURI</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Apr 1, 2021</i>
<br><i>Last revised Apr 5, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -83,8 +83,9 @@ these files directly.</p>
<td>&nbsp;</td></tr>
<tr class=b>
<td>XAttrMDItemWhereFroms</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<td class=c title=' ! = Unsafe'>yes!</td>
<td><span class=s><span class=n>(information about where the file came from. May only be deleted when
writing)</span></span></td></tr>
<tr>
<td>XAttrMDLabel</td>
<td class=c>no</td>
@ -654,7 +655,7 @@ not be written)</span></span></td></tr>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Oct 16, 2021</i>
<br><i>Last revised Feb 16, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -10,7 +10,8 @@
<h2 class=top>Matroska Tags</h2>
<p>The following tags are extracted from Matroska multimedia container files.
This container format is used by file types such as MKA, MKV, MKS and WEBM.
For speed, by default ExifTool extracts tags only up to the first Cluster.
For speed, by default ExifTool extracts tags only up to the first Cluster
unless a Seek element specifies the position of a Tags element after this.
However, the <a href="../ExifTool.html#Verbose">Verbose</a> (-v) and <a href="../ExifTool.html#Unknown">Unknown</a> = 2 (-U) options force processing of
Cluster data, and the <a href="../ExifTool.html#ExtractEmbedded">ExtractEmbedded</a> (-ee) option skips over Clusters to
read subsequent tags. See
@ -101,8 +102,9 @@ Matroska specification.</p>
<td title='0x001a = 26'>0x001a</td>
<td>VideoScanType</td>
<td class=c>no</td>
<td><span class=s>0 = Progressive
<br>1 = Interlaced</span></td></tr>
<td><span class=s>0 = Undetermined
<br>1 = Interlaced
<br>2 = Progressive</span></td></tr>
<tr>
<td title='0x001b = 27'>0x001b</td>
<td>BlockDuration?</td>
@ -1074,6 +1076,11 @@ Matroska specification.</p>
<td>Cluster</td>
<td class=c>-</td>
<td>--&gt; <a href='Matroska.html'>Matroska Tags</a></td></tr>
<tr>
<td title='0x5345414c = 1397047628'>0x5345414c</td>
<td>SEAL</td>
<td class=c>-</td>
<td>--&gt; <a href='XMP.html#SEAL'>XMP SEAL Tags</a></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Projection'>Matroska Projection Tags</a></h2>
@ -1354,7 +1361,7 @@ for the specification.</p>
<tr class=b>
<td>'INSTRUMENTS'</td>
<td>Instruments</td>
<td class=c>no</td>
<td class=c title=' + = List'>no+</td>
<td>&nbsp;</td></tr>
<tr>
<td>'ISBN'</td>
@ -1369,7 +1376,7 @@ for the specification.</p>
<tr>
<td>'KEYWORDS'</td>
<td>Keywords</td>
<td class=c>no</td>
<td class=c title=' + = List'>no+</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'LABEL'</td>
@ -1645,7 +1652,7 @@ for the specification.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jun 28, 2023</i>
<br><i>Last revised Mar 24, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -70,84 +70,6 @@ family 1 group name.</p>
values of 1,25,50,75 and 99 respectively)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='MP1'>Microsoft MP1 Tags</a></h2>
<p>Microsoft Photo 1.1 schema XMP tags which have been observed.</p>
<p>These tags belong to the ExifTool XMP-MP1 family 1 group.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>Brightness</td>
<td class=c title=' / = Avoid'>string/</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CameraModelID</td>
<td class=c title=' / = Avoid'>string/</td>
<td>&nbsp;</td></tr>
<tr>
<td>Contrast</td>
<td class=c title=' / = Avoid'>string/</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>ExposureCompensation</td>
<td class=c title=' / = Avoid'>string/</td>
<td>&nbsp;</td></tr>
<tr>
<td>PanoramicStitchCameraMotion</td>
<td class=c>string</td>
<td><span class=s>&#39;3DRotation&#39; = 3D Rotation
<br>&#39;Affine&#39; = Affine
<br>&#39;Homography&#39; = Homography
<br>&#39;RigidScale&#39; = Rigid Scale</span></td></tr>
<tr class=b>
<td>PanoramicStitchMapType</td>
<td class=c>string</td>
<td><span class=s>&#39;Horizontal-Cylindrical&#39; = Horizontal Cylindrical
<br>&#39;Horizontal-Spherical&#39; = Horizontal Spherical
<br>&#39;Perspective&#39; = Perspective
<br>&#39;Vertical-Cylindrical&#39; = Vertical Cylindrical
<br>&#39;Vertical-Spherical&#39; = Vertical Spherical</span></td></tr>
<tr>
<td>PanoramicStitchPhi0</td>
<td class=c>real</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>PanoramicStitchPhi1</td>
<td class=c>real</td>
<td>&nbsp;</td></tr>
<tr>
<td>PanoramicStitchTheta0</td>
<td class=c>real</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>PanoramicStitchTheta1</td>
<td class=c>real</td>
<td>&nbsp;</td></tr>
<tr>
<td>PipelineVersion</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>StreamType</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<td>WhiteBalance0</td>
<td class=c>real</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>WhiteBalance1</td>
<td class=c>real</td>
<td>&nbsp;</td></tr>
<tr>
<td>WhiteBalance2</td>
<td class=c>real</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='MP'>Microsoft MP Tags</a></h2>
<p>Microsoft Photo 1.2 schema XMP tags which have been observed.</p>
@ -245,6 +167,84 @@ PersonLiveIdCID, so ExifTool uses this too.</p>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='MP1'>Microsoft MP1 Tags</a></h2>
<p>Microsoft Photo 1.1 schema XMP tags which have been observed.</p>
<p>These tags belong to the ExifTool XMP-MP1 family 1 group.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>Brightness</td>
<td class=c title=' / = Avoid'>string/</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CameraModelID</td>
<td class=c title=' / = Avoid'>string/</td>
<td>&nbsp;</td></tr>
<tr>
<td>Contrast</td>
<td class=c title=' / = Avoid'>string/</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>ExposureCompensation</td>
<td class=c title=' / = Avoid'>string/</td>
<td>&nbsp;</td></tr>
<tr>
<td>PanoramicStitchCameraMotion</td>
<td class=c>string</td>
<td><span class=s>&#39;3DRotation&#39; = 3D Rotation
<br>&#39;Affine&#39; = Affine
<br>&#39;Homography&#39; = Homography
<br>&#39;RigidScale&#39; = Rigid Scale</span></td></tr>
<tr class=b>
<td>PanoramicStitchMapType</td>
<td class=c>string</td>
<td><span class=s>&#39;Horizontal-Cylindrical&#39; = Horizontal Cylindrical
<br>&#39;Horizontal-Spherical&#39; = Horizontal Spherical
<br>&#39;Perspective&#39; = Perspective
<br>&#39;Vertical-Cylindrical&#39; = Vertical Cylindrical
<br>&#39;Vertical-Spherical&#39; = Vertical Spherical</span></td></tr>
<tr>
<td>PanoramicStitchPhi0</td>
<td class=c>real</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>PanoramicStitchPhi1</td>
<td class=c>real</td>
<td>&nbsp;</td></tr>
<tr>
<td>PanoramicStitchTheta0</td>
<td class=c>real</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>PanoramicStitchTheta1</td>
<td class=c>real</td>
<td>&nbsp;</td></tr>
<tr>
<td>PipelineVersion</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>StreamType</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<td>WhiteBalance0</td>
<td class=c>real</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>WhiteBalance1</td>
<td class=c>real</td>
<td>&nbsp;</td></tr>
<tr>
<td>WhiteBalance2</td>
<td class=c>real</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Stitch'>Microsoft Stitch Tags</a></h2>
<p>Information found in the Microsoft custom EXIF tag 0x4748, as written by
Windows Live Photo Gallery.</p>
@ -814,7 +814,7 @@ possible unless the Microsoft group is specified explicitly.</p>
<td>&nbsp;</td></tr>
<tr class=b>
<td>Description</td>
<td class=c>no</td>
<td class=c title=' / = Avoid'>Unicode/</td>
<td>&nbsp;</td></tr>
<tr>
<td>Description</td>
@ -2143,7 +2143,7 @@ possible unless the Microsoft group is specified explicitly.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Mar 17, 2021</i>
<br><i>Last revised Mar 24, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -2592,7 +2592,7 @@ DiMAGE X and Xt.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Mar 15, 2023</i>
<br><i>Last revised Mar 24, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -146,7 +146,7 @@
<tr>
<td class=r title='7 = 0x7'>7</td>
<td>ColorMode</td>
<td class=c>int32u[0.25]</td>
<td class=c>int8u</td>
<td><table class=cols><tr>
<td>0 = Natural color
<br>1 = Black &amp; White
@ -326,7 +326,7 @@
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Oct 29, 2020</i>
<br><i>Last revised Jun 13, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1133,6 +1133,47 @@ Unknown only to reduce the volume of the normal output.</p>
<br>54 = 1 Stop Speed/Aperture
<br>55 = Non-CPU Lens
<br>56 = None</td></tr></table>
<span class=s><span class=n>(Z6 and Z7)</span></span><table class=cols><tr>
<td>1 = AF-On or Subject Tracking
<br>2 = AF Lock Only
<br>3 = AE Lock (hold)
<br>4 = AE Lock (reset on release)
<br>5 = AE Lock Only
<br>6 = AE/AF Lock
<br>7 = FV Lock
<br>8 = Flash Disable/Enable
<br>9 = Preview
<br>10 = Matrix Metering
<br>11 = Center-weighted Metering
<br>12 = Spot Metering
<br>13 = Highlight-weighted Metering
<br>14 = Bracketing Burst
<br>15 = Synchronized Release (Master)
<br>16 = Synchronized Release (Remote)
<br>19 = +NEF(RAW)
<br>20 = Framing Grid Display
<br>22 = Zoom On/Off
<br>24 = My Menu
<br>25 = My Menu Top Item
<br>26 = Playback
<br>27 = Protect
<br>28 = Image Area
<br>29 = Image Quality
<br>30 = White Balance
<br>31 = Picture Control
<br>32 = Active D-Lighting
<br>33 = Metering
<br>34 = Flash Mode
<br>35 = Focus Mode
<br>36 = Auto Bracketing
<br>37 = Multiple Exposure
<br>38 = HDR
<br>39 = Exposure Delay Mode
<br>40 = Shutter/Aperture Lock
<br>41 = Focus Peaking
<br>42 = Rating
<br>43 = Non-CPU Lens
<br>44 = None</td></tr></table>
<span class=s><span class=n>(Z Series cameras thru November 2021)</span></span><table class=cols><tr>
<td>1 = AF-On
<br>2 = AF Lock Only
@ -1243,6 +1284,47 @@ Unknown only to reduce the volume of the normal output.</p>
<br>54 = 1 Stop Speed/Aperture
<br>55 = Non-CPU Lens
<br>56 = None</td></tr></table>
<span class=s><span class=n>(Z6 and Z7)</span></span><table class=cols><tr>
<td>1 = AF-On or Subject Tracking
<br>2 = AF Lock Only
<br>3 = AE Lock (hold)
<br>4 = AE Lock (reset on release)
<br>5 = AE Lock Only
<br>6 = AE/AF Lock
<br>7 = FV Lock
<br>8 = Flash Disable/Enable
<br>9 = Preview
<br>10 = Matrix Metering
<br>11 = Center-weighted Metering
<br>12 = Spot Metering
<br>13 = Highlight-weighted Metering
<br>14 = Bracketing Burst
<br>15 = Synchronized Release (Master)
<br>16 = Synchronized Release (Remote)
<br>19 = +NEF(RAW)
<br>20 = Framing Grid Display
<br>22 = Zoom On/Off
<br>24 = My Menu
<br>25 = My Menu Top Item
<br>26 = Playback
<br>27 = Protect
<br>28 = Image Area
<br>29 = Image Quality
<br>30 = White Balance
<br>31 = Picture Control
<br>32 = Active D-Lighting
<br>33 = Metering
<br>34 = Flash Mode
<br>35 = Focus Mode
<br>36 = Auto Bracketing
<br>37 = Multiple Exposure
<br>38 = HDR
<br>39 = Exposure Delay Mode
<br>40 = Shutter/Aperture Lock
<br>41 = Focus Peaking
<br>42 = Rating
<br>43 = Non-CPU Lens
<br>44 = None</td></tr></table>
<span class=s><span class=n>(Z Series cameras thru November 2021)</span></span><table class=cols><tr>
<td>1 = AF-On
<br>2 = AF Lock Only
@ -2581,7 +2663,7 @@ Unknown only to reduce the volume of the normal output.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jan 12, 2022</i>
<br><i>Last revised Aug 9, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -742,304 +742,307 @@ Vivitar are not listed.</p>
<table class='inner sep' cellspacing=1>
<tr class=h><th>Value</th><th>CameraType</th><th>Value</th><th>CameraType</th><th>Value</th><th>CameraType</th></tr>
<tr><td>'D4028'</td><td>= X-2,C-50Z</td>
<td class=b>'D4402'</td><td class=b>= uT6010,ST6010</td>
<td>'S0018'</td><td>= E-520</td>
</tr><tr><td>'D4029'</td><td>= E-20,E-20N,E-20P</td>
<td class=b>'D4406'</td><td class=b>= u7010,S7010 / u7020,S7020</td>
<td>'S0019'</td><td>= E-P1</td>
</tr><tr><td>'D4034'</td><td>= C720UZ</td>
<td class=b>'D4407'</td><td class=b>= FE4010,X930</td>
<td>'S0023'</td><td>= E-620</td>
</tr><tr><td>'D4040'</td><td>= E-1</td>
<td class=b>'D4408'</td><td class=b>= X560WP</td>
</tr><tr><td>'D4029'</td><td>= E-20,E-20N,E-20P</td>
<td class=b>'D4407'</td><td class=b>= FE4010,X930</td>
<td>'S0026'</td><td>= E-P2</td>
</tr><tr><td>'D4041'</td><td>= E-300</td>
<td class=b>'D4409'</td><td class=b>= FE26,X21</td>
</tr><tr><td>'D4034'</td><td>= C720UZ</td>
<td class=b>'D4408'</td><td class=b>= X560WP</td>
<td>'S0027'</td><td>= E-PL1</td>
</tr><tr><td>'D4083'</td><td>= C2Z,D520Z,C220Z</td>
<td class=b>'D4410'</td><td class=b>= FE4000,X920,X925</td>
</tr><tr><td>'D4040'</td><td>= E-1</td>
<td class=b>'D4409'</td><td class=b>= FE26,X21</td>
<td>'S0029'</td><td>= E-450</td>
</tr><tr><td>'D4106'</td><td>= u20D,S400D,u400D</td>
<td class=b>'D4411'</td><td class=b>= FE46,X41,X42</td>
</tr><tr><td>'D4041'</td><td>= E-300</td>
<td class=b>'D4410'</td><td class=b>= FE4000,X920,X925</td>
<td>'S0030'</td><td>= E-600</td>
</tr><tr><td>'D4120'</td><td>= X-1</td>
<td class=b>'D4412'</td><td class=b>= FE5020,X935</td>
</tr><tr><td>'D4083'</td><td>= C2Z,D520Z,C220Z</td>
<td class=b>'D4411'</td><td class=b>= FE46,X41,X42</td>
<td>'S0032'</td><td>= E-P3</td>
</tr><tr><td>'D4122'</td><td>= u10D,S300D,u300D</td>
<td class=b>'D4413'</td><td class=b>= uTough-3000</td>
</tr><tr><td>'D4106'</td><td>= u20D,S400D,u400D</td>
<td class=b>'D4412'</td><td class=b>= FE5020,X935</td>
<td>'S0033'</td><td>= E-5</td>
</tr><tr><td>'D4125'</td><td>= AZ-1</td>
<td class=b>'D4414'</td><td class=b>= StylusTough-6020</td>
</tr><tr><td>'D4120'</td><td>= X-1</td>
<td class=b>'D4413'</td><td class=b>= uTough-3000</td>
<td>'S0034'</td><td>= E-PL2</td>
</tr><tr><td>'D4141'</td><td>= C150,D390</td>
<td class=b>'D4415'</td><td class=b>= StylusTough-8010</td>
</tr><tr><td>'D4122'</td><td>= u10D,S300D,u300D</td>
<td class=b>'D4414'</td><td class=b>= StylusTough-6020</td>
<td>'S0036'</td><td>= E-M5</td>
</tr><tr><td>'D4193'</td><td>= C-5000Z</td>
<td class=b>'D4417'</td><td class=b>= u5010,S5010</td>
</tr><tr><td>'D4125'</td><td>= AZ-1</td>
<td class=b>'D4415'</td><td class=b>= StylusTough-8010</td>
<td>'S0038'</td><td>= E-PL3</td>
</tr><tr><td>'D4194'</td><td>= X-3,C-60Z</td>
<td class=b>'D4418'</td><td class=b>= u7040,S7040</td>
</tr><tr><td>'D4141'</td><td>= C150,D390</td>
<td class=b>'D4417'</td><td class=b>= u5010,S5010</td>
<td>'S0039'</td><td>= E-PM1</td>
</tr><tr><td>'D4199'</td><td>= u30D,S410D,u410D</td>
<td class=b>'D4419'</td><td class=b>= u9010,S9010</td>
</tr><tr><td>'D4193'</td><td>= C-5000Z</td>
<td class=b>'D4418'</td><td class=b>= u7040,S7040</td>
<td>'S0040'</td><td>= E-PL1s</td>
</tr><tr><td>'D4205'</td><td>= X450,D535Z,C370Z</td>
<td class=b>'D4423'</td><td class=b>= FE4040</td>
</tr><tr><td>'D4194'</td><td>= X-3,C-60Z</td>
<td class=b>'D4419'</td><td class=b>= u9010,S9010</td>
<td>'S0042'</td><td>= E-PL5</td>
</tr><tr><td>'D4210'</td><td>= C160,D395</td>
<td class=b>'D4424'</td><td class=b>= FE47,X43</td>
</tr><tr><td>'D4199'</td><td>= u30D,S410D,u410D</td>
<td class=b>'D4423'</td><td class=b>= FE4040</td>
<td>'S0043'</td><td>= E-PM2</td>
</tr><tr><td>'D4211'</td><td>= C725UZ</td>
<td class=b>'D4426'</td><td class=b>= FE4030,X950</td>
</tr><tr><td>'D4205'</td><td>= X450,D535Z,C370Z</td>
<td class=b>'D4424'</td><td class=b>= FE47,X43</td>
<td>'S0044'</td><td>= E-P5</td>
</tr><tr><td>'D4213'</td><td>= FerrariMODEL2003</td>
<td class=b>'D4428'</td><td class=b>= FE5030,X965,X960</td>
</tr><tr><td>'D4210'</td><td>= C160,D395</td>
<td class=b>'D4426'</td><td class=b>= FE4030,X950</td>
<td>'S0045'</td><td>= E-PL6</td>
</tr><tr><td>'D4216'</td><td>= u15D</td>
<td class=b>'D4430'</td><td class=b>= u7030,S7030</td>
</tr><tr><td>'D4211'</td><td>= C725UZ</td>
<td class=b>'D4428'</td><td class=b>= FE5030,X965,X960</td>
<td>'S0046'</td><td>= E-PL7</td>
</tr><tr><td>'D4217'</td><td>= u25D</td>
<td class=b>'D4432'</td><td class=b>= SP600UZ</td>
</tr><tr><td>'D4213'</td><td>= FerrariMODEL2003</td>
<td class=b>'D4430'</td><td class=b>= u7030,S7030</td>
<td>'S0047'</td><td>= E-M1</td>
</tr><tr><td>'D4220'</td><td>= u-miniD,Stylus V</td>
<td class=b>'D4434'</td><td class=b>= SP800UZ</td>
</tr><tr><td>'D4216'</td><td>= u15D</td>
<td class=b>'D4432'</td><td class=b>= SP600UZ</td>
<td>'S0051'</td><td>= E-M10</td>
</tr><tr><td>'D4221'</td><td>= u40D,S500,uD500</td>
<td class=b>'D4439'</td><td class=b>= FE4020,X940</td>
</tr><tr><td>'D4217'</td><td>= u25D</td>
<td class=b>'D4434'</td><td class=b>= SP800UZ</td>
<td>'S0052'</td><td>= E-M5MarkII</td>
</tr><tr><td>'D4231'</td><td>= FerrariMODEL2004</td>
<td class=b>'D4442'</td><td class=b>= FE5035</td>
</tr><tr><td>'D4220'</td><td>= u-miniD,Stylus V</td>
<td class=b>'D4439'</td><td class=b>= FE4020,X940</td>
<td>'S0059'</td><td>= E-M10MarkII</td>
</tr><tr><td>'D4240'</td><td>= X500,D590Z,C470Z</td>
<td class=b>'D4448'</td><td class=b>= FE4050,X970</td>
</tr><tr><td>'D4221'</td><td>= u40D,S500,uD500</td>
<td class=b>'D4442'</td><td class=b>= FE5035</td>
<td>'S0061'</td><td>= PEN-F</td>
</tr><tr><td>'D4244'</td><td>= uD800,S800</td>
<td class=b>'D4450'</td><td class=b>= FE5050,X985</td>
</tr><tr><td>'D4231'</td><td>= FerrariMODEL2004</td>
<td class=b>'D4448'</td><td class=b>= FE4050,X970</td>
<td>'S0065'</td><td>= E-PL8</td>
</tr><tr><td>'D4256'</td><td>= u720SW,S720SW</td>
<td class=b>'D4454'</td><td class=b>= u-7050</td>
</tr><tr><td>'D4240'</td><td>= X500,D590Z,C470Z</td>
<td class=b>'D4450'</td><td class=b>= FE5050,X985</td>
<td>'S0067'</td><td>= E-M1MarkII</td>
</tr><tr><td>'D4261'</td><td>= X600,D630,FE5500</td>
<td class=b>'D4464'</td><td class=b>= T10,X27</td>
</tr><tr><td>'D4244'</td><td>= uD800,S800</td>
<td class=b>'D4454'</td><td class=b>= u-7050</td>
<td>'S0068'</td><td>= E-M10MarkIII</td>
</tr><tr><td>'D4262'</td><td>= uD600,S600</td>
<td class=b>'D4470'</td><td class=b>= FE5040,X980</td>
</tr><tr><td>'D4256'</td><td>= u720SW,S720SW</td>
<td class=b>'D4464'</td><td class=b>= T10,X27</td>
<td>'S0076'</td><td>= E-PL9</td>
</tr><tr><td>'D4301'</td><td>= u810/S810</td>
<td class=b>'D4472'</td><td class=b>= TG-310</td>
</tr><tr><td>'D4261'</td><td>= X600,D630,FE5500</td>
<td class=b>'D4470'</td><td class=b>= FE5040,X980</td>
<td>'S0080'</td><td>= E-M1X</td>
</tr><tr><td>'D4302'</td><td>= u710,S710</td>
<td class=b>'D4474'</td><td class=b>= TG-610</td>
</tr><tr><td>'D4262'</td><td>= uD600,S600</td>
<td class=b>'D4472'</td><td class=b>= TG-310</td>
<td>'S0085'</td><td>= E-PL10</td>
</tr><tr><td>'D4303'</td><td>= u700,S700</td>
<td class=b>'D4476'</td><td class=b>= TG-810</td>
</tr><tr><td>'D4301'</td><td>= u810/S810</td>
<td class=b>'D4474'</td><td class=b>= TG-610</td>
<td>'S0088'</td><td>= E-M10MarkIV</td>
</tr><tr><td>'D4304'</td><td>= FE100,X710</td>
<td class=b>'D4478'</td><td class=b>= VG145,VG140,D715</td>
</tr><tr><td>'D4302'</td><td>= u710,S710</td>
<td class=b>'D4476'</td><td class=b>= TG-810</td>
<td>'S0089'</td><td>= E-M5MarkIII</td>
</tr><tr><td>'D4305'</td><td>= FE110,X705</td>
<td class=b>'D4479'</td><td class=b>= VG130,D710</td>
</tr><tr><td>'D4303'</td><td>= u700,S700</td>
<td class=b>'D4478'</td><td class=b>= VG145,VG140,D715</td>
<td>'S0092'</td><td>= E-M1MarkIII</td>
</tr><tr><td>'D4310'</td><td>= FE-130,X-720</td>
<td class=b>'D4480'</td><td class=b>= VG120,D705</td>
</tr><tr><td>'D4304'</td><td>= FE100,X710</td>
<td class=b>'D4479'</td><td class=b>= VG130,D710</td>
<td>'S0093'</td><td>= E-P7</td>
</tr><tr><td>'D4311'</td><td>= FE-140,X-725</td>
</tr><tr><td>'D4305'</td><td>= FE110,X705</td>
<td class=b>'D4480'</td><td class=b>= VG120,D705</td>
<td>'S0094'</td><td>= E-M10MarkIIIS</td>
</tr><tr><td>'D4310'</td><td>= FE-130,X-720</td>
<td class=b>'D4482'</td><td class=b>= VR310,D720</td>
<td>'S0095'</td><td>= OM-1</td>
</tr><tr><td>'D4312'</td><td>= FE150,X730</td>
</tr><tr><td>'D4311'</td><td>= FE-140,X-725</td>
<td class=b>'D4484'</td><td class=b>= VR320,D725</td>
<td>'S0101'</td><td>= OM-5</td>
</tr><tr><td>'D4313'</td><td>= FE160,X735</td>
</tr><tr><td>'D4312'</td><td>= FE150,X730</td>
<td class=b>'D4486'</td><td class=b>= VR330,D730</td>
<td>'SR45'</td><td>= D220</td>
</tr><tr><td>'D4314'</td><td>= u740,S740</td>
<td>'S0121'</td><td>= OM-1MarkII</td>
</tr><tr><td>'D4313'</td><td>= FE160,X735</td>
<td class=b>'D4488'</td><td class=b>= VG110,D700</td>
<td>'SR55'</td><td>= D320L</td>
</tr><tr><td>'D4315'</td><td>= u750,S750</td>
<td>'S0123'</td><td>= OM-3</td>
</tr><tr><td>'D4314'</td><td>= u740,S740</td>
<td class=b>'D4490'</td><td class=b>= SP-610UZ</td>
<td>'SR83'</td><td>= D340L</td>
</tr><tr><td>'D4316'</td><td>= u730/S730</td>
<td>'SR45'</td><td>= D220</td>
</tr><tr><td>'D4315'</td><td>= u750,S750</td>
<td class=b>'D4492'</td><td class=b>= SZ-10</td>
<td>'SR85'</td><td>= C830L,D340R</td>
</tr><tr><td>'D4317'</td><td>= FE115,X715</td>
<td>'SR55'</td><td>= D320L</td>
</tr><tr><td>'D4316'</td><td>= u730/S730</td>
<td class=b>'D4494'</td><td class=b>= SZ-20</td>
<td>'SR852'</td><td>= C860L,D360L</td>
</tr><tr><td>'D4321'</td><td>= SP550UZ</td>
<td>'SR83'</td><td>= D340L</td>
</tr><tr><td>'D4317'</td><td>= FE115,X715</td>
<td class=b>'D4496'</td><td class=b>= SZ-30MR</td>
<td>'SR872'</td><td>= C900Z,D400Z</td>
</tr><tr><td>'D4322'</td><td>= SP510UZ</td>
<td>'SR85'</td><td>= C830L,D340R</td>
</tr><tr><td>'D4321'</td><td>= SP550UZ</td>
<td class=b>'D4498'</td><td class=b>= SP-810UZ</td>
<td>'SR874'</td><td>= C960Z,D460Z</td>
</tr><tr><td>'D4324'</td><td>= FE170,X760</td>
<td>'SR852'</td><td>= C860L,D360L</td>
</tr><tr><td>'D4322'</td><td>= SP510UZ</td>
<td class=b>'D4500'</td><td class=b>= SZ-11</td>
<td>'SR951'</td><td>= C2000Z</td>
</tr><tr><td>'D4326'</td><td>= FE200</td>
<td>'SR872'</td><td>= C900Z,D400Z</td>
</tr><tr><td>'D4324'</td><td>= FE170,X760</td>
<td class=b>'D4504'</td><td class=b>= TG-615</td>
<td>'SR952'</td><td>= C21</td>
</tr><tr><td>'D4327'</td><td>= FE190/X750</td>
<td>'SR874'</td><td>= C960Z,D460Z</td>
</tr><tr><td>'D4326'</td><td>= FE200</td>
<td class=b>'D4508'</td><td class=b>= TG-620</td>
<td>'SR953'</td><td>= C21T.commu</td>
</tr><tr><td>'D4328'</td><td>= u760,S760</td>
<td>'SR951'</td><td>= C2000Z</td>
</tr><tr><td>'D4327'</td><td>= FE190/X750</td>
<td class=b>'D4510'</td><td class=b>= TG-820</td>
<td>'SR954'</td><td>= C2020Z</td>
</tr><tr><td>'D4330'</td><td>= FE180/X745</td>
<td>'SR952'</td><td>= C21</td>
</tr><tr><td>'D4328'</td><td>= u760,S760</td>
<td class=b>'D4512'</td><td class=b>= TG-1</td>
<td>'SR955'</td><td>= C990Z,D490Z</td>
</tr><tr><td>'D4331'</td><td>= u1000/S1000</td>
<td>'SR953'</td><td>= C21T.commu</td>
</tr><tr><td>'D4330'</td><td>= FE180/X745</td>
<td class=b>'D4516'</td><td class=b>= SH-21</td>
<td>'SR956'</td><td>= C211Z</td>
</tr><tr><td>'D4332'</td><td>= u770SW,S770SW</td>
<td>'SR954'</td><td>= C2020Z</td>
</tr><tr><td>'D4331'</td><td>= u1000/S1000</td>
<td class=b>'D4519'</td><td class=b>= SZ-14</td>
<td>'SR959'</td><td>= C990ZS,D490Z</td>
</tr><tr><td>'D4333'</td><td>= FE240/X795</td>
<td>'SR955'</td><td>= C990Z,D490Z</td>
</tr><tr><td>'D4332'</td><td>= u770SW,S770SW</td>
<td class=b>'D4520'</td><td class=b>= SZ-31MR</td>
<td>'SR95A'</td><td>= C2100UZ</td>
</tr><tr><td>'D4334'</td><td>= FE210,X775</td>
<td>'SR956'</td><td>= C211Z</td>
</tr><tr><td>'D4333'</td><td>= FE240/X795</td>
<td class=b>'D4521'</td><td class=b>= SH-25MR</td>
<td>'SR971'</td><td>= C100,D370</td>
</tr><tr><td>'D4336'</td><td>= FE230/X790</td>
<td>'SR959'</td><td>= C990ZS,D490Z</td>
</tr><tr><td>'D4334'</td><td>= FE210,X775</td>
<td class=b>'D4523'</td><td class=b>= SP-720UZ</td>
<td>'SR973'</td><td>= C2,D230</td>
</tr><tr><td>'D4337'</td><td>= FE220,X785</td>
<td>'SR95A'</td><td>= C2100UZ</td>
</tr><tr><td>'D4336'</td><td>= FE230/X790</td>
<td class=b>'D4529'</td><td class=b>= VG170</td>
<td>'SX151'</td><td>= E100RS</td>
</tr><tr><td>'D4338'</td><td>= u725SW,S725SW</td>
<td>'SR971'</td><td>= C100,D370</td>
</tr><tr><td>'D4337'</td><td>= FE220,X785</td>
<td class=b>'D4530'</td><td class=b>= VH210</td>
<td>'SX351'</td><td>= C3000Z / C3030Z</td>
</tr><tr><td>'D4339'</td><td>= FE250/X800</td>
<td>'SR973'</td><td>= C2,D230</td>
</tr><tr><td>'D4338'</td><td>= u725SW,S725SW</td>
<td class=b>'D4531'</td><td class=b>= XZ-2</td>
<td>'SX354'</td><td>= C3040Z</td>
</tr><tr><td>'D4341'</td><td>= u780,S780</td>
<td>'SX151'</td><td>= E100RS</td>
</tr><tr><td>'D4339'</td><td>= FE250/X800</td>
<td class=b>'D4535'</td><td class=b>= SP-620UZ</td>
<td>'SX355'</td><td>= C2040Z</td>
</tr><tr><td>'D4343'</td><td>= u790SW,S790SW</td>
<td>'SX351'</td><td>= C3000Z / C3030Z</td>
</tr><tr><td>'D4341'</td><td>= u780,S780</td>
<td class=b>'D4536'</td><td class=b>= TG-320</td>
<td>'SX357'</td><td>= C700UZ</td>
</tr><tr><td>'D4344'</td><td>= u1020,S1020</td>
<td>'SX354'</td><td>= C3040Z</td>
</tr><tr><td>'D4343'</td><td>= u790SW,S790SW</td>
<td class=b>'D4537'</td><td class=b>= VR340,D750</td>
<td>'SX358'</td><td>= C200Z,D510Z</td>
</tr><tr><td>'D4346'</td><td>= FE15,X10</td>
<td>'SX355'</td><td>= C2040Z</td>
</tr><tr><td>'D4344'</td><td>= u1020,S1020</td>
<td class=b>'D4538'</td><td class=b>= VG160,X990,D745</td>
<td>'SX374'</td><td>= C3100Z,C3020Z</td>
</tr><tr><td>'D4348'</td><td>= FE280,X820,C520</td>
<td>'SX357'</td><td>= C700UZ</td>
</tr><tr><td>'D4346'</td><td>= FE15,X10</td>
<td class=b>'D4541'</td><td class=b>= SZ-12</td>
<td>'SX552'</td><td>= C4040Z</td>
</tr><tr><td>'D4349'</td><td>= FE300,X830</td>
<td>'SX358'</td><td>= C200Z,D510Z</td>
</tr><tr><td>'D4348'</td><td>= FE280,X820,C520</td>
<td class=b>'D4545'</td><td class=b>= VH410</td>
<td>'SX553'</td><td>= C40Z,D40Z</td>
</tr><tr><td>'D4350'</td><td>= u820,S820</td>
<td>'SX374'</td><td>= C3100Z,C3020Z</td>
</tr><tr><td>'D4349'</td><td>= FE300,X830</td>
<td class=b>'D4546'</td><td class=b>= XZ-10</td>
<td>'SX556'</td><td>= C730UZ</td>
</tr><tr><td>'D4351'</td><td>= u1200,S1200</td>
<td>'SX552'</td><td>= C4040Z</td>
</tr><tr><td>'D4350'</td><td>= u820,S820</td>
<td class=b>'D4547'</td><td class=b>= TG-2</td>
<td>'SX558'</td><td>= C5050Z</td>
</tr><tr><td>'D4352'</td><td>= FE270,X815,C510</td>
<td>'SX553'</td><td>= C40Z,D40Z</td>
</tr><tr><td>'D4351'</td><td>= u1200,S1200</td>
<td class=b>'D4548'</td><td class=b>= TG-830</td>
<td>'SX571'</td><td>= C120,D380</td>
</tr><tr><td>'D4353'</td><td>= u795SW,S795SW</td>
<td>'SX556'</td><td>= C730UZ</td>
</tr><tr><td>'D4352'</td><td>= FE270,X815,C510</td>
<td class=b>'D4549'</td><td class=b>= TG-630</td>
<td>'SX574'</td><td>= C300Z,D550Z</td>
</tr><tr><td>'D4354'</td><td>= u1030SW,S1030SW</td>
<td>'SX558'</td><td>= C5050Z</td>
</tr><tr><td>'D4353'</td><td>= u795SW,S795SW</td>
<td class=b>'D4550'</td><td class=b>= SH-50</td>
<td>'SX575'</td><td>= C4100Z,C4000Z</td>
</tr><tr><td>'D4355'</td><td>= SP560UZ</td>
<td>'SX571'</td><td>= C120,D380</td>
</tr><tr><td>'D4354'</td><td>= u1030SW,S1030SW</td>
<td class=b>'D4553'</td><td class=b>= SZ-16,DZ-105</td>
<td>'SX751'</td><td>= X200,D560Z,C350Z</td>
</tr><tr><td>'D4356'</td><td>= u1010,S1010</td>
<td>'SX574'</td><td>= C300Z,D550Z</td>
</tr><tr><td>'D4355'</td><td>= SP560UZ</td>
<td class=b>'D4562'</td><td class=b>= SP-820UZ</td>
<td>'SX752'</td><td>= X300,D565Z,C450Z</td>
</tr><tr><td>'D4357'</td><td>= u830,S830</td>
<td>'SX575'</td><td>= C4100Z,C4000Z</td>
</tr><tr><td>'D4356'</td><td>= u1010,S1010</td>
<td class=b>'D4566'</td><td class=b>= SZ-15</td>
<td>'SX753'</td><td>= C750UZ</td>
</tr><tr><td>'D4359'</td><td>= u840,S840</td>
<td>'SX751'</td><td>= X200,D560Z,C350Z</td>
</tr><tr><td>'D4357'</td><td>= u830,S830</td>
<td class=b>'D4572'</td><td class=b>= STYLUS1</td>
<td>'SX754'</td><td>= C740UZ</td>
</tr><tr><td>'D4360'</td><td>= FE350WIDE,X865</td>
<td>'SX752'</td><td>= X300,D565Z,C450Z</td>
</tr><tr><td>'D4359'</td><td>= u840,S840</td>
<td class=b>'D4574'</td><td class=b>= TG-3</td>
<td>'SX755'</td><td>= C755UZ</td>
</tr><tr><td>'D4361'</td><td>= u850SW,S850SW</td>
<td>'SX753'</td><td>= C750UZ</td>
</tr><tr><td>'D4360'</td><td>= FE350WIDE,X865</td>
<td class=b>'D4575'</td><td class=b>= TG-850</td>
<td>'SX756'</td><td>= C5060WZ</td>
</tr><tr><td>'D4362'</td><td>= FE340,X855,C560</td>
<td>'SX754'</td><td>= C740UZ</td>
</tr><tr><td>'D4361'</td><td>= u850SW,S850SW</td>
<td class=b>'D4579'</td><td class=b>= SP-100EE</td>
<td>'SX757'</td><td>= C8080WZ</td>
</tr><tr><td>'D4363'</td><td>= FE320,X835,C540</td>
<td>'SX755'</td><td>= C755UZ</td>
</tr><tr><td>'D4362'</td><td>= FE340,X855,C560</td>
<td class=b>'D4580'</td><td class=b>= SH-60</td>
<td>'SX758'</td><td>= X350,D575Z,C360Z</td>
</tr><tr><td>'D4364'</td><td>= SP570UZ</td>
<td>'SX756'</td><td>= C5060WZ</td>
</tr><tr><td>'D4363'</td><td>= FE320,X835,C540</td>
<td class=b>'D4581'</td><td class=b>= SH-1</td>
<td>'SX759'</td><td>= X400,D580Z,C460Z</td>
</tr><tr><td>'D4366'</td><td>= FE330,X845,C550</td>
<td>'SX757'</td><td>= C8080WZ</td>
</tr><tr><td>'D4364'</td><td>= SP570UZ</td>
<td class=b>'D4582'</td><td class=b>= TG-835</td>
<td>'SX75A'</td><td>= AZ-2ZOOM</td>
</tr><tr><td>'D4368'</td><td>= FE310,X840,C530</td>
<td>'SX758'</td><td>= X350,D575Z,C360Z</td>
</tr><tr><td>'D4366'</td><td>= FE330,X845,C550</td>
<td class=b>'D4585'</td><td class=b>= SH-2 / SH-3</td>
<td>'SX75B'</td><td>= D595Z,C500Z</td>
</tr><tr><td>'D4370'</td><td>= u1050SW,S1050SW</td>
<td>'SX759'</td><td>= X400,D580Z,C460Z</td>
</tr><tr><td>'D4368'</td><td>= FE310,X840,C530</td>
<td class=b>'D4586'</td><td class=b>= TG-4</td>
<td>'SX75C'</td><td>= X550,D545Z,C480Z</td>
</tr><tr><td>'D4371'</td><td>= u1060,S1060</td>
<td>'SX75A'</td><td>= AZ-2ZOOM</td>
</tr><tr><td>'D4370'</td><td>= u1050SW,S1050SW</td>
<td class=b>'D4587'</td><td class=b>= TG-860</td>
<td>'SX75D'</td><td>= IR-300</td>
</tr><tr><td>'D4372'</td><td>= FE370,X880,C575</td>
<td>'SX75B'</td><td>= D595Z,C500Z</td>
</tr><tr><td>'D4371'</td><td>= u1060,S1060</td>
<td class=b>'D4590'</td><td class=b>= TG-TRACKER</td>
<td>'SX75F'</td><td>= C55Z,C5500Z</td>
</tr><tr><td>'D4374'</td><td>= SP565UZ</td>
<td>'SX75C'</td><td>= X550,D545Z,C480Z</td>
</tr><tr><td>'D4372'</td><td>= FE370,X880,C575</td>
<td class=b>'D4591'</td><td class=b>= TG-870</td>
<td>'SX75G'</td><td>= C170,D425</td>
</tr><tr><td>'D4377'</td><td>= u1040,S1040</td>
<td>'SX75D'</td><td>= IR-300</td>
</tr><tr><td>'D4374'</td><td>= SP565UZ</td>
<td class=b>'D4593'</td><td class=b>= TG-5</td>
<td>'SX75J'</td><td>= C180,D435</td>
</tr><tr><td>'D4378'</td><td>= FE360,X875,C570</td>
<td>'SX75F'</td><td>= C55Z,C5500Z</td>
</tr><tr><td>'D4377'</td><td>= u1040,S1040</td>
<td class=b>'D4603'</td><td class=b>= TG-6</td>
<td>'SX771'</td><td>= C760UZ</td>
</tr><tr><td>'D4379'</td><td>= FE20,X15,C25</td>
<td>'SX75G'</td><td>= C170,D425</td>
</tr><tr><td>'D4378'</td><td>= FE360,X875,C570</td>
<td class=b>'D4605'</td><td class=b>= TG-7</td>
<td>'SX772'</td><td>= C770UZ</td>
</tr><tr><td>'D4380'</td><td>= uT6000,ST6000</td>
<td>'SX75J'</td><td>= C180,D435</td>
</tr><tr><td>'D4379'</td><td>= FE20,X15,C25</td>
<td class=b>'D4809'</td><td class=b>= C2500L</td>
<td>'SX773'</td><td>= C745UZ</td>
</tr><tr><td>'D4381'</td><td>= uT8000,ST8000</td>
<td>'SX771'</td><td>= C760UZ</td>
</tr><tr><td>'D4380'</td><td>= uT6000,ST6000</td>
<td class=b>'D4842'</td><td class=b>= E-10</td>
<td>'SX774'</td><td>= X250,D560Z,C350Z</td>
</tr><tr><td>'D4382'</td><td>= u9000,S9000</td>
<td>'SX772'</td><td>= C770UZ</td>
</tr><tr><td>'D4381'</td><td>= uT8000,ST8000</td>
<td class=b>'D4856'</td><td class=b>= C-1</td>
<td>'SX775'</td><td>= X100,D540Z,C310Z</td>
</tr><tr><td>'D4384'</td><td>= SP590UZ</td>
<td>'SX773'</td><td>= C745UZ</td>
</tr><tr><td>'D4382'</td><td>= u9000,S9000</td>
<td class=b>'D4857'</td><td class=b>= C-1Z,D-150Z</td>
<td>'SX776'</td><td>= C460ZdelSol</td>
</tr><tr><td>'D4385'</td><td>= FE3010,X895</td>
<td>'SX774'</td><td>= X250,D560Z,C350Z</td>
</tr><tr><td>'D4384'</td><td>= SP590UZ</td>
<td class=b>'DCHC'</td><td class=b>= D500L</td>
<td>'SX777'</td><td>= C765UZ</td>
</tr><tr><td>'D4386'</td><td>= FE3000,X890</td>
<td>'SX775'</td><td>= X100,D540Z,C310Z</td>
</tr><tr><td>'D4385'</td><td>= FE3010,X895</td>
<td class=b>'DCHT'</td><td class=b>= D600L / D620L</td>
<td>'SX77A'</td><td>= D555Z,C315Z</td>
</tr><tr><td>'D4387'</td><td>= FE35,X30</td>
<td>'SX776'</td><td>= C460ZdelSol</td>
</tr><tr><td>'D4386'</td><td>= FE3000,X890</td>
<td class=b>'K0055'</td><td class=b>= AIR-A01</td>
<td>'SX851'</td><td>= C7070WZ</td>
</tr><tr><td>'D4388'</td><td>= u550WP,S550WP</td>
<td>'SX777'</td><td>= C765UZ</td>
</tr><tr><td>'D4387'</td><td>= FE35,X30</td>
<td class=b>'S0003'</td><td class=b>= E-330</td>
<td>'SX852'</td><td>= C70Z,C7000Z</td>
</tr><tr><td>'D4390'</td><td>= FE5000,X905</td>
<td>'SX77A'</td><td>= D555Z,C315Z</td>
</tr><tr><td>'D4388'</td><td>= u550WP,S550WP</td>
<td class=b>'S0004'</td><td class=b>= E-500</td>
<td>'SX853'</td><td>= SP500UZ</td>
</tr><tr><td>'D4391'</td><td>= u5000</td>
<td>'SX851'</td><td>= C7070WZ</td>
</tr><tr><td>'D4390'</td><td>= FE5000,X905</td>
<td class=b>'S0009'</td><td class=b>= E-400</td>
<td>'SX854'</td><td>= SP310</td>
</tr><tr><td>'D4392'</td><td>= u7000,S7000</td>
<td>'SX852'</td><td>= C70Z,C7000Z</td>
</tr><tr><td>'D4391'</td><td>= u5000</td>
<td class=b>'S0010'</td><td class=b>= E-510</td>
<td>'SX855'</td><td>= SP350</td>
</tr><tr><td>'D4396'</td><td>= FE5010,X915</td>
<td>'SX853'</td><td>= SP500UZ</td>
</tr><tr><td>'D4392'</td><td>= u7000,S7000</td>
<td class=b>'S0011'</td><td class=b>= E-3</td>
<td>'SX873'</td><td>= SP320</td>
</tr><tr><td>'D4397'</td><td>= FE25,X20</td>
<td>'SX854'</td><td>= SP310</td>
</tr><tr><td>'D4396'</td><td>= FE5010,X915</td>
<td class=b>'S0013'</td><td class=b>= E-410</td>
<td>'SX875'</td><td>= FE180/X745</td>
</tr><tr><td>'D4398'</td><td>= FE45,X40</td>
<td>'SX855'</td><td>= SP350</td>
</tr><tr><td>'D4397'</td><td>= FE25,X20</td>
<td class=b>'S0016'</td><td class=b>= E-420</td>
<td>'SX876'</td><td>= FE190/X750</td>
</tr><tr><td>'D4401'</td><td>= XZ-1</td>
<td>'SX873'</td><td>= SP320</td>
</tr><tr><td>'D4398'</td><td>= FE45,X40</td>
<td class=b>'S0017'</td><td class=b>= E-30</td>
<td>'SX875'</td><td>= FE180/X745</td>
</tr><tr><td>'D4401'</td><td>= XZ-1</td>
<td class=b>'S0018'</td><td class=b>= E-520</td>
<td>'SX876'</td><td>= FE190/X750</td>
</tr><tr><td>'D4402'</td><td>= uT6010,ST6010</td>
<td class=b>'S0019'</td><td class=b>= E-P1</td>
<td>&nbsp;</td><td>&nbsp;</td>
</tr></table></td></tr></table></blockquote>
@ -1289,6 +1292,7 @@ the Make and Model are used to identify the extender)</span>
</tr><tr><td>'0 36 10'</td><td>= Olympus M.Zuiko Digital ED 8-25mm F4 Pro</td>
</tr><tr><td>'0 37 10'</td><td>= Olympus M.Zuiko Digital ED 40-150mm F4.0 Pro</td>
</tr><tr><td>'0 39 10'</td><td>= Olympus M.Zuiko Digital ED 90mm F3.5 Macro IS Pro</td>
</tr><tr><td>'0 40 10'</td><td>= Olympus M.Zuiko Digital ED 150-600mm F5.0-6.3</td>
</tr><tr><td>'1 01 00'</td><td>= Sigma 18-50mm F3.5-5.6 DC</td>
</tr><tr><td>'1 01 10'</td><td>= Sigma 30mm F2.8 EX DN</td>
</tr><tr><td>'1 02 00'</td><td>= Sigma 55-200mm F4.0-5.6 DC</td>
@ -1363,6 +1367,7 @@ the Make and Model are used to identify the extender)</span>
</tr><tr><td>'3 02 00'</td><td>= Leica D Summilux 25mm F1.4 Asph.</td>
</tr><tr><td>'5 01 10'</td><td>= Tamron 14-150mm F3.5-5.8 Di III</td>
</tr><tr><td>'24 01 10'</td><td>= Venus Optics Laowa 50mm F2.8 2x Macro</td>
</tr><tr><td>'f7 03 10'</td><td>= LAOWA C&amp;D-Dreamer MFT 7.5mm F2.0</td>
</tr></table></td></tr></table></blockquote>
<h2><a name='CameraSettings'>Olympus CameraSettings Tags</a></h2>
@ -1507,10 +1512,11 @@ the Make and Model are used to identify the extender)</span>
<td><span class=s>[Value 0]</span><table class=cols><tr>
<td>0 = Off
<br>1 = Motorsports
<br>2 = Airplanes</td><td>&nbsp;&nbsp;</td>
<td>3 = Trains
<br>4 = Birds
<br>5 = Dogs &amp; Cats</td></tr></table>
<br>2 = Airplanes
<br>3 = Trains</td><td>&nbsp;&nbsp;</td>
<td>4 = Birds
<br>5 = Dogs &amp; Cats
<br>6 = Human</td></tr></table>
<span class=s>[Value 1]
<br>0 = Object Not Found
<br>1 = Object Found</span></td></tr>
@ -1839,6 +1845,7 @@ the Make and Model are used to identify the extender)</span>
<br>4 = Light Tone
<br>5 = Pin Hole
<br>6 = Grainy Film
<br>8 = Underwater
<br>9 = Diorama
<br>10 = Cross Process
<br>12 = Fish Eye
@ -1850,9 +1857,9 @@ the Make and Model are used to identify the extender)</span>
<br>18 = Pin Hole III
<br>19 = Grainy Film II
<br>20 = Dramatic Tone
<br>21 = Punk</td><td>&nbsp;&nbsp;</td>
<td>22 = Soft Focus 2
<br>23 = Sparkle
<br>21 = Punk
<br>22 = Soft Focus 2</td><td>&nbsp;&nbsp;</td>
<td>23 = Sparkle
<br>24 = Watercolor
<br>25 = Key Line
<br>26 = Key Line II
@ -1869,7 +1876,10 @@ the Make and Model are used to identify the extender)</span>
<br>38 = Vintage III
<br>39 = Partial Color
<br>40 = Partial Color II
<br>41 = Partial Color III</td></tr></table>
<br>41 = Partial Color III
<br>42 = Bleach Bypass
<br>43 = Bleach Bypass II
<br>44 = Instant Film</td></tr></table>
</td></tr>
<tr>
<td title='0x052c = 1324'>0x052c</td>
@ -1883,6 +1893,7 @@ the Make and Model are used to identify the extender)</span>
<br>4 = Light Tone
<br>5 = Pin Hole
<br>6 = Grainy Film
<br>8 = Underwater
<br>9 = Diorama
<br>10 = Cross Process
<br>12 = Fish Eye
@ -1894,9 +1905,9 @@ the Make and Model are used to identify the extender)</span>
<br>18 = Pin Hole III
<br>19 = Grainy Film II
<br>20 = Dramatic Tone
<br>21 = Punk</td><td>&nbsp;&nbsp;</td>
<td>22 = Soft Focus 2
<br>23 = Sparkle
<br>21 = Punk
<br>22 = Soft Focus 2</td><td>&nbsp;&nbsp;</td>
<td>23 = Sparkle
<br>24 = Watercolor
<br>25 = Key Line
<br>26 = Key Line II
@ -1913,7 +1924,10 @@ the Make and Model are used to identify the extender)</span>
<br>38 = Vintage III
<br>39 = Partial Color
<br>40 = Partial Color II
<br>41 = Partial Color III</td></tr></table>
<br>41 = Partial Color III
<br>42 = Bleach Bypass
<br>43 = Bleach Bypass II
<br>44 = Instant Film</td></tr></table>
</td></tr>
<tr class=b>
<td title='0x052d = 1325'>0x052d</td>
@ -1944,6 +1958,7 @@ the Make and Model are used to identify the extender)</span>
<br>0x4 = Light Tone
<br>0x5 = Pin Hole
<br>0x6 = Grainy Film
<br>0x8 = Underwater
<br>0x9 = Diorama
<br>0xa = Cross Process
<br>0xc = Fish Eye
@ -1955,9 +1970,9 @@ the Make and Model are used to identify the extender)</span>
<br>0x12 = Pin Hole III
<br>0x13 = Grainy Film II
<br>0x14 = Dramatic Tone
<br>0x15 = Punk</td><td>&nbsp;&nbsp;</td>
<td>0x16 = Soft Focus 2
<br>0x17 = Sparkle
<br>0x15 = Punk
<br>0x16 = Soft Focus 2</td><td>&nbsp;&nbsp;</td>
<td>0x17 = Sparkle
<br>0x18 = Watercolor
<br>0x19 = Key Line
<br>0x1a = Key Line II
@ -1974,7 +1989,10 @@ the Make and Model are used to identify the extender)</span>
<br>0x26 = Vintage III
<br>0x27 = Partial Color
<br>0x28 = Partial Color II
<br>0x29 = Partial Color III</td></tr></table>
<br>0x29 = Partial Color III
<br>0x2a = Bleach Bypass
<br>0x2b = Bleach Bypass II
<br>0x2c = Instant Film</td></tr></table>
<span class=s>[Value 4]</span><table class=cols><tr>
<td>0x0 = No Effect
<br>0x8010 = Star Light
@ -2376,6 +2394,7 @@ the Make and Model are used to identify the extender)</span>
<br>4 = Light Tone
<br>5 = Pin Hole
<br>6 = Grainy Film
<br>8 = Underwater
<br>9 = Diorama
<br>10 = Cross Process
<br>12 = Fish Eye
@ -2387,9 +2406,9 @@ the Make and Model are used to identify the extender)</span>
<br>18 = Pin Hole III
<br>19 = Grainy Film II
<br>20 = Dramatic Tone
<br>21 = Punk</td><td>&nbsp;&nbsp;</td>
<td>22 = Soft Focus 2
<br>23 = Sparkle
<br>21 = Punk
<br>22 = Soft Focus 2</td><td>&nbsp;&nbsp;</td>
<td>23 = Sparkle
<br>24 = Watercolor
<br>25 = Key Line
<br>26 = Key Line II
@ -2406,7 +2425,10 @@ the Make and Model are used to identify the extender)</span>
<br>38 = Vintage III
<br>39 = Partial Color
<br>40 = Partial Color II
<br>41 = Partial Color III</td></tr></table>
<br>41 = Partial Color III
<br>42 = Bleach Bypass
<br>43 = Bleach Bypass II
<br>44 = Instant Film</td></tr></table>
</td></tr>
</table></td></tr></table></blockquote>
@ -2424,87 +2446,88 @@ the Make and Model are used to identify the extender)</span>
<tr class=b>
<td title='0x0100 = 256'>0x0100</td>
<td>WB_RBLevels</td>
<td class=c>int16u[2]</td>
<td>&nbsp;</td></tr>
<td class=c>int16u[n]</td>
<td><span class=s><span class=n>(These tags store 2 values, red and blue levels, for some models, but 4
values, presumably RBGG levels, for other models)</span></span></td></tr>
<tr>
<td title='0x0102 = 258'>0x0102</td>
<td>WB_RBLevels3000K</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x0103 = 259'>0x0103</td>
<td>WB_RBLevels3300K</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x0104 = 260'>0x0104</td>
<td>WB_RBLevels3600K</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x0105 = 261'>0x0105</td>
<td>WB_RBLevels3900K</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x0106 = 262'>0x0106</td>
<td>WB_RBLevels4000K</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x0107 = 263'>0x0107</td>
<td>WB_RBLevels4300K</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x0108 = 264'>0x0108</td>
<td>WB_RBLevels4500K</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x0109 = 265'>0x0109</td>
<td>WB_RBLevels4800K</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x010a = 266'>0x010a</td>
<td>WB_RBLevels5300K</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x010b = 267'>0x010b</td>
<td>WB_RBLevels6000K</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x010c = 268'>0x010c</td>
<td>WB_RBLevels6600K</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x010d = 269'>0x010d</td>
<td>WB_RBLevels7500K</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x010e = 270'>0x010e</td>
<td>WB_RBLevelsCWB1</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x010f = 271'>0x010f</td>
<td>WB_RBLevelsCWB2</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x0110 = 272'>0x0110</td>
<td>WB_RBLevelsCWB3</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x0111 = 273'>0x0111</td>
<td>WB_RBLevelsCWB4</td>
<td class=c>int16u[2]</td>
<td class=c>int16u[n]</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x0113 = 275'>0x0113</td>
@ -2894,7 +2917,8 @@ give AF point, upper bits give AF target selection mode)</span>
<td>0x2 = Airplanes
<br>0x3 = Trains</td><td>&nbsp;&nbsp;</td>
<td>0x4 = Birds
<br>0x5 = Dogs &amp; Cats</td></tr></table>
<br>0x5 = Dogs &amp; Cats</td><td>&nbsp;&nbsp;</td>
<td>0x6 = Human</td></tr></table>
<span class=s>[Value 1]</span><table class=cols><tr>
<td>0x0 = Face Priority</td><td>&nbsp;&nbsp;</td>
<td>0x1 = Target Priority</td></tr></table>
@ -3799,7 +3823,7 @@ such as the OM E-M5.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Nov 19, 2023</i>
<br><i>Last revised May 22, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -77,11 +77,13 @@ extract information from all frames of a multipart image. See
<td>0 = None
<br>1 = RLE
<br>2 = ZIPS
<br>3 = ZIP</td><td>&nbsp;&nbsp;</td>
<td>4 = PIZ
<br>5 = PXR24
<br>3 = ZIP
<br>4 = PIZ</td><td>&nbsp;&nbsp;</td>
<td>5 = PXR24
<br>6 = B44
<br>7 = B44A</td></tr></table>
<br>7 = B44A
<br>8 = DWAA
<br>9 = DWAB</td></tr></table>
</td></tr>
<tr class=b>
<td>'dataWindow'</td>
@ -100,147 +102,157 @@ extract information from all frames of a multipart image. See
<td><span class=s>0 = Latitude/Longitude
<br>1 = Cube</span></td></tr>
<tr>
<td>'exif'</td>
<td>EXIF</td>
<td class=c>-</td>
<td>--&gt; <a href='EXIF.html'>EXIF Tags</a></td></tr>
<tr class=b>
<td>'expTime'</td>
<td>ExposureTime</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'focus'</td>
<td>FocusDistance</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'framesPerSecond'</td>
<td>FramesPerSecond</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'isoSpeed'</td>
<td>ISO</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'keyCode'</td>
<td>KeyCode</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'latitude'</td>
<td>GPSLatitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'lineOrder'</td>
<td>LineOrder</td>
<td class=c>no</td>
<td><span class=s>0 = Increasing Y
<br>1 = Decreasing Y
<br>2 = Random Y</span></td></tr>
<tr class=b>
<tr>
<td>'longitude'</td>
<td>GPSLongitude</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'lookModTransform'</td>
<td>LookModTransform</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'multiView'</td>
<td>MultiView</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'name'</td>
<td>Name</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'owner'</td>
<td>Owner</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'pixelAspectRatio'</td>
<td>PixelAspectRatio</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'preview'</td>
<td>Preview</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'renderingTransform'</td>
<td>RenderingTransform</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'screenWindowCenter'</td>
<td>ScreenWindowCenter</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'screenWindowWidth'</td>
<td>ScreenWindowWidth</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'tiles'</td>
<td>Tiles</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'timeCode'</td>
<td>TimeCode</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'type'</td>
<td>Type</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'utcOffset'</td>
<td>TimeZone</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'version'</td>
<td>Version</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'whiteLuminance'</td>
<td>WhiteLuminance</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'worldToCamera'</td>
<td>WorldToCamera</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'worldToNDC'</td>
<td>WorldToNDC</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'wrapmodes'</td>
<td>WrapModes</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'xDensity'</td>
<td>XResolution</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'xmp'</td>
<td>XMP</td>
<td class=c>-</td>
<td>--&gt; <a href='XMP.html'>XMP Tags</a></td></tr>
</table></td></tr></table></blockquote>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Feb 9, 2023</i>
<br><i>Last revised Aug 9, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

356
html/TagNames/PCAP.html Normal file
View File

@ -0,0 +1,356 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- (this file generated automatically by Image::ExifTool::BuildTagLookup) -->
<head>
<title>PCAP Tags</title>
<link rel=stylesheet type='text/css' href='style.css' title='Style'>
</head>
<body>
<h2 class=top>PCAP Tags</h2>
<p>Tags extracted from CAP, PCAP and PCAPNG Packet Capture files.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag&nbsp;ID</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td title='0x0001 = 1'>0x0001</td>
<td>Comment</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x0bac = 2988'>0x0bac</td>
<td>CustomOption1</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x0bad = 2989'>0x0bad</td>
<td>CustomOption2</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x4bac = 19372'>0x4bac</td>
<td>CustomOption3</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x4bad = 19373'>0x4bad</td>
<td>CustomOption4</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'ByteOrder'</td>
<td>ByteOrder</td>
<td class=c>no</td>
<td><span class=s>&#39;II&#39; = Little-endian (Intel, II)
<br>&#39;MM&#39; = Big-endian (Motorola, MM)</span></td></tr>
<tr>
<td>'IDB-2'</td>
<td>DeviceName</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'IDB-3'</td>
<td>Description</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'IDB-4'</td>
<td>IPv4Addr</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'IDB-5'</td>
<td>IPv6Addr</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'IDB-6'</td>
<td>MACAddr</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'IDB-7'</td>
<td>EUIAddr</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'IDB-8'</td>
<td>Speed</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'IDB-9'</td>
<td>TimeStampResolution</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'IDB-10'</td>
<td>TimeZone</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'IDB-11'</td>
<td>Filter</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'IDB-12'</td>
<td>OperatingSystem</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'IDB-13'</td>
<td>FrameCheckSequenceLength</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'IDB-14'</td>
<td>TimeStampOffset</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'IDB-15'</td>
<td>Hardware</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'IDB-16'</td>
<td>TXSpeed</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'IDB-17'</td>
<td>RXSpeed</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'IDB-18'</td>
<td>TimezoneName</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'LinkType'</td>
<td>LinkType</td>
<td class=c>no</td>
<td><table class=cols><tr>
<td>0 = BSD Loopback
<br>1 = IEEE 802.3 Ethernet
<br>2 = Experimental 4Mb Ethernet
<br>3 = AX.25
<br>4 = PRONET
<br>5 = MIT CHAOSNET
<br>6 = IEEE 802.5
<br>7 = ARCNET BSD
<br>8 = SLIP
<br>9 = PPP
<br>10 = fddI
<br>50 = PPP HDLC
<br>51 = PPP Ethernet
<br>99 = Symantec Firewall
<br>100 = ATM RFC 1483
<br>101 = Raw
<br>102 = SLIP BSD/OS
<br>103 = PPP BSD/OS
<br>104 = Cisco PPP with HDLC
<br>105 = IEEE 802.11
<br>106 = ATM Classical IP
<br>107 = Frame Relay
<br>108 = OpenBSD Loopback
<br>109 = OpenBSD IPSEC
<br>110 = ATM LANE 802.3
<br>111 = NetBSD HIPPI
<br>112 = NetBSD HDLC
<br>113 = Linux SLL
<br>114 = Apple LocalTalk
<br>115 = Acorn Econet
<br>116 = OpenBSD ipfilter
<br>117 = OpenBSD pflog
<br>118 = Cisco IOS
<br>119 = IEEE 802.11 Prism
<br>120 = IEEE 802.11 Aironet
<br>121 = Siemens HiPath HDLC
<br>122 = IP-over-Fibre
<br>123 = SunATM
<br>124 = RapidIO
<br>125 = PCI Express
<br>126 = Xilinx Aurora
<br>127 = IEEE 802.11 Radiotap
<br>128 = Tazmen Sniffer
<br>129 = ARCNET Linux
<br>130 = Juniper MLPPP
<br>131 = Juniper MLFR
<br>132 = Juniper ES
<br>133 = Juniper GGSN
<br>134 = Juniper MFR
<br>135 = Juniper ATM2
<br>136 = Juniper Services
<br>137 = Juniper ATM1
<br>138 = Apple IP-over-IEEE 1394
<br>139 = MTP2 with PHDR
<br>140 = MTP2
<br>141 = MTP3
<br>142 = SCCP
<br>143 = DOCSIS
<br>144 = Linux IrDA
<br>145 = IBM SP
<br>146 = IBM SN
<br>163 = IEEE 802.11 AVS
<br>164 = Juniper Monitor
<br>165 = BACnet MS/TP
<br>166 = PPP PPPD
<br>167 = Juniper PPPOE
<br>168 = Juniper PPPOE ATM
<br>169 = GPRS LLC
<br>170 = GPF-T
<br>171 = GPF-F
<br>172 = Gcom T1/E1
<br>173 = Gcom Serial
<br>174 = Juniper PIC Peer
<br>175 = ERF ETH
<br>176 = ERF POS
<br>177 = Linux LAPD
<br>178 = Juniper Ether
<br>179 = Juniper PPP
<br>180 = Juniper Frame Relay
<br>181 = Juniper CHDLC
<br>182 = Juniper VP
<br>185 = A653 ICM
<br>186 = USB FreeBSD
<br>187 = Bluetooth HCI H4
<br>188 = IEEE 802.16 MAC CPS
<br>189 = USB Linux
<br>190 = CAN 2.0B
<br>191 = IEEE 802.15.4 Linux
<br>192 = PPI
<br>193 = IEEE 802.16 MAC CPS Radio
<br>194 = Juniper ISM
<br>195 = IEEE 802.15.4 with FCS
<br>196 = SITA</td><td>&nbsp;&nbsp;</td>
<td>197 = ERF
<br>198 = RAIF1
<br>199 = IPMB Kontron
<br>200 = Juniper ST
<br>201 = Bluetooth HCI H4 with PHDR
<br>202 = AX.25 KISS
<br>203 = LAPD
<br>204 = PPP with DIR
<br>205 = Cisco HDLC with DIR
<br>206 = Frame Relay with DIR
<br>207 = LAPB with DIR
<br>209 = IPMB Linux
<br>210 = FlexRay
<br>211 = MOST
<br>212 = LIN
<br>213 = X2E Serial
<br>214 = X2E Xoraya
<br>215 = IEEE 802.15.4 Nonask PHY
<br>216 = Linux evdev
<br>217 = GSMtap Um
<br>218 = GSMtap Abis
<br>219 = MPLS
<br>220 = USB Linux MMapped
<br>221 = DECT
<br>222 = AOS
<br>223 = Wireless HART
<br>224 = FC-2
<br>225 = FC-2 with Frame Delims
<br>226 = IPNET
<br>227 = CAN Socketcan
<br>228 = IPv4
<br>229 = IPv6
<br>230 = IEEE 802.15.4 No FCS
<br>231 = D-Bus
<br>232 = Juniper VS
<br>233 = Juniper SRX E2E
<br>234 = Juniper Fibre Channel
<br>235 = DVB-CI
<br>236 = Mux 27.010
<br>237 = STANAG 5066 D_PDU
<br>238 = Juniper ATM Cemic
<br>239 = NFLOG
<br>240 = Netanalyzer
<br>241 = Netanalyzer Transparent
<br>242 = IP-over-InfiniBand
<br>243 = MPEG-2 TS
<br>244 = NG40
<br>245 = NFC LLCP
<br>246 = Pfsync
<br>247 = InfiniBand
<br>248 = SCTP
<br>249 = USBPcap
<br>250 = RTAC Serial
<br>251 = Bluetooth LE LL
<br>252 = Wireshark Upper PDU
<br>253 = Netlink
<br>254 = Bluetooth Linux Monitor
<br>255 = Bluetooth BREDR BB
<br>256 = Bluetooth LE LL with PHDR
<br>257 = PROFIBUS Data Link
<br>258 = Apple PKTAP
<br>259 = EPON
<br>260 = IPMI HPM.2
<br>261 = Z-Wave R1/R2
<br>262 = Z-Wave R3
<br>263 = WattStopper DLM
<br>264 = ISO 14443
<br>265 = RDS
<br>266 = USB Darwin
<br>267 = Openflow
<br>268 = SDLC
<br>269 = TI LLN Sniffer
<br>270 = LoRaTap
<br>271 = Vsock
<br>272 = Nordic BLE
<br>273 = DOCSIS 31 XRA31
<br>274 = Ethernet MPacket
<br>275 = DisplayPort AUX
<br>276 = Linux SLL2
<br>277 = Sercos Monitor
<br>278 = Openvizsla
<br>279 = Elektrobit EBHSR
<br>280 = VPP Dispatch
<br>281 = DSA Tag BRCM
<br>282 = DSA Tag BRCM Prepend
<br>283 = IEEE 802.15.4 Tap
<br>284 = DSA Tag DSA
<br>285 = DSA Tag EDSA
<br>286 = ELEE
<br>287 = Z-Wave Serial
<br>288 = USB 2.0
<br>289 = ATSC ALP</td></tr></table>
</td></tr>
<tr>
<td>'PCAPVersion'</td>
<td>PCAPVersion</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'SHB-2'</td>
<td>Hardware</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'SHB-3'</td>
<td>OperatingSystem</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'SHB-4'</td>
<td>UserApplication</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'TimeStamp'</td>
<td>TimeStamp</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Mar 11, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -134,11 +134,11 @@ when reading)</span></span></td></tr>
<td class=c title=' + = List'>string+</td>
<td><span class=s><span class=n>(stored as a string but treated as a comma- or semicolon-separated list of
items when reading if the string contains commas or semicolons, whichever is
more numerous, otherwise it is treated a space-separated list of items.
Written as a comma-separated list. The list behaviour may be defeated by
setting the API NoPDFList option. Note that the corresponding
XMP-pdf:Keywords tag is not treated as a list, so the NoPDFList option
should be used when copying between these two.)</span></span></td></tr>
more numerous, otherwise it is treated a space-separated list of items. The
list behaviour may be defeated by setting the API NoPDFList option. Written
as a comma-separated string. Note that the corresponding XMP-pdf:Keywords
tag is not treated as a list, so the NoPDFList option should be used when
copying between these two.)</span></span></td></tr>
<tr class=b>
<td>'ModDate'</td>
<td>ModifyDate</td>
@ -150,16 +150,21 @@ should be used when copying between these two.)</span></span></td></tr>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'SourceModified'</td>
<td>SourceModified</td>
<td class=c>date</td>
<td>&nbsp;</td></tr>
<tr>
<td>'Subject'</td>
<td>Subject</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'Title'</td>
<td>Title</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'Trapped'</td>
<td>Trapped</td>
<td class=c title=' ! = Unsafe'>string!</td>
@ -408,7 +413,7 @@ uses XML Forms Architecture; not a real Tag ID)</span>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>'_stream'</td>
<td>_stream</td>
<td>PhotoshopStream</td>
<td class=c>-</td>
<td>--&gt; <a href='Photoshop.html'>Photoshop Tags</a></td></tr>
</table></td></tr></table></blockquote>
@ -474,7 +479,7 @@ PostScript documents in the AIPrivateData# and AIPDFPrivateData# streams)</span>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>'_stream'</td>
<td>_stream</td>
<td>AIStream</td>
<td class=c>-</td>
<td>--&gt; <a href='PostScript.html'>PostScript Tags</a></td></tr>
</table></td></tr></table></blockquote>
@ -551,7 +556,7 @@ PostScript documents in the AIPrivateData# and AIPDFPrivateData# streams)</span>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>'_stream'</td>
<td>_stream</td>
<td>ICC_Profile</td>
<td class=c>-</td>
<td>--&gt; <a href='ICC_Profile.html'>ICC_Profile Tags</a></td></tr>
</table></td></tr></table></blockquote>
@ -792,7 +797,7 @@ false)</span>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jan 30, 2024</i>
<br><i>Last revised Feb 6, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -48,31 +48,94 @@ either &quot;XML&quot; or &quot;PLIST&quot; depending on whether the format is X
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'adjustmentData'</td>
<td>AdjustmentData</td>
<td class=c>-</td>
<td>--&gt; <a href='PLIST.html'>PLIST Tags</a></td></tr>
<tr class=b>
<td>'cast//name'</td>
<td>Cast</td>
<td class=c title=' + = List'>no+</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'codirectors//name'</td>
<td>Codirectors</td>
<td class=c title=' + = List'>no+</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'directors//name'</td>
<td>Directors</td>
<td class=c title=' + = List'>no+</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'producers//name'</td>
<td>Producers</td>
<td class=c title=' + = List'>no+</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'screenwriters//name'</td>
<td>Screenwriters</td>
<td class=c title=' + = List'>no+</td>
<td>&nbsp;</td></tr>
<tr>
<td>'slowMotion/rate'</td>
<td>SlowMotionRate</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'slowMotion/regions'</td>
<td>SlowMotionRegions</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'slowMotion/regions/timeRange/duration/epoch'</td>
<td>SlowMotionRegionsDurationEpoch</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'slowMotion/regions/timeRange/duration/flags'</td>
<td>SlowMotionRegionsDurationFlags</td>
<td class=c>no</td>
<td><span class=s>Bit 0 = Valid
<br>Bit 1 = Has been rounded
<br>Bit 2 = Positive infinity
<br>Bit 3 = Negative infinity
<br>Bit 4 = Indefinite</span></td></tr>
<tr>
<td>'slowMotion/regions/timeRange/duration/timescale'</td>
<td>SlowMotionRegionsDurationTimeScale</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'slowMotion/regions/timeRange/duration/value'</td>
<td>SlowMotionRegionsDurationValue</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'slowMotion/regions/timeRange/start/epoch'</td>
<td>SlowMotionRegionsStartTimeEpoch</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'slowMotion/regions/timeRange/start/flags'</td>
<td>SlowMotionRegionsStartTimeFlags</td>
<td class=c>no</td>
<td><span class=s>Bit 0 = Valid
<br>Bit 1 = Has been rounded
<br>Bit 2 = Positive infinity
<br>Bit 3 = Negative infinity
<br>Bit 4 = Indefinite</span></td></tr>
<tr>
<td>'slowMotion/regions/timeRange/start/timescale'</td>
<td>SlowMotionRegionsStartTimeScale</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'slowMotion/regions/timeRange/start/value'</td>
<td>SlowMotionRegionsStartTimeValue</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'studio//name'</td>
<td>Studio</td>
<td class=c title=' + = List'>no+</td>
@ -81,7 +144,7 @@ either &quot;XML&quot; or &quot;PLIST&quot; depending on whether the format is X
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Feb 22, 2013</i>
<br><i>Last revised Feb 10, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -113,69 +113,74 @@ the EXIF convention, but is the inverse of the stored encoding gamma)</span></sp
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'gdAT'</td>
<td>GainMapImage</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'hIST'</td>
<td>PaletteHistogram</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'iCCP'</td>
<td>ICC_Profile</td>
<td class=c>-</td>
<td>--&gt; <a href='ICC_Profile.html'>ICC_Profile Tags</a>
<br><span class='n s'>(this is where ExifTool will write a new ICC_Profile. When creating a new
ICC_Profile, the SRGBRendering tag should be deleted if it exists)</span></td></tr>
<tr class=b>
<tr>
<td>'iCCP-name'</td>
<td>ProfileName</td>
<td class=c>yes</td>
<td><span class=s><span class=n>(not a real tag ID, this tag represents the iCCP profile name, and may only
be written when the ICC_Profile is written)</span></span></td></tr>
<tr>
<tr class=b>
<td>'iDOT'</td>
<td>AppleDataOffsets</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'iTXt'</td>
<td>InternationalText</td>
<td class=c>-</td>
<td>--&gt; <a href='PNG.html#TextualData'>PNG TextualData Tags</a></td></tr>
<tr>
<tr class=b>
<td>'meTa'</td>
<td>MeTa</td>
<td class=c>-</td>
<td>--&gt; <a href='XMP.html#XML'>XMP XML Tags</a></td></tr>
<tr class=b>
<tr>
<td>'oFFs'</td>
<td>ImageOffset</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'pCAL'</td>
<td>PixelCalibration</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'pHYs'</td>
<td>PhysicalPixel</td>
<td class=c>-</td>
<td>--&gt; <a href='PNG.html#PhysicalPixel'>PNG PhysicalPixel Tags</a></td></tr>
<tr>
<tr class=b>
<td>'sBIT'</td>
<td>SignificantBits</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'sCAL'</td>
<td>SubjectScale</td>
<td class=c>-</td>
<td>--&gt; <a href='PNG.html#SubjectScale'>PNG SubjectScale Tags</a></td></tr>
<tr>
<tr class=b>
<td>'sPLT'</td>
<td>SuggestedPalette</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>'sRGB'</td>
<td>SRGBRendering</td>
<td class=c title=' ! = Unsafe'>yes!</td>
@ -184,11 +189,16 @@ be written when the ICC_Profile is written)</span></span></td></tr>
<br>1 = Relative Colorimetric
<br>2 = Saturation
<br>3 = Absolute Colorimetric</span></td></tr>
<tr>
<tr class=b>
<td>'sTER'</td>
<td>StereoImage</td>
<td class=c>-</td>
<td>--&gt; <a href='PNG.html#StereoImage'>PNG StereoImage Tags</a></td></tr>
<tr>
<td>'seAl'</td>
<td>SEAL</td>
<td class=c>-</td>
<td>--&gt; <a href='XMP.html#SEAL'>XMP SEAL Tags</a></td></tr>
<tr class=b>
<td>'tEXt'</td>
<td>TextualData</td>
@ -593,15 +603,25 @@ where ExifTool will add new IPTC, inside a Photoshop IRB container)</span></td><
XMP specification, and is where ExifTool will add a new XMP chunk if the
image didn&#39;t already contain XMP)</span></td></tr>
<tr>
<td>'aesthetic_score'</td>
<td>AestheticScore</td>
<td class=c>string</td>
<td><span class=s><span class=n>(unregistered)</span></span></td></tr>
<tr class=b>
<td>'create-date'</td>
<td>CreateDate</td>
<td class=c>string</td>
<td><span class=s><span class=n>(unregistered)</span></span></td></tr>
<tr class=b>
<tr>
<td>'modify-date'</td>
<td>ModDate</td>
<td class=c>string</td>
<td><span class=s><span class=n>(unregistered)</span></span></td></tr>
<tr class=b>
<td>'parameters'</td>
<td>Parameters</td>
<td class=c>string</td>
<td><span class=s><span class=n>(unregistered)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='PhysicalPixel'>PNG PhysicalPixel Tags</a></h2>
@ -695,7 +715,7 @@ when any of these tags is written, and may only be deleted as a group.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jan 10, 2024</i>
<br><i>Last revised Feb 26, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -86,10 +86,14 @@ reference number and not the actual firmware version)</span></span></td></tr>
<br>&#39;1 1&#39; = 5-area
<br>&#39;16 0&#39; = 1-area
<br>&#39;16 16&#39; = 1-area (high speed)
<br>&#39;16 32&#39; = 1-area +
<br>&#39;17 0&#39; = Full Area
<br>&#39;32 0&#39; = Tracking
<br>&#39;32 1&#39; = 3-area (left)?
<br>&#39;32 2&#39; = 3-area (center)?
<br>&#39;32 3&#39; = 3-area (right)?
<br>&#39;32 16&#39; = Zone
<br>&#39;32 18&#39; = Zone (horizontal/vertical)
<br>&#39;64 0&#39; = Face Detect
<br>&#39;64 1&#39; = Face Detect (animal detect on)
<br>&#39;64 2&#39; = Face Detect (animal detect off)
@ -1003,15 +1007,40 @@ camera contrast)</span></span></td></tr>
<td class=c>rational64s</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x00de = 222'>0x00de</td>
<td>AFAreaSize</td>
<td class=c>rational64u[2]</td>
<td><span class=s><span class=n>(relative to size of image)</span></span></td></tr>
<tr>
<td title='0x00e4 = 228'>0x00e4</td>
<td>LensTypeModel</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x00e8 = 232'>0x00e8</td>
<td>MinimumISO</td>
<td class=c>int32u</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x00e9 = 233'>0x00e9</td>
<td>AFSubjectDetection</td>
<td class=c>int16u</td>
<td><table class=cols><tr>
<td>0 = n/a
<br>1 = Human Eye/Face/Body
<br>2 = Animal
<br>3 = Human Eye/Face
<br>4 = Animal Body
<br>5 = Animal Eye/Body
<br>6 = Car
<br>7 = Motorcycle
<br>8 = Car (main part priority)
<br>9 = Motorcycle (helmet priority)
<br>10 = Train
<br>11 = Train (main part priority)
<br>12 = Airplane
<br>13 = Airplane (nose priority)</td></tr></table>
</td></tr>
<tr class=b>
<td title='0x00ee = 238'>0x00ee</td>
<td>DynamicRangeBoost</td>
@ -2191,7 +2220,7 @@ various Panasonic and Leica models.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jan 10, 2024</i>
<br><i>Last revised Apr 25, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -200,21 +200,26 @@ noise-reduction strengths the R, G and B channels)</span></span></td></tr>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x0037 = 55'>0x0037</td>
<td>ISO</td>
<td class=c>int32u</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x010f = 271'>0x010f</td>
<td>Make</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x0110 = 272'>0x0110</td>
<td>Model</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x0111 = 273'>0x0111</td>
<td>StripOffsets</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x0112 = 274'>0x0112</td>
<td>Orientation</td>
<td class=c>int16u</td>
@ -228,73 +233,73 @@ noise-reduction strengths the R, G and B channels)</span></span></td></tr>
<br>7 = Mirror horizontal and rotate 90 CW
<br>8 = Rotate 270 CW</td></tr></table>
</td></tr>
<tr class=b>
<tr>
<td title='0x0116 = 278'>0x0116</td>
<td>RowsPerStrip</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x0117 = 279'>0x0117</td>
<td>StripByteCounts</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x0118 = 280'>0x0118</td>
<td>RawDataOffset</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x0119 = 281'>0x0119</td>
<td>DistortionInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='PanasonicRaw.html#DistortionInfo'>PanasonicRaw DistortionInfo Tags</a></td></tr>
<tr class=b>
<tr>
<td title='0x011c = 284'>0x011c</td>
<td>Gamma</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x0120 = 288'>0x0120</td>
<td>CameraIFD</td>
<td class=c>-</td>
<td>--&gt; <a href='PanasonicRaw.html#CameraIFD'>PanasonicRaw CameraIFD Tags</a></td></tr>
<tr class=b>
<tr>
<td title='0x0121 = 289'>0x0121</td>
<td>Multishot</td>
<td class=c>int32u</td>
<td><span class=s>0 = Off
<br>65536 = Pixel Shift</span></td></tr>
<tr>
<tr class=b>
<td title='0x0127 = 295'>0x0127</td>
<td>JpgFromRaw2</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x013b = 315'>0x013b</td>
<td>Artist</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x02bc = 700'>0x02bc</td>
<td>ApplicationNotes</td>
<td class=c title=' ! = Unsafe'>int8u!</td>
<td>--&gt; <a href='XMP.html'>XMP Tags</a></td></tr>
<tr class=b>
<tr>
<td title='0x8298 = 33432'>0x8298</td>
<td>Copyright</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x83bb = 33723'>0x83bb</td>
<td>IPTC-NAA</td>
<td class=c title=' ! = Unsafe'>int32u!</td>
<td>--&gt; <a href='IPTC.html'>IPTC Tags</a></td></tr>
<tr class=b>
<tr>
<td title='0x8769 = 34665'>0x8769</td>
<td>ExifOffset</td>
<td class=c>-</td>
<td>--&gt; <a href='EXIF.html'>EXIF Tags</a></td></tr>
<tr>
<tr class=b>
<td title='0x8825 = 34853'>0x8825</td>
<td>GPSInfo</td>
<td class=c>-</td>
@ -680,7 +685,7 @@ noise-reduction strengths the R, G and B channels)</span></span></td></tr>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Nov 19, 2023</i>
<br><i>Last revised Jul 11, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -52,15 +52,25 @@ specification.</p>
<td class=c>-</td>
<td>--&gt; <a href='Parrot.html#ARCoreAccel'>Parrot ARCoreAccel Tags</a></td></tr>
<tr class=b>
<td>'application/arcore-accel-0'</td>
<td>ARCoreAccel0</td>
<td class=c>-</td>
<td>--&gt; <a href='Parrot.html#ARCoreAccel0'>Parrot ARCoreAccel0 Tags</a></td></tr>
<tr>
<td>'application/arcore-custom-event'</td>
<td>ARCoreCustom</td>
<td class=c>-</td>
<td>--&gt; <a href='Parrot.html#ARCoreCustom'>Parrot ARCoreCustom Tags</a></td></tr>
<tr>
<tr class=b>
<td>'application/arcore-gyro'</td>
<td>ARCoreGyro</td>
<td class=c>-</td>
<td>--&gt; <a href='Parrot.html#ARCoreGyro'>Parrot ARCoreGyro Tags</a></td></tr>
<tr>
<td>'application/arcore-gyro-0'</td>
<td>ARCoreGyro0</td>
<td class=c>-</td>
<td>--&gt; <a href='Parrot.html#ARCoreGyro0'>Parrot ARCoreGyro0 Tags</a></td></tr>
<tr class=b>
<td>'application/arcore-video-0'</td>
<td>ARCoreVideo</td>
@ -631,6 +641,20 @@ specification.</p>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='ARCoreAccel0'>Parrot ARCoreAccel0 Tags</a></h2>
<p>ARCore accelerometer data.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index1</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='9 = 0x9'>9</td>
<td>Accelerometer</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='ARCoreCustom'>Parrot ARCoreCustom Tags</a></h2>
<blockquote>
<table class=frame><tr><td>
@ -641,7 +665,7 @@ specification.</p>
</table></td></tr></table></blockquote>
<h2><a name='ARCoreGyro'>Parrot ARCoreGyro Tags</a></h2>
<p>ARCore accelerometer data.</p>
<p>ARCore gyro data.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
@ -659,6 +683,20 @@ specification.</p>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='ARCoreGyro0'>Parrot ARCoreGyro0 Tags</a></h2>
<p>ARCore gyro data.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index1</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='9 = 0x9'>9</td>
<td>Gyroscope</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='ARCoreVideo'>Parrot ARCoreVideo Tags</a></h2>
<blockquote>
<table class=frame><tr><td>
@ -670,7 +708,7 @@ specification.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jul 21, 2022</i>
<br><i>Last revised Apr 25, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -783,9 +783,9 @@ available. Extended bracket values are printed as &#39;WB-BA&#39;, &#39;WB-GM&#
<br>&#39;1 4&#39; = Auto PICT (Standard)
<br>&#39;1 5&#39; = Auto PICT (Portrait)
<br>&#39;1 6&#39; = Auto PICT (Landscape)
<br>&#39;1 7&#39; = Auto PICT (Macro)</td><td>&nbsp;&nbsp;</td>
<td>&#39;1 8&#39; = Auto PICT (Sport)
<br>&#39;2 0&#39; = Program (HyP)
<br>&#39;1 7&#39; = Auto PICT (Macro)
<br>&#39;1 8&#39; = Auto PICT (Sport)</td><td>&nbsp;&nbsp;</td>
<td>&#39;2 0&#39; = Program (HyP)
<br>&#39;2 1&#39; = Hi-speed Program (HyP)
<br>&#39;2 2&#39; = DOF Program (HyP)
<br>&#39;2 3&#39; = MTF Program (HyP)
@ -810,6 +810,7 @@ available. Extended bracket values are printed as &#39;WB-BA&#39;, &#39;WB-GM&#
<br>&#39;18 22&#39; = Auto Program (Shallow DOF)
<br>&#39;19 0&#39; = Astrotracer
<br>&#39;20 22&#39; = Blur Control
<br>&#39;26 0&#39; = Shutter and Aperture Priority (TAv)
<br>&#39;249 0&#39; = Movie (TAv)
<br>&#39;250 0&#39; = Movie (TAv, Auto Aperture)
<br>&#39;251 0&#39; = Movie (Manual)
@ -1569,9 +1570,11 @@ segments for the K-3, converted to LV)</span></span></td></tr>
<br>--&gt; <a href='Pentax.html#FilterInfo'>Pentax FilterInfo Tags</a></td></tr>
<tr>
<td title='0x022b = 555'>0x022b</td>
<td>LevelInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Pentax.html#LevelInfo'>Pentax LevelInfo Tags</a></td></tr>
<td>LevelInfoK3III
<br>LevelInfo</td>
<td class=c>-<br>-</td>
<td>--&gt; <a href='Pentax.html#LevelInfoK3III'>Pentax LevelInfoK3III Tags</a>
<br>--&gt; <a href='Pentax.html#LevelInfo'>Pentax LevelInfo Tags</a></td></tr>
<tr class=b>
<td title='0x022d = 557'>0x022d</td>
<td>WBLevels</td>
@ -1604,53 +1607,58 @@ are left, top, width and height in a 720x480 frame, with Y downwards)</span></sp
<td class=c>undef[10]</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x0238 = 568'>0x0238</td>
<td>CAFPointInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Pentax.html#CAFPointInfo'>Pentax CAFPointInfo Tags</a></td></tr>
<tr>
<td title='0x0239 = 569'>0x0239</td>
<td>LensInfoQ</td>
<td class=c>-</td>
<td>--&gt; <a href='Pentax.html#LensInfoQ'>Pentax LensInfoQ Tags</a></td></tr>
<tr>
<tr class=b>
<td title='0x023f = 575'>0x023f</td>
<td>Model</td>
<td class=c>string</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x0243 = 579'>0x0243</td>
<td>PixelShiftInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Pentax.html#PixelShiftInfo'>Pentax PixelShiftInfo Tags</a></td></tr>
<tr>
<tr class=b>
<td title='0x0245 = 581'>0x0245</td>
<td>AFPointInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Pentax.html#AFPointInfo'>Pentax AFPointInfo Tags</a></td></tr>
<tr class=b>
<tr>
<td title='0x03fe = 1022'>0x03fe</td>
<td>DataDump</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x03ff = 1023'>0x03ff</td>
<td>TempInfo
<br>UnknownInfo</td>
<td class=c>-<br>-</td>
<td>--&gt; <a href='Pentax.html#TempInfo'>Pentax TempInfo Tags</a>
<br>--&gt; <a href='Pentax.html#UnknownInfo'>Pentax UnknownInfo Tags</a></td></tr>
<tr class=b>
<tr>
<td title='0x0402 = 1026'>0x0402</td>
<td>ToneCurve</td>
<td class=c title=' ~ = Writable only with -n'>yes~</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td title='0x0403 = 1027'>0x0403</td>
<td>ToneCurves</td>
<td class=c title=' ~ = Writable only with -n'>yes~</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td title='0x0405 = 1029'>0x0405</td>
<td>UnknownBlock?</td>
<td class=c>undef</td>
<td><span class=s><span class=n>(large unknown data block in PEF/DNG images but not JPG images)</span></span></td></tr>
<tr>
<tr class=b>
<td title='0x0e00 = 3584'>0x0e00</td>
<td>PrintIM</td>
<td class=c>-</td>
@ -1802,10 +1810,10 @@ are left, top, width and height in a 720x480 frame, with Y downwards)</span></sp
<td class=r>0x1329a</td><td>= GR IIIx</td>
</tr><tr><td class=r>0x12c20</td><td>= Samsung GX10</td>
<td class='r b'>0x12e4e</td><td class=b>= Optio E90</td>
<td class=r>0x132d6</td><td>= K-3 Mark III Monochrome</td>
<td class=r>0x132b8</td><td>= KF</td>
</tr><tr><td class=r>0x12c28</td><td>= Optio S7</td>
<td class='r b'>0x12e58</td><td class=b>= X90</td>
<td class=r>&nbsp;</td><td>&nbsp;</td>
<td class=r>0x132d6</td><td>= K-3 Mark III Monochrome</td>
</tr></table></td></tr></table></blockquote>
<h2><a name='City'>Pentax City Values</a></h2>
@ -3000,7 +3008,8 @@ are roughly 8 steps per F-stop, but it varies slightly by lens)</span></span></t
</table></td></tr></table></blockquote>
<h2><a name='AEInfo3'>Pentax AEInfo3 Tags</a></h2>
<p>Auto-exposure information for the K-3, K-30, K-50 and K-500.</p>
<p>Auto-exposure information for the K-1mkII, K-3, K-30, K-50, K-70, K-500 and
KP.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
@ -3071,25 +3080,6 @@ are roughly 8 steps per F-stop, but it varies slightly by lens)</span></span></t
<td>--&gt; <a href='Pentax.html#LensData'>Pentax LensData Tags</a></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='LensInfo2'>Pentax LensInfo2 Tags</a></h2>
<p>Pentax lens information structure for models such as the K10D and K20D.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index1</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='0 = 0x0'>0</td>
<td>LensType</td>
<td class=c>int8u[4]</td>
<td>--&gt; <a href='Pentax.html#LensType'>Pentax LensType Values</a></td></tr>
<tr class=b>
<td class=r title='4 = 0x4'>4</td>
<td>LensData</td>
<td class=c>-</td>
<td>--&gt; <a href='Pentax.html#LensData'>Pentax LensData Tags</a></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='LensData'>Pentax LensData Tags</a></h2>
<p>Pentax lens data information. Some of these tags require interesting binary
gymnastics to decode them into useful values.</p>
@ -3248,6 +3238,25 @@ gymnastics to decode them into useful values.</p>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='LensInfo2'>Pentax LensInfo2 Tags</a></h2>
<p>Pentax lens information structure for models such as the K10D and K20D.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index1</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='0 = 0x0'>0</td>
<td>LensType</td>
<td class=c>int8u[4]</td>
<td>--&gt; <a href='Pentax.html#LensType'>Pentax LensType Values</a></td></tr>
<tr class=b>
<td class=r title='4 = 0x4'>4</td>
<td>LensData</td>
<td class=c>-</td>
<td>--&gt; <a href='Pentax.html#LensData'>Pentax LensData Tags</a></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='LensInfo3'>Pentax LensInfo3 Tags</a></h2>
<p>Pentax lens information structure for 645D.</p>
<blockquote>
@ -3477,8 +3486,22 @@ serviced)</span></span></td></tr>
<br>1 = Camera Battery
<br>2 = Body Battery
<br>3 = Grip Battery
<br>4 = External Power Supply
<br><span class=n>(K-3III)</span>
<br>[val &amp; 0xf]
<br>1 = Body Battery
<br>2 = Grip Battery
<br>4 = External Power Supply</span></td></tr>
<tr class=b>
<td class=r title='0 = 0x0'>0.2</td>
<td>PowerAvailable</td>
<td class=c>int8u</td>
<td><span class=s><span class=n>(K-3III)</span>
<br>[val &gt;&gt; 4 &amp; 0xf]
<br>Bit 0 = Body Battery
<br>Bit 1 = Grip Battery
<br>Bit 3 = External Power Supply</span></td></tr>
<tr>
<td class=r title='1 = 0x1'>1.1</td>
<td>BodyBatteryState</td>
<td class=c>int8u</td>
@ -3488,60 +3511,89 @@ serviced)</span></span></td></tr>
<br>2 = Almost Empty
<br>3 = Running Low
<br>4 = Full
<br><span class=n>(other models except the K110D, K2000 and K-m)</span>
<br><span class=n>(most other models except the K110D, K2000, K-m and K-3III)</span>
<br>[val &gt;&gt; 4 &amp; 0xf]
<br>1 = Empty or Missing
<br>2 = Almost Empty
<br>3 = Running Low
<br>4 = Close to Full
<br>5 = Full
<br><span class=n>(decoding unknown for other models)</span>
<br>[val &gt;&gt; 4 &amp; 0xf]</span></td></tr>
<tr>
<br>5 = Full</span></td></tr>
<tr class=b>
<td class=r title='1 = 0x1'>1.2</td>
<td>GripBatteryState
<br>GripBatteryState?</td>
<td class=c>int8u<br>int8u</td>
<td>GripBatteryState</td>
<td class=c>int8u</td>
<td><span class=s><span class=n>(K10D and K20D)</span>
<br>[val &amp; 0xf]
<br>1 = Empty or Missing
<br>2 = Almost Empty
<br>3 = Running Low
<br>4 = Full
<br><span class=n>(decoding unknown for other models)</span>
<br>[val &amp; 0xf]</span></td></tr>
<tr class=b>
<br>4 = Full</span></td></tr>
<tr>
<td class=r title='2 = 0x2'>2</td>
<td>BodyBatteryADNoLoad
<br>BodyBatteryVoltage1</td>
<td class=c>int8u<br>int16u</td>
<td><span class=s><span class=n>(roughly calibrated for K10D with a new Pentax battery)</span></span></td></tr>
<tr>
<td class=r title='3 = 0x3'>3</td>
<td>BodyBatteryADLoad</td>
<td class=c>int8u</td>
<td><span class=s><span class=n>(roughly calibrated for K10D with a new Pentax battery)</span></span></td></tr>
<br>BodyBatteryVoltage1
<br>BodyBatteryState</td>
<td class=c>int8u<br>int16u<br>int8u</td>
<td><span class=s><span class=n>(roughly calibrated for K10D with a new Pentax battery)</span>
<br><span class=n>(K-3III)</span></span><table class=cols><tr>
<td>0 = Empty or Missing
<br>1 = Almost Empty
<br>2 = Running Low</td><td>&nbsp;&nbsp;</td>
<td>3 = Half Full
<br>4 = Close to Full
<br>5 = Full</td></tr></table>
</td></tr>
<tr class=b>
<td class=r title='3 = 0x3'>3</td>
<td>BodyBatteryADLoad
<br>BodyBatteryPercent</td>
<td class=c>int8u<br>int8u</td>
<td><span class=s><span class=n>(roughly calibrated for K10D with a new Pentax battery)</span>
<br><span class=n>(K-3III)</span></span></td></tr>
<tr>
<td class=r title='4 = 0x4'>4</td>
<td>GripBatteryADNoLoad
<br>BodyBatteryVoltage2</td>
<td class=c>int8u<br>int16u</td>
<br>BodyBatteryVoltage2
<br>BodyBatteryVoltage</td>
<td class=c>int8u<br>int16u<br>int32u</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td class=r title='5 = 0x5'>5</td>
<td>GripBatteryADLoad</td>
<td class=c>int8u</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td class=r title='6 = 0x6'>6</td>
<td>BodyBatteryVoltage3</td>
<td class=c>int16u</td>
<td><span class=s><span class=n>(K-5, K-r and 645D only)</span></span></td></tr>
<tr>
<tr class=b>
<td class=r title='8 = 0x8'>8</td>
<td>BodyBatteryVoltage4</td>
<td class=c>int16u</td>
<td><span class=s><span class=n>(K-5 and K-r only)</span></span></td></tr>
<tr>
<td class=r title='16 = 0x10'>16</td>
<td>GripBatteryState</td>
<td class=c>int8u</td>
<td><span class=s><span class=n>(K-3III)</span></span><table class=cols><tr>
<td>0 = Empty or Missing
<br>1 = Almost Empty
<br>2 = Running Low</td><td>&nbsp;&nbsp;</td>
<td>3 = Half Full
<br>4 = Close to Full
<br>5 = Full</td></tr></table>
</td></tr>
<tr class=b>
<td class=r title='17 = 0x11'>17</td>
<td>GripBatteryPercent</td>
<td class=c>int8u</td>
<td><span class=s><span class=n>(K-3III)</span></span></td></tr>
<tr>
<td class=r title='18 = 0x12'>18</td>
<td>GripBatteryVoltage</td>
<td class=c>int32u</td>
<td><span class=s><span class=n>(K-3III)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='AFInfo'>Pentax AFInfo Tags</a></h2>
@ -3607,8 +3659,8 @@ serviced)</span></span></td></tr>
<td class=r title='11 = 0xb'>11</td>
<td>AFPointsInFocus</td>
<td class=c>int8u</td>
<td><span class=s><span class=n>(models other than the K-1 and K-3. May report two points in focus even
though a single AFPoint has been selected, in which case the selected
<td><span class=s><span class=n>(models other than the K-1, K-3, K-70 and KP. May report two points in focus
even though a single AFPoint has been selected, in which case the selected
AFPoint is the first reported)</span></span><table class=cols><tr>
<td>0 = None
<br>1 = Lower-left, Bottom
@ -3633,6 +3685,29 @@ AFPoint is the first reported)</span></span><table class=cols><tr>
<br>20 = Mid-right</td></tr></table>
</td></tr>
<tr>
<td class=r title='20 = 0x14'>20</td>
<td>AFPointValues?</td>
<td class=c>no</td>
<td><span class=s><span class=n>(some unknown values related to each AFPoint)</span></span></td></tr>
<tr class=b>
<td class=r title='298 = 0x12a'>298</td>
<td>AFPointsSelected</td>
<td class=c title=' ~ = Writable only with -n'>int8u[41]~</td>
<td><span class=s><span class=n>(K-3III only. 41 selectable AF points from a total of 101 available in a 13x9
grid. Columns are labelled A-M and rows are 1-9. The center point is G5)</span></span></td></tr>
<tr>
<td class=r title='399 = 0x18f'>399</td>
<td>AFPointsUnknown?</td>
<td class=c title=' ~ = Writable only with -n'>int8u[41]~</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='506 = 0x1fa'>506</td>
<td>LiveView</td>
<td class=c>int8u</td>
<td><span class=s><span class=n>(decoded only for the K-3 III)</span>
<br>0 = Off
<br>1 = On</span></td></tr>
<tr>
<td class=r title='509 = 0x1fd'>509</td>
<td>AFHold</td>
<td class=c>int8u</td>
@ -3773,6 +3848,12 @@ AFPoint is the first reported)</span></span><table class=cols><tr>
<td class=c>int8u</td>
<td><span class=s>0 = 1 EV Steps
<br>1 = As EV Steps</span></td></tr>
<tr>
<td class=r title='3 = 0x3'>3</td>
<td>LiveView</td>
<td class=c>int8u</td>
<td><span class=s>0 = Off
<br>1 = On</span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='ShotInfo'>Pentax ShotInfo Tags</a></h2>
@ -4287,6 +4368,37 @@ used.</p>
<td class=r>&nbsp;</td><td>&nbsp;</td>
</tr></table></td></tr></table></blockquote>
<h2><a name='LevelInfoK3III'>Pentax LevelInfoK3III Tags</a></h2>
<p>Tags decoded from the electronic level information for the K-3 III.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index1</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='1 = 0x1'>1</td>
<td>CameraOrientation</td>
<td class=c>int8s</td>
<td><table class=cols><tr>
<td>0 = Horizontal (normal)
<br>1 = Rotate 270 CW
<br>2 = Rotate 180</td><td>&nbsp;&nbsp;</td>
<td>3 = Rotate 90 CW
<br>4 = Upwards
<br>5 = Downwards</td></tr></table>
</td></tr>
<tr class=b>
<td class=r title='3 = 0x3'>3</td>
<td>RollAngle</td>
<td class=c>int16s</td>
<td><span class=s><span class=n>(converted to degrees of clockwise camera rotation)</span></span></td></tr>
<tr>
<td class=r title='5 = 0x5'>5</td>
<td>PitchAngle</td>
<td class=c>int16s</td>
<td><span class=s><span class=n>(converted to degrees of upward camera tilt)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='LevelInfo'>Pentax LevelInfo Tags</a></h2>
<p>Tags decoded from the electronic level information for the K-5. May not be
valid for other models.</p>
@ -4411,6 +4523,35 @@ valid for other models.</p>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='CAFPointInfo'>Pentax CAFPointInfo Tags</a></h2>
<p>Contrast-detect AF-point information for the K-01 and later models.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index1</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='1 = 0x1'>1</td>
<td>NumCAFPoints</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='1 = 0x1'>1.1</td>
<td>CAFGridSize</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='2 = 0x2'>2</td>
<td>CAFPointsInFocus</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='2 = 0x2'>2.1</td>
<td>CAFPointsSelected</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='LensInfoQ'>Pentax LensInfoQ Tags</a></h2>
<p>More lens information stored by the Pentax Q.</p>
<blockquote>
@ -4460,17 +4601,17 @@ valid for other models.</p>
<tr class=b>
<td class=r title='4 = 0x4'>4</td>
<td>AFPointsInFocus</td>
<td class=c title=' ~ = Writable only with -n'>int8u[9]~</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='4 = 0x4'>4.1</td>
<td>AFPointsSelected</td>
<td class=c title=' ~ = Writable only with -n'>int8u[9]~</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='4 = 0x4'>4.2</td>
<td>AFPointsSpecial</td>
<td class=c title=' ~ = Writable only with -n'>int8u[9]~</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
@ -4504,6 +4645,11 @@ sensors are located in the camera.</p>
<td>CameraTemperature5</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='42 = 0x2a'>42</td>
<td>SensorTemperature</td>
<td class=c>int16s</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='UnknownInfo'>Pentax UnknownInfo Tags</a></h2>
@ -4953,7 +5099,7 @@ stored as ASCII text in a format very similar to some HP models.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jan 10, 2024</i>
<br><i>Last revised May 22, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -77,7 +77,8 @@
<td>RawFormat</td>
<td class=c>int32s</td>
<td><table class=cols><tr>
<td>1 = RAW 1
<td>0 = Uncompressed
<br>1 = RAW 1
<br>2 = RAW 2
<br>3 = IIQ L</td><td>&nbsp;&nbsp;</td>
<td>5 = IIQ S
@ -261,7 +262,7 @@
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Apr 13, 2021</i>
<br><i>Last revised Oct 29, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -397,9 +397,9 @@ indication that the XMP is synchronized with the IPTC)</span></span></td></tr>
<td>&nbsp;</td></tr>
<tr>
<td title='0x0435 = 1077'>0x0435</td>
<td>DisplayInfo?</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<td>ChannelOptions</td>
<td class=c>-</td>
<td>--&gt; <a href='Photoshop.html#ChannelOptions'>Photoshop ChannelOptions Tags</a></td></tr>
<tr class=b>
<td title='0x0436 = 1078'>0x0436</td>
<td>OnionSkins?</td>
@ -614,6 +614,41 @@ indication that the XMP is synchronized with the IPTC)</span></span></td></tr>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='ChannelOptions'>Photoshop ChannelOptions Tags</a></h2>
<p>These tags relate only to the appearance of a channel.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Index1</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td class=r title='0 = 0x0'>0</td>
<td>ChannelColorSpace</td>
<td class=c>no</td>
<td><span class=s>0 = RGB
<br>1 = HSB
<br>2 = CMYK
<br>7 = Lab
<br>8 = Grayscale</span></td></tr>
<tr class=b>
<td class=r title='2 = 0x2'>2</td>
<td>ChannelColorData</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='11 = 0xb'>11</td>
<td>ChannelOpacity</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td class=r title='12 = 0xc'>12</td>
<td>ChannelColorIndicates</td>
<td class=c>no</td>
<td><span class=s>0 = Selected Areas
<br>1 = Masked Areas
<br>2 = Spot Color</span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='DocumentData'>Photoshop DocumentData Tags</a></h2>
<blockquote>
<table class=frame><tr><td>
@ -799,7 +834,7 @@ indication that the XMP is synchronized with the IPTC)</span></span></td></tr>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Feb 23, 2023</i>
<br><i>Last revised Dec 20, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -4771,9 +4771,191 @@ even if it is not listed in this table.</p>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='DualCamera'>Qualcomm DualCamera Tags</a></h2>
<p>Found in JPEG APP4 &quot;Qualcomm Dual Camera Attributes&quot; written by some Nokia
phones.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>AF_ROIHeight</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>AF_ROILeft</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>AF_ROITop</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>AF_ROIWidth</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>CAMIFCropHeight</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CAMIFCropLeft</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>CAMIFCropTop</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CAMIFCropWidth</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>CAMIF_ROIMapHeight</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CAMIF_ROIMapLeft</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>CAMIF_ROIMapTop</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CAMIF_ROIMapWidth</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>CPPCropHeight</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CPPCropLeft</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>CPPCropTop</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CPPCropWidth</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>CPP_ROIMapHeight</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CPP_ROIMapLeft</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>CPP_ROIMapTop</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CPP_ROIMapWidth</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>CurrentPipelineMirrorFlipSetting</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>CurrentPipelineRotationSetting</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>DDMCropHeight</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>DDMCropLeft</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>DDMCropTop</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>DDMCropWidth</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>FocalLengthRatio</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>ISPCropHeight</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>ISPCropLeft</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>ISPCropTop</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>ISPCropWidth</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>ISP_ROIMapHeight</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>ISP_ROIMapLeft</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>ISP_ROIMapTop</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>ISP_ROIMapWidth</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>SensorCropHeight</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>SensorCropLeft</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>SensorCropTop</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>SensorCropWidth</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>SensorROIMapHeight</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>SensorROIMapLeft</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>SensorROIMapTop</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>SensorROIMapWidth</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Feb 20, 2012</i>
<br><i>Last revised Mar 6, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -66,11 +66,16 @@ metadata to WEBP images, but can&#39;t yet write to other RIFF-based formats.</p
<td>--&gt; <a href='ICC_Profile.html'>ICC_Profile Tags</a>
<br><span class='n s'>(WebP files)</span></td></tr>
<tr class=b>
<td>'ID3 '</td>
<td>ID3-2</td>
<td class=c>-</td>
<td>--&gt; <a href='ID3.html'>ID3 Tags</a></td></tr>
<tr>
<td>'IDIT'</td>
<td>DateTimeOriginal</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'JUNK'</td>
<td>OlympusJunk
<br>CasioJunk
@ -86,56 +91,61 @@ metadata to WEBP images, but can&#39;t yet write to other RIFF-based formats.</p
<br>--&gt; <a href='Pentax.html#Junk'>Pentax Junk Tags</a>
<br>--&gt; <a href='Pentax.html#Junk2'>Pentax Junk2 Tags</a>
<br>--&gt; <a href='QuickTime.html#Stream'>QuickTime Stream Tags</a></td></tr>
<tr class=b>
<tr>
<td>'JUNQ'</td>
<td>OldXMP</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>'LIST_INF0'</td>
<td>Info</td>
<td class=c>-</td>
<td>--&gt; <a href='RIFF.html#Info'>RIFF Info Tags</a></td></tr>
<tr class=b>
<tr>
<td>'LIST_INFO'</td>
<td>Info</td>
<td class=c>-</td>
<td>--&gt; <a href='RIFF.html#Info'>RIFF Info Tags</a></td></tr>
<tr>
<tr class=b>
<td>'LIST_Tdat'</td>
<td>Tdat</td>
<td class=c>-</td>
<td>--&gt; <a href='RIFF.html#Tdat'>RIFF Tdat Tags</a></td></tr>
<tr class=b>
<tr>
<td>'LIST_adtl'</td>
<td>AssociatedDataList</td>
<td class=c>-</td>
<td>--&gt; <a href='RIFF.html'>RIFF Tags</a></td></tr>
<tr>
<tr class=b>
<td>'LIST_exif'</td>
<td>Exif</td>
<td class=c>-</td>
<td>--&gt; <a href='RIFF.html#Exif'>RIFF Exif Tags</a></td></tr>
<tr class=b>
<tr>
<td>'LIST_hdrl'</td>
<td>Hdrl</td>
<td class=c>-</td>
<td>--&gt; <a href='RIFF.html#Hdrl'>RIFF Hdrl Tags</a></td></tr>
<tr>
<tr class=b>
<td>'LIST_hydt'</td>
<td>PentaxData</td>
<td class=c>-</td>
<td>--&gt; <a href='Pentax.html#AVI'>Pentax AVI Tags</a></td></tr>
<tr class=b>
<tr>
<td>'LIST_ncdt'</td>
<td>NikonData</td>
<td class=c>-</td>
<td>--&gt; <a href='Nikon.html#AVI'>Nikon AVI Tags</a></td></tr>
<tr>
<tr class=b>
<td>'LIST_pntx'</td>
<td>PentaxData2</td>
<td class=c>-</td>
<td>--&gt; <a href='Pentax.html#AVI'>Pentax AVI Tags</a></td></tr>
<tr>
<td>'SEAL'</td>
<td>SEAL</td>
<td class=c>-</td>
<td>--&gt; <a href='XMP.html#SEAL'>XMP SEAL Tags</a></td></tr>
<tr class=b>
<td>'SGLT'</td>
<td>BikeBroAccel</td>
@ -1439,6 +1449,13 @@ container specification.</p>
<td>ImageHeight</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td class=r title='4 = 0x4'>4</td>
<td>AlphaIsUsed</td>
<td class=c>no</td>
<td><span class=s>[val &gt;&gt; 4 &amp; 0x1]
<br>0 = No
<br>1 = Yes</span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='VP8X'>RIFF VP8X Tags</a></h2>
@ -1754,7 +1771,7 @@ Extracted only if the ExtractEmbedded option is used.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Nov 19, 2023</i>
<br><i>Last revised Mar 31, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -906,7 +906,7 @@ model names have already been scaled to include the 35mm crop factor.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Dec 29, 2023</i>
<br><i>Last revised Mar 24, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -493,10 +493,10 @@ array of X coordinates then an array of Y coordinates)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Trailer'>Samsung Trailer Tags</a></h2>
<p>Tags extracted from the trailer of JPEG images written when using certain
features (such as &quot;Sound &amp; Shot&quot; or &quot;Shot &amp; More&quot;) from Samsung models such
as the Galaxy S4 and Tab S, and from the &#39;sefd&#39; atom in HEIC images from the
Samsung S10+.</p>
<p>Tags extracted from the SEFT trailer of JPEG and PNG images written when
using certain features (such as &quot;Sound &amp; Shot&quot; or &quot;Shot &amp; More&quot;) from
Samsung models such as the Galaxy S4 and Tab S, and from the &#39;sefd&#39; atom in
HEIC images from models such as the S10+.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
@ -778,22 +778,34 @@ Samsung S10+.</p>
<br>750 = Falkland Islands (Malvinas) (750)
<br>901 = International Networks / Satellite Networks (901)</span></td></tr>
<tr>
<td>PEg_Info</td>
<td class=c>-</td>
<td>--&gt; <a href='JSON.html'>JSON Tags</a></td></tr>
<tr class=b>
<td>RemasterInfo</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>SamsungCaptureInfo</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>SingleShotDepthMap</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>SingleShotMeta</td>
<td class=c>-</td>
<td>--&gt; <a href='Samsung.html#SingleShotMeta'>Samsung SingleShotMeta Tags</a></td></tr>
<tr>
<tr class=b>
<td>SurroundShotVideo</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<tr>
<td>SurroundShotVideoName</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<tr class=b>
<td>TimeStamp</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
@ -1136,7 +1148,7 @@ such as the Galaxy S4.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Dec 29, 2023</i>
<br><i>Last revised Mar 24, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -361,7 +361,7 @@
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Apr 30, 2019</i>
<br><i>Last revised Mar 24, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -111,7 +111,7 @@ color space when deleting all other metadata)</span></span></td></tr>
<br>IFD0:XPAuthor
<br>IFD0:XPKeywords
<br>IFD0:XPSubject</td>
<td><span class=s><span class=n>(common metadata tags found in IFD0 of TIFF-format images. Used to simpify
<td><span class=s><span class=n>(common metadata tags found in IFD0 of TIFF-format images. Used to simplify
deletion of all metadata from these images. See
<a href="../faq.html#Q7">FAQ number 7</a> for details)</span></span></td></tr>
<tr class=b>
@ -301,7 +301,7 @@ is enabled)</span></span></td></tr>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jun 8, 2023</i>
<br><i>Last revised Apr 5, 2024</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -3,238 +3,11 @@
<html>
<!-- (this file generated automatically by Image::ExifTool::BuildTagLookup) -->
<head>
<title>Sigma Values</title>
<title>Sigma Tags</title>
<link rel=stylesheet type='text/css' href='style.css' title='Style'>
</head>
<body>
<h2 class=top><a name='LensType'>Sigma LensType Values</a></h2>
<p>Sigma LensType values are hexadecimal numbers stored as a string (without
the leading &quot;0x&quot;).</p>
<blockquote>
<table class=frame><tr><td>
<table class='inner sep' cellspacing=1>
<tr class=h><th>Value</th><th>LensType</th><th>Value</th><th>LensType</th></tr>
<tr><td>0x10</td><td>= Sigma 50mm F2.8 EX DG MACRO</td>
<td class=b>0x589</td><td class=b>= Sigma APO 70-200mm F2.8 EX DG OS HSM</td>
</tr><tr><td>0x10</td><td>= Sigma 70mm F2.8 EX DG Macro</td>
<td class=b>0x594</td><td class=b>= Sigma 300-800mm F5.6 EX HSM IF APO</td>
</tr><tr><td>0x10</td><td>= Sigma 105mm F2.8 EX DG Macro</td>
<td class=b>0x595</td><td class=b>= Sigma 300-800mm F5.6 EX DG APO HSM</td>
</tr><tr><td>0x16</td><td>= Sigma 18-50mm F3.5-5.6 DC</td>
<td class=b>0x597</td><td class=b>= Sigma 200-500mm F2.8 APO EX DG</td>
</tr><tr><td>0x103</td><td>= Sigma 180mm F3.5 EX IF HSM APO Macro</td>
<td class=b>0x5a8</td><td class=b>= Sigma 70-300mm F4-5.6 APO DG Macro (Motorized)</td>
</tr><tr><td>0x104</td><td>= Sigma 150mm F2.8 EX DG HSM APO Macro</td>
<td class=b>0x5a9</td><td class=b>= Sigma 70-300mm F4-5.6 DG Macro (Motorized)</td>
</tr><tr><td>0x105</td><td>= Sigma 180mm F3.5 EX DG HSM APO Macro</td>
<td class=b>0x605</td><td class=b>= Sigma 24-70mm F3.5-5.6 ASP HF</td>
</tr><tr><td>0x106</td><td>= Sigma 150mm F2.8 EX DG OS HSM APO Macro</td>
<td class=b>0x633</td><td class=b>= Sigma 28-70mm F2.8-4 HS</td>
</tr><tr><td>0x107</td><td>= Sigma 180mm F2.8 EX DG OS HSM APO Macro</td>
<td class=b>0x634</td><td class=b>= Sigma 28-70mm F2.8-4 DG</td>
</tr><tr><td>0x129</td><td>= Sigma Lens (0x129)</td>
<td class=b>0x635</td><td class=b>= Sigma 24-105mm F4 DG OS HSM | A</td>
</tr><tr><td>0x129</td><td>= Sigma 14mm F2.8 EX Aspherical</td>
<td class=b>0x644</td><td class=b>= Sigma 28-80mm F3.5-5.6 ASP HF Macro</td>
</tr><tr><td>0x129</td><td>= Sigma 30mm F1.4</td>
<td class=b>0x659</td><td class=b>= Sigma 28-80mm F3.5-5.6 Mini Zoom Macro II ASP</td>
</tr><tr><td>0x131</td><td>= Sigma Lens (0x131)</td>
<td class=b>0x661</td><td class=b>= Sigma 28-105mm F2.8-4 IF ASP</td>
</tr><tr><td>0x131</td><td>= Sigma 17-70mm F2.8-4.5 DC Macro</td>
<td class=b>0x663</td><td class=b>= Sigma 28-105mm F3.8-5.6 IF UC-III ASP</td>
</tr><tr><td>0x131</td><td>= Sigma 70-200mm F2.8 APO EX HSM</td>
<td class=b>0x664</td><td class=b>= Sigma 28-105mm F2.8-4 IF DG ASP</td>
</tr><tr><td>0x131</td><td>= Sigma 120-300mm F2.8 APO EX IF HSM</td>
<td class=b>0x667</td><td class=b>= Sigma 24-135mm F2.8-4.5 IF ASP</td>
</tr><tr><td>0x134</td><td>= Sigma 100-300mm F4 EX DG HSM APO</td>
<td class=b>0x668</td><td class=b>= Sigma 17-70mm F2.8-4 DC Macro OS HSM</td>
</tr><tr><td>0x135</td><td>= Sigma 120-300mm F2.8 EX DG HSM APO</td>
<td class=b>0x669</td><td class=b>= Sigma 17-70mm F2.8-4.5 DC HSM Macro</td>
</tr><tr><td>0x136</td><td>= Sigma 120-300mm F2.8 EX DG OS HSM APO</td>
<td class=b>0x684</td><td class=b>= Sigma 55-200mm F4-5.6 DC</td>
</tr><tr><td>0x137</td><td>= Sigma 120-300mm F2.8 DG OS HSM | S</td>
<td class=b>0x686</td><td class=b>= Sigma 50-200mm F4-5.6 DC OS HSM</td>
</tr><tr><td>0x143</td><td>= Sigma 600mm F8 Mirror</td>
<td class=b>0x689</td><td class=b>= Sigma 17-70mm F2.8-4.5 DC Macro</td>
</tr><tr><td>0x145</td><td>= Sigma Lens (0x145)</td>
<td class=b>0x690</td><td class=b>= Sigma 50-150mm F2.8 EX DC HSM APO</td>
</tr><tr><td>0x145</td><td>= Sigma 15-30mm F3.5-4.5 EX DG Aspherical</td>
<td class=b>0x691</td><td class=b>= Sigma 50-150mm F2.8 EX DC APO HSM II</td>
</tr><tr><td>0x145</td><td>= Sigma 18-50mm F2.8 EX DG</td>
<td class=b>0x692</td><td class=b>= Sigma APO 50-150mm F2.8 EX DC OS HSM</td>
</tr><tr><td>0x145</td><td>= Sigma 20-40mm F2.8 EX DG</td>
<td class=b>0x693</td><td class=b>= Sigma 50-100mm F1.8 DC HSM | A</td>
</tr><tr><td>0x150</td><td>= Sigma 30mm F1.4 DC HSM</td>
<td class=b>0x709</td><td class=b>= Sigma 28-135mm F3.8-5.6 IF ASP Macro</td>
</tr><tr><td>0x152</td><td>= Sigma Lens (0x152)</td>
<td class=b>0x723</td><td class=b>= Sigma 135-400mm F4.5-5.6 ASP APO</td>
</tr><tr><td>0x152</td><td>= Sigma APO 800mm F5.6 EX DG HSM</td>
<td class=b>0x725</td><td class=b>= Sigma 80-400mm F4.5-5.6 EX OS</td>
</tr><tr><td>0x152</td><td>= Sigma 12-24mm F4.5-5.6 EX DG ASP HSM</td>
<td class=b>0x726</td><td class=b>= Sigma 80-400mm F4.5-5.6 EX DG OS APO</td>
</tr><tr><td>0x152</td><td>= Sigma 10-20mm F4-5.6 EX DC HSM</td>
<td class=b>0x727</td><td class=b>= Sigma 135-400mm F4.5-5.6 DG ASP APO</td>
</tr><tr><td>0x165</td><td>= Sigma 70-200mm F2.8 EX</td>
<td class=b>0x728</td><td class=b>= Sigma 120-400mm F4.5-5.6 DG APO OS HSM</td>
</tr><tr><td>0x169</td><td>= Sigma 18-50mm F2.8 EX DC</td>
<td class=b>0x729</td><td class=b>= Sigma 100-400mm F5-6.3 DG OS HSM | C</td>
</tr><tr><td>0x183</td><td>= Sigma 500mm F4.5 EX HSM APO</td>
<td class=b>0x730</td><td class=b>= Sigma 60-600mm F4.5-6.3 DG OS HSM | S</td>
</tr><tr><td>0x184</td><td>= Sigma 500mm F4.5 EX DG HSM APO</td>
<td class=b>0x733</td><td class=b>= Sigma 170-500mm F5-6.3 ASP APO</td>
</tr><tr><td>0x185</td><td>= Sigma 500mm F4 DG OS HSM | S</td>
<td class=b>0x734</td><td class=b>= Sigma 170-500mm F5-6.3 DG ASP APO</td>
</tr><tr><td>0x194</td><td>= Sigma 300mm F2.8 EX HSM APO</td>
<td class=b>0x735</td><td class=b>= Sigma 50-500mm F4-6.3 EX RF HSM APO</td>
</tr><tr><td>0x195</td><td>= Sigma 300mm F2.8 EX DG HSM APO</td>
<td class=b>0x736</td><td class=b>= Sigma 50-500mm F4-6.3 EX DG HSM APO</td>
</tr><tr><td>0x200</td><td>= Sigma 12-24mm F4.5-5.6 EX DG ASP HSM</td>
<td class=b>0x737</td><td class=b>= Sigma 150-500mm F5-6.3 APO DG OS HSM</td>
</tr><tr><td>0x201</td><td>= Sigma 10-20mm F4-5.6 EX DC HSM</td>
<td class=b>0x738</td><td class=b>= Sigma 50-500mm F4.5-6.3 APO DG OS HSM</td>
</tr><tr><td>0x202</td><td>= Sigma 10-20mm F3.5 EX DC HSM</td>
<td class=b>0x740</td><td class=b>= Sigma 150-600mm F5-6.3 DG OS HSM | S</td>
</tr><tr><td>0x203</td><td>= Sigma 8-16mm F4.5-5.6 DC HSM</td>
<td class=b>0x745</td><td class=b>= Sigma 150-600mm F5-6.3 DG OS HSM | C</td>
</tr><tr><td>0x204</td><td>= Sigma 12-24mm F4.5-5.6 DG HSM II</td>
<td class=b>0x777</td><td class=b>= Sigma 18-200mm F3.5-6.3 DC</td>
</tr><tr><td>0x205</td><td>= Sigma 12-24mm F4 DG HSM | A</td>
<td class=b>0x77d</td><td class=b>= Sigma 18-200mm F3.5-6.3 DC (Motorized)</td>
</tr><tr><td>0x210</td><td>= Sigma 18-35mm F1.8 DC HSM | A</td>
<td class=b>0x785</td><td class=b>= Sigma 28-200mm F3.5-5.6 DL ASP IF HZM Macro</td>
</tr><tr><td>0x240</td><td>= Sigma 135mm F1.8 DG HSM | A</td>
<td class=b>0x787</td><td class=b>= Sigma 28-200mm F3.5-5.6 Compact ASP HZ Macro</td>
</tr><tr><td>0x256</td><td>= Sigma 105mm F2.8 EX Macro</td>
<td class=b>0x789</td><td class=b>= Sigma 18-125mm F3.5-5.6 DC</td>
</tr><tr><td>0x257</td><td>= Sigma 105mm F2.8 EX DG Macro</td>
<td class=b>0x790</td><td class=b>= Sigma 28-300mm F3.5-6.3 DL ASP IF HZM</td>
</tr><tr><td>0x258</td><td>= Sigma 105mm F2.8 EX DG OS HSM Macro</td>
<td class=b>0x793</td><td class=b>= Sigma 28-300mm F3.5-6.3 Macro</td>
</tr><tr><td>0x259</td><td>= Sigma 105mm F1.4 DG HSM | A</td>
<td class=b>0x794</td><td class=b>= Sigma 28-200mm F3.5-5.6 DG Compact ASP HZ Macro</td>
</tr><tr><td>0x270</td><td>= Sigma 70mm F2.8 EX DG Macro</td>
<td class=b>0x795</td><td class=b>= Sigma 28-300mm F3.5-6.3 DG Macro</td>
</tr><tr><td>0x271</td><td>= Sigma 70mm F2.8 DG Macro | A</td>
<td class=b>0x823</td><td class=b>= Sigma 1.4X TC EX APO</td>
</tr><tr><td>0x300</td><td>= Sigma 30mm F1.4 EX DC HSM</td>
<td class=b>0x824</td><td class=b>= Sigma 1.4X Teleconverter EX APO DG</td>
</tr><tr><td>0x301</td><td>= Sigma 30mm F1.4 DC HSM | A</td>
<td class=b>0x853</td><td class=b>= Sigma 18-125mm F3.8-5.6 DC OS HSM</td>
</tr><tr><td>0x302</td><td>= Sigma 30mm F1.4 DC DN | C</td>
<td class=b>0x861</td><td class=b>= Sigma 18-50mm F2.8-4.5 DC OS HSM</td>
</tr><tr><td>0x310</td><td>= Sigma 50mm F1.4 EX DG HSM</td>
<td class=b>0x870</td><td class=b>= Sigma 2.0X Teleconverter TC-2001</td>
</tr><tr><td>0x311</td><td>= Sigma 50mm F1.4 DG HSM | A</td>
<td class=b>0x875</td><td class=b>= Sigma 2.0X TC EX APO</td>
</tr><tr><td>0x320</td><td>= Sigma 85mm F1.4 EX DG HSM</td>
<td class=b>0x876</td><td class=b>= Sigma 2.0X Teleconverter EX APO DG</td>
</tr><tr><td>0x321</td><td>= Sigma 85mm F1.4 DG HSM | A</td>
<td class=b>0x879</td><td class=b>= Sigma 1.4X Teleconverter TC-1401</td>
</tr><tr><td>0x330</td><td>= Sigma 30mm F2.8 EX DN</td>
<td class=b>0x880</td><td class=b>= Sigma 18-250mm F3.5-6.3 DC OS HSM</td>
</tr><tr><td>0x340</td><td>= Sigma 35mm F1.4 DG HSM</td>
<td class=b>0x882</td><td class=b>= Sigma 18-200mm F3.5-6.3 II DC OS HSM</td>
</tr><tr><td>0x345</td><td>= Sigma 50mm F2.8 EX Macro</td>
<td class=b>0x883</td><td class=b>= Sigma 18-250mm F3.5-6.3 DC Macro OS HSM</td>
</tr><tr><td>0x346</td><td>= Sigma 50mm F2.8 EX DG Macro</td>
<td class=b>0x884</td><td class=b>= Sigma 17-70mm F2.8-4 DC OS HSM Macro | C</td>
</tr><tr><td>0x350</td><td>= Sigma 60mm F2.8 DN | A</td>
<td class=b>0x885</td><td class=b>= Sigma 18-200mm F3.5-6.3 DC OS HSM Macro | C</td>
</tr><tr><td>0x400</td><td>= Sigma 19mm F2.8 EX DN</td>
<td class=b>0x886</td><td class=b>= Sigma 18-300mm F3.5-6.3 DC OS HSM Macro | C</td>
</tr><tr><td>0x401</td><td>= Sigma 24mm F1.4 DG HSM | A</td>
<td class=b>0x888</td><td class=b>= Sigma 18-200mm F3.5-6.3 DC OS</td>
</tr><tr><td>0x411</td><td>= Sigma 20mm F1.8 EX DG ASP RF</td>
<td class=b>0x890</td><td class=b>= Sigma Mount Converter MC-11</td>
</tr><tr><td>0x412</td><td>= Sigma 20mm F1.4 DG HSM | A</td>
<td class=b>0x929</td><td class=b>= Sigma 60mm F2.8 DN | A</td>
</tr><tr><td>0x432</td><td>= Sigma 24mm F1.8 EX DG ASP Macro</td>
<td class=b>0x1003</td><td class=b>= Sigma 19mm F2.8</td>
</tr><tr><td>0x440</td><td>= Sigma 28mm F1.8 EX DG ASP Macro</td>
<td class=b>0x1004</td><td class=b>= Sigma 30mm F2.8</td>
</tr><tr><td>0x450</td><td>= Sigma 14mm F1.8 DH HSM | A</td>
<td class=b>0x1005</td><td class=b>= Sigma 50mm F2.8 Macro</td>
</tr><tr><td>0x461</td><td>= Sigma 14mm F2.8 EX ASP HSM</td>
<td class=b>0x1006</td><td class=b>= Sigma 19mm F2.8</td>
</tr><tr><td>0x475</td><td>= Sigma 15mm F2.8 EX Diagonal FishEye</td>
<td class=b>0x1007</td><td class=b>= Sigma 30mm F2.8</td>
</tr><tr><td>0x476</td><td>= Sigma 15mm F2.8 EX DG Diagonal Fisheye</td>
<td class=b>0x1008</td><td class=b>= Sigma 50mm F2.8 Macro</td>
</tr><tr><td>0x477</td><td>= Sigma 10mm F2.8 EX DC HSM Fisheye</td>
<td class=b>0x1009</td><td class=b>= Sigma 14mm F4</td>
</tr><tr><td>0x483</td><td>= Sigma 8mm F4 EX Circular Fisheye</td>
<td class=b>0x4001</td><td class=b>= Lumix S 24-105mm F4 Macro OIS (S-R24105)</td>
</tr><tr><td>0x484</td><td>= Sigma 8mm F4 EX DG Circular Fisheye</td>
<td class=b>0x4002</td><td class=b>= Lumix S 70-200mm F4 OIS (S-R70200)</td>
</tr><tr><td>0x485</td><td>= Sigma 8mm F3.5 EX DG Circular Fisheye</td>
<td class=b>0x4003</td><td class=b>= Lumix S 50mm F1.4 (S-X50)</td>
</tr><tr><td>0x486</td><td>= Sigma 4.5mm F2.8 EX DC HSM Circular Fisheye</td>
<td class=b>0x4006</td><td class=b>= Lumix S 24-70mm F2.8 (S-E2470)</td>
</tr><tr><td>0x504</td><td>= Sigma 70-300mm F4-5.6 Macro Super</td>
<td class=b>0x4007</td><td class=b>= Lumix S 16-35mm F4 (S-R1635)</td>
</tr><tr><td>0x505</td><td>= Sigma APO 70-300mm F4-5.6 Macro Super</td>
<td class=b>0x4008</td><td class=b>= Lumix S 70-200mm F2.8 OIS (S-E70200)</td>
</tr><tr><td>0x506</td><td>= Sigma 70-300mm F4-5.6 APO Macro Super II</td>
<td class=b>0x400b</td><td class=b>= Lumix S 20-60mm F3.5-5.6 (S-R2060)</td>
</tr><tr><td>0x507</td><td>= Sigma 70-300mm F4-5.6 DL Macro Super II</td>
<td class=b>0x400c</td><td class=b>= Lumix S 85mm F1.8 (S-S85)</td>
</tr><tr><td>0x508</td><td>= Sigma 70-300mm F4-5.6 DG APO Macro</td>
<td class=b>0x400d</td><td class=b>= Lumix S 70-300 F4.5-5.6 Macro OIS (S-R70300)</td>
</tr><tr><td>0x509</td><td>= Sigma 70-300mm F4-5.6 DG Macro</td>
<td class=b>0x400f</td><td class=b>= Lumix S 24mm F1.8 (S-S24)</td>
</tr><tr><td>0x510</td><td>= Sigma 17-35 F2.8-4 EX DG ASP</td>
<td class=b>0x4010</td><td class=b>= Lumix S 35mm F1.8 (S-S35)</td>
</tr><tr><td>0x512</td><td>= Sigma 15-30mm F3.5-4.5 EX DG ASP DF</td>
<td class=b>0x4011</td><td class=b>= LUMIX S 18mm F1.8 (S-S18)</td>
</tr><tr><td>0x513</td><td>= Sigma 20-40mm F2.8 EX DG</td>
<td class=b>0x6001</td><td class=b>= Sigma 150-600mm F5-6.3 DG OS HSM | S</td>
</tr><tr><td>0x519</td><td>= Sigma 17-35 F2.8-4 EX ASP HSM</td>
<td class=b>0x6003</td><td class=b>= Sigma 45mm F2.8 DG DN | C</td>
</tr><tr><td>0x520</td><td>= Sigma 100-300mm F4.5-6.7 DL</td>
<td class=b>0x6005</td><td class=b>= Sigma 14-24mm F2.8 DG DN | A</td>
</tr><tr><td>0x521</td><td>= Sigma 18-50mm F3.5-5.6 DC Macro</td>
<td class=b>0x6006</td><td class=b>= Sigma 50mm F1.4 DG HSM | A</td>
</tr><tr><td>0x527</td><td>= Sigma 100-300mm F4 EX IF HSM</td>
<td class=b>0x6011</td><td class=b>= Sigma 24-70mm F2.8 DG DN | A</td>
</tr><tr><td>0x529</td><td>= Sigma 120-300mm F2.8 EX HSM IF APO</td>
<td class=b>0x6012</td><td class=b>= Sigma 100-400mm F5-6.3 DG DN OS | C</td>
</tr><tr><td>0x545</td><td>= Sigma 28-70mm F2.8 EX ASP DF</td>
<td class=b>0x6013</td><td class=b>= Sigma 100-400mm F5-6.3 DG DN OS | C + TC-1411</td>
</tr><tr><td>0x547</td><td>= Sigma 24-60mm F2.8 EX DG</td>
<td class=b>0x6015</td><td class=b>= Sigma 85mm F1.4 DG DN | A</td>
</tr><tr><td>0x548</td><td>= Sigma 24-70mm F2.8 EX DG Macro</td>
<td class=b>0x6017</td><td class=b>= Sigma 65mm F2 DG DN | C</td>
</tr><tr><td>0x549</td><td>= Sigma 28-70mm F2.8 EX DG</td>
<td class=b>0x6018</td><td class=b>= Sigma 35mm F2 DG DN | C</td>
</tr><tr><td>0x566</td><td>= Sigma 70-200mm F2.8 EX IF APO</td>
<td class=b>0x601a</td><td class=b>= Sigma 28-70mm F2.8 DG DN | C</td>
</tr><tr><td>0x567</td><td>= Sigma 70-200mm F2.8 EX IF HSM APO</td>
<td class=b>0x601b</td><td class=b>= Sigma 150-600mm F5-6.3 DG DN OS | S</td>
</tr><tr><td>0x568</td><td>= Sigma 70-200mm F2.8 EX DG IF HSM APO</td>
<td class=b>0x6020</td><td class=b>= Sigma 35mm F1.4 DG DN | A</td>
</tr><tr><td>0x569</td><td>= Sigma 70-200 F2.8 EX DG HSM APO Macro</td>
<td class=b>0x6021</td><td class=b>= Sigma 90mm F2.8 DG DN | C</td>
</tr><tr><td>0x571</td><td>= Sigma 24-70mm F2.8 IF EX DG HSM</td>
<td class=b>0x6023</td><td class=b>= Sigma 20mm F2 DG DN | C</td>
</tr><tr><td>0x572</td><td>= Sigma 70-300mm F4-5.6 DG OS</td>
<td class=b>0x6025</td><td class=b>= Sigma 20mm F1.4 DG DN | A</td>
</tr><tr><td>0x576</td><td>= Sigma 24-70mm F2.8 DG OS HSM | A</td>
<td class=b>0x6026</td><td class=b>= Sigma 24mm F1.4 DG DN | A</td>
</tr><tr><td>0x579</td><td>= Sigma 70-200mm F2.8 EX DG HSM APO Macro</td>
<td class=b>0x602c</td><td class=b>= Sigma 50mm F1.4 DG DN | A (2023)</td>
</tr><tr><td>0x580</td><td>= Sigma 18-50mm F2.8 EX DC</td>
<td class=b>0x8005</td><td class=b>= Sigma 35mm F1.4 DG HSM | A</td>
</tr><tr><td>0x581</td><td>= Sigma 18-50mm F2.8 EX DC Macro</td>
<td class=b>0x8009</td><td class=b>= Sigma 18-35mm F1.8 DC HSM | A</td>
</tr><tr><td>0x582</td><td>= Sigma 18-50mm F2.8 EX DC HSM Macro</td>
<td class=b>0x8900</td><td class=b>= Sigma 70-300mm F4-5.6 DG OS</td>
</tr><tr><td>0x583</td><td>= Sigma 17-50mm F2.8 EX DC OS HSM</td>
<td class=b>0xa100</td><td class=b>= Sigma 24-70mm F2.8 DG Macro</td>
</tr><tr><td>0x588</td><td>= Sigma 24-35mm F2 DG HSM | A</td>
<td class=b>&nbsp;</td><td class=b>&nbsp;</td>
</tr></table></td></tr></table></blockquote>
<h2>Sigma Tags</h2>
<h2 class=top>Sigma Tags</h2>
<p>These tags are written by Sigma/Foveon cameras. In the early days Sigma was
a class leader by releasing their maker note specification to the public,
but since then they have deviated from this standard and newer camera models
@ -483,7 +256,7 @@ models report the maximum aperture here)</span></span></td></tr>
<td title='0x0033 = 51'>0x0033</td>
<td>ExposureTime2</td>
<td class=c>string</td>
<td><span class=s><span class=n>(models other than the SD1, SD9, SD15 and Merrill/Quattro models)</span></span></td></tr>
<td><span class=s><span class=n>(only valid for some models)</span></span></td></tr>
<tr>
<td title='0x0034 = 52'>0x0034</td>
<td>BurstShot</td>
@ -612,6 +385,233 @@ models report the maximum aperture here)</span></span></td></tr>
<td>--&gt; <a href='Sigma.html#WBSettings2'>Sigma WBSettings2 Tags</a></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='LensType'>Sigma LensType Values</a></h2>
<p>Sigma LensType values are hexadecimal numbers stored as a string (without
the leading &quot;0x&quot;).</p>
<blockquote>
<table class=frame><tr><td>
<table class='inner sep' cellspacing=1>
<tr class=h><th>Value</th><th>LensType</th><th>Value</th><th>LensType</th></tr>
<tr><td>0x10</td><td>= Sigma 50mm F2.8 EX DG MACRO</td>
<td class=b>0x589</td><td class=b>= Sigma APO 70-200mm F2.8 EX DG OS HSM</td>
</tr><tr><td>0x10</td><td>= Sigma 70mm F2.8 EX DG Macro</td>
<td class=b>0x594</td><td class=b>= Sigma 300-800mm F5.6 EX HSM IF APO</td>
</tr><tr><td>0x10</td><td>= Sigma 105mm F2.8 EX DG Macro</td>
<td class=b>0x595</td><td class=b>= Sigma 300-800mm F5.6 EX DG APO HSM</td>
</tr><tr><td>0x16</td><td>= Sigma 18-50mm F3.5-5.6 DC</td>
<td class=b>0x597</td><td class=b>= Sigma 200-500mm F2.8 APO EX DG</td>
</tr><tr><td>0x103</td><td>= Sigma 180mm F3.5 EX IF HSM APO Macro</td>
<td class=b>0x5a8</td><td class=b>= Sigma 70-300mm F4-5.6 APO DG Macro (Motorized)</td>
</tr><tr><td>0x104</td><td>= Sigma 150mm F2.8 EX DG HSM APO Macro</td>
<td class=b>0x5a9</td><td class=b>= Sigma 70-300mm F4-5.6 DG Macro (Motorized)</td>
</tr><tr><td>0x105</td><td>= Sigma 180mm F3.5 EX DG HSM APO Macro</td>
<td class=b>0x605</td><td class=b>= Sigma 24-70mm F3.5-5.6 ASP HF</td>
</tr><tr><td>0x106</td><td>= Sigma 150mm F2.8 EX DG OS HSM APO Macro</td>
<td class=b>0x633</td><td class=b>= Sigma 28-70mm F2.8-4 HS</td>
</tr><tr><td>0x107</td><td>= Sigma 180mm F2.8 EX DG OS HSM APO Macro</td>
<td class=b>0x634</td><td class=b>= Sigma 28-70mm F2.8-4 DG</td>
</tr><tr><td>0x129</td><td>= Sigma Lens (0x129)</td>
<td class=b>0x635</td><td class=b>= Sigma 24-105mm F4 DG OS HSM | A</td>
</tr><tr><td>0x129</td><td>= Sigma 14mm F2.8 EX Aspherical</td>
<td class=b>0x644</td><td class=b>= Sigma 28-80mm F3.5-5.6 ASP HF Macro</td>
</tr><tr><td>0x129</td><td>= Sigma 30mm F1.4</td>
<td class=b>0x659</td><td class=b>= Sigma 28-80mm F3.5-5.6 Mini Zoom Macro II ASP</td>
</tr><tr><td>0x131</td><td>= Sigma Lens (0x131)</td>
<td class=b>0x661</td><td class=b>= Sigma 28-105mm F2.8-4 IF ASP</td>
</tr><tr><td>0x131</td><td>= Sigma 17-70mm F2.8-4.5 DC Macro</td>
<td class=b>0x663</td><td class=b>= Sigma 28-105mm F3.8-5.6 IF UC-III ASP</td>
</tr><tr><td>0x131</td><td>= Sigma 70-200mm F2.8 APO EX HSM</td>
<td class=b>0x664</td><td class=b>= Sigma 28-105mm F2.8-4 IF DG ASP</td>
</tr><tr><td>0x131</td><td>= Sigma 120-300mm F2.8 APO EX IF HSM</td>
<td class=b>0x667</td><td class=b>= Sigma 24-135mm F2.8-4.5 IF ASP</td>
</tr><tr><td>0x134</td><td>= Sigma 100-300mm F4 EX DG HSM APO</td>
<td class=b>0x668</td><td class=b>= Sigma 17-70mm F2.8-4 DC Macro OS HSM</td>
</tr><tr><td>0x135</td><td>= Sigma 120-300mm F2.8 EX DG HSM APO</td>
<td class=b>0x669</td><td class=b>= Sigma 17-70mm F2.8-4.5 DC HSM Macro</td>
</tr><tr><td>0x136</td><td>= Sigma 120-300mm F2.8 EX DG OS HSM APO</td>
<td class=b>0x684</td><td class=b>= Sigma 55-200mm F4-5.6 DC</td>
</tr><tr><td>0x137</td><td>= Sigma 120-300mm F2.8 DG OS HSM | S</td>
<td class=b>0x686</td><td class=b>= Sigma 50-200mm F4-5.6 DC OS HSM</td>
</tr><tr><td>0x143</td><td>= Sigma 600mm F8 Mirror</td>
<td class=b>0x689</td><td class=b>= Sigma 17-70mm F2.8-4.5 DC Macro</td>
</tr><tr><td>0x145</td><td>= Sigma Lens (0x145)</td>
<td class=b>0x690</td><td class=b>= Sigma 50-150mm F2.8 EX DC HSM APO</td>
</tr><tr><td>0x145</td><td>= Sigma 15-30mm F3.5-4.5 EX DG Aspherical</td>
<td class=b>0x691</td><td class=b>= Sigma 50-150mm F2.8 EX DC APO HSM II</td>
</tr><tr><td>0x145</td><td>= Sigma 18-50mm F2.8 EX DG</td>
<td class=b>0x692</td><td class=b>= Sigma APO 50-150mm F2.8 EX DC OS HSM</td>
</tr><tr><td>0x145</td><td>= Sigma 20-40mm F2.8 EX DG</td>
<td class=b>0x693</td><td class=b>= Sigma 50-100mm F1.8 DC HSM | A</td>
</tr><tr><td>0x150</td><td>= Sigma 30mm F1.4 DC HSM</td>
<td class=b>0x709</td><td class=b>= Sigma 28-135mm F3.8-5.6 IF ASP Macro</td>
</tr><tr><td>0x152</td><td>= Sigma Lens (0x152)</td>
<td class=b>0x723</td><td class=b>= Sigma 135-400mm F4.5-5.6 ASP APO</td>
</tr><tr><td>0x152</td><td>= Sigma APO 800mm F5.6 EX DG HSM</td>
<td class=b>0x725</td><td class=b>= Sigma 80-400mm F4.5-5.6 EX OS</td>
</tr><tr><td>0x152</td><td>= Sigma 12-24mm F4.5-5.6 EX DG ASP HSM</td>
<td class=b>0x726</td><td class=b>= Sigma 80-400mm F4.5-5.6 EX DG OS APO</td>
</tr><tr><td>0x152</td><td>= Sigma 10-20mm F4-5.6 EX DC HSM</td>
<td class=b>0x727</td><td class=b>= Sigma 135-400mm F4.5-5.6 DG ASP APO</td>
</tr><tr><td>0x165</td><td>= Sigma 70-200mm F2.8 EX</td>
<td class=b>0x728</td><td class=b>= Sigma 120-400mm F4.5-5.6 DG APO OS HSM</td>
</tr><tr><td>0x169</td><td>= Sigma 18-50mm F2.8 EX DC</td>
<td class=b>0x729</td><td class=b>= Sigma 100-400mm F5-6.3 DG OS HSM | C</td>
</tr><tr><td>0x183</td><td>= Sigma 500mm F4.5 EX HSM APO</td>
<td class=b>0x730</td><td class=b>= Sigma 60-600mm F4.5-6.3 DG OS HSM | S</td>
</tr><tr><td>0x184</td><td>= Sigma 500mm F4.5 EX DG HSM APO</td>
<td class=b>0x733</td><td class=b>= Sigma 170-500mm F5-6.3 ASP APO</td>
</tr><tr><td>0x185</td><td>= Sigma 500mm F4 DG OS HSM | S</td>
<td class=b>0x734</td><td class=b>= Sigma 170-500mm F5-6.3 DG ASP APO</td>
</tr><tr><td>0x194</td><td>= Sigma 300mm F2.8 EX HSM APO</td>
<td class=b>0x735</td><td class=b>= Sigma 50-500mm F4-6.3 EX RF HSM APO</td>
</tr><tr><td>0x195</td><td>= Sigma 300mm F2.8 EX DG HSM APO</td>
<td class=b>0x736</td><td class=b>= Sigma 50-500mm F4-6.3 EX DG HSM APO</td>
</tr><tr><td>0x200</td><td>= Sigma 12-24mm F4.5-5.6 EX DG ASP HSM</td>
<td class=b>0x737</td><td class=b>= Sigma 150-500mm F5-6.3 APO DG OS HSM</td>
</tr><tr><td>0x201</td><td>= Sigma 10-20mm F4-5.6 EX DC HSM</td>
<td class=b>0x738</td><td class=b>= Sigma 50-500mm F4.5-6.3 APO DG OS HSM</td>
</tr><tr><td>0x202</td><td>= Sigma 10-20mm F3.5 EX DC HSM</td>
<td class=b>0x740</td><td class=b>= Sigma 150-600mm F5-6.3 DG OS HSM | S</td>
</tr><tr><td>0x203</td><td>= Sigma 8-16mm F4.5-5.6 DC HSM</td>
<td class=b>0x745</td><td class=b>= Sigma 150-600mm F5-6.3 DG OS HSM | C</td>
</tr><tr><td>0x204</td><td>= Sigma 12-24mm F4.5-5.6 DG HSM II</td>
<td class=b>0x777</td><td class=b>= Sigma 18-200mm F3.5-6.3 DC</td>
</tr><tr><td>0x205</td><td>= Sigma 12-24mm F4 DG HSM | A</td>
<td class=b>0x77d</td><td class=b>= Sigma 18-200mm F3.5-6.3 DC (Motorized)</td>
</tr><tr><td>0x210</td><td>= Sigma 18-35mm F1.8 DC HSM | A</td>
<td class=b>0x785</td><td class=b>= Sigma 28-200mm F3.5-5.6 DL ASP IF HZM Macro</td>
</tr><tr><td>0x240</td><td>= Sigma 135mm F1.8 DG HSM | A</td>
<td class=b>0x787</td><td class=b>= Sigma 28-200mm F3.5-5.6 Compact ASP HZ Macro</td>
</tr><tr><td>0x256</td><td>= Sigma 105mm F2.8 EX Macro</td>
<td class=b>0x789</td><td class=b>= Sigma 18-125mm F3.5-5.6 DC</td>
</tr><tr><td>0x257</td><td>= Sigma 105mm F2.8 EX DG Macro</td>
<td class=b>0x790</td><td class=b>= Sigma 28-300mm F3.5-6.3 DL ASP IF HZM</td>
</tr><tr><td>0x258</td><td>= Sigma 105mm F2.8 EX DG OS HSM Macro</td>
<td class=b>0x793</td><td class=b>= Sigma 28-300mm F3.5-6.3 Macro</td>
</tr><tr><td>0x259</td><td>= Sigma 105mm F1.4 DG HSM | A</td>
<td class=b>0x794</td><td class=b>= Sigma 28-200mm F3.5-5.6 DG Compact ASP HZ Macro</td>
</tr><tr><td>0x270</td><td>= Sigma 70mm F2.8 EX DG Macro</td>
<td class=b>0x795</td><td class=b>= Sigma 28-300mm F3.5-6.3 DG Macro</td>
</tr><tr><td>0x271</td><td>= Sigma 70mm F2.8 DG Macro | A</td>
<td class=b>0x823</td><td class=b>= Sigma 1.4X TC EX APO</td>
</tr><tr><td>0x300</td><td>= Sigma 30mm F1.4 EX DC HSM</td>
<td class=b>0x824</td><td class=b>= Sigma 1.4X Teleconverter EX APO DG</td>
</tr><tr><td>0x301</td><td>= Sigma 30mm F1.4 DC HSM | A</td>
<td class=b>0x853</td><td class=b>= Sigma 18-125mm F3.8-5.6 DC OS HSM</td>
</tr><tr><td>0x302</td><td>= Sigma 30mm F1.4 DC DN | C</td>
<td class=b>0x861</td><td class=b>= Sigma 18-50mm F2.8-4.5 DC OS HSM</td>
</tr><tr><td>0x310</td><td>= Sigma 50mm F1.4 EX DG HSM</td>
<td class=b>0x870</td><td class=b>= Sigma 2.0X Teleconverter TC-2001</td>
</tr><tr><td>0x311</td><td>= Sigma 50mm F1.4 DG HSM | A</td>
<td class=b>0x875</td><td class=b>= Sigma 2.0X TC EX APO</td>
</tr><tr><td>0x320</td><td>= Sigma 85mm F1.4 EX DG HSM</td>
<td class=b>0x876</td><td class=b>= Sigma 2.0X Teleconverter EX APO DG</td>
</tr><tr><td>0x321</td><td>= Sigma 85mm F1.4 DG HSM | A</td>
<td class=b>0x879</td><td class=b>= Sigma 1.4X Teleconverter TC-1401</td>
</tr><tr><td>0x330</td><td>= Sigma 30mm F2.8 EX DN</td>
<td class=b>0x880</td><td class=b>= Sigma 18-250mm F3.5-6.3 DC OS HSM</td>
</tr><tr><td>0x340</td><td>= Sigma 35mm F1.4 DG HSM</td>
<td class=b>0x882</td><td class=b>= Sigma 18-200mm F3.5-6.3 II DC OS HSM</td>
</tr><tr><td>0x345</td><td>= Sigma 50mm F2.8 EX Macro</td>
<td class=b>0x883</td><td class=b>= Sigma 18-250mm F3.5-6.3 DC Macro OS HSM</td>
</tr><tr><td>0x346</td><td>= Sigma 50mm F2.8 EX DG Macro</td>
<td class=b>0x884</td><td class=b>= Sigma 17-70mm F2.8-4 DC OS HSM Macro | C</td>
</tr><tr><td>0x350</td><td>= Sigma 60mm F2.8 DN | A</td>
<td class=b>0x885</td><td class=b>= Sigma 18-200mm F3.5-6.3 DC OS HSM Macro | C</td>
</tr><tr><td>0x400</td><td>= Sigma 19mm F2.8 EX DN</td>
<td class=b>0x886</td><td class=b>= Sigma 18-300mm F3.5-6.3 DC OS HSM Macro | C</td>
</tr><tr><td>0x401</td><td>= Sigma 24mm F1.4 DG HSM | A</td>
<td class=b>0x888</td><td class=b>= Sigma 18-200mm F3.5-6.3 DC OS</td>
</tr><tr><td>0x411</td><td>= Sigma 20mm F1.8 EX DG ASP RF</td>
<td class=b>0x890</td><td class=b>= Sigma Mount Converter MC-11</td>
</tr><tr><td>0x412</td><td>= Sigma 20mm F1.4 DG HSM | A</td>
<td class=b>0x929</td><td class=b>= Sigma 60mm F2.8 DN | A</td>
</tr><tr><td>0x432</td><td>= Sigma 24mm F1.8 EX DG ASP Macro</td>
<td class=b>0x1003</td><td class=b>= Sigma 19mm F2.8</td>
</tr><tr><td>0x440</td><td>= Sigma 28mm F1.8 EX DG ASP Macro</td>
<td class=b>0x1004</td><td class=b>= Sigma 30mm F2.8</td>
</tr><tr><td>0x450</td><td>= Sigma 14mm F1.8 DH HSM | A</td>
<td class=b>0x1005</td><td class=b>= Sigma 50mm F2.8 Macro</td>
</tr><tr><td>0x461</td><td>= Sigma 14mm F2.8 EX ASP HSM</td>
<td class=b>0x1006</td><td class=b>= Sigma 19mm F2.8</td>
</tr><tr><td>0x475</td><td>= Sigma 15mm F2.8 EX Diagonal FishEye</td>
<td class=b>0x1007</td><td class=b>= Sigma 30mm F2.8</td>
</tr><tr><td>0x476</td><td>= Sigma 15mm F2.8 EX DG Diagonal Fisheye</td>
<td class=b>0x1008</td><td class=b>= Sigma 50mm F2.8 Macro</td>
</tr><tr><td>0x477</td><td>= Sigma 10mm F2.8 EX DC HSM Fisheye</td>
<td class=b>0x1009</td><td class=b>= Sigma 14mm F4</td>
</tr><tr><td>0x483</td><td>= Sigma 8mm F4 EX Circular Fisheye</td>
<td class=b>0x4001</td><td class=b>= Lumix S 24-105mm F4 Macro OIS (S-R24105)</td>
</tr><tr><td>0x484</td><td>= Sigma 8mm F4 EX DG Circular Fisheye</td>
<td class=b>0x4002</td><td class=b>= Lumix S 70-200mm F4 OIS (S-R70200)</td>
</tr><tr><td>0x485</td><td>= Sigma 8mm F3.5 EX DG Circular Fisheye</td>
<td class=b>0x4003</td><td class=b>= Lumix S 50mm F1.4 (S-X50)</td>
</tr><tr><td>0x486</td><td>= Sigma 4.5mm F2.8 EX DC HSM Circular Fisheye</td>
<td class=b>0x4006</td><td class=b>= Lumix S 24-70mm F2.8 (S-E2470)</td>
</tr><tr><td>0x504</td><td>= Sigma 70-300mm F4-5.6 Macro Super</td>
<td class=b>0x4007</td><td class=b>= Lumix S 16-35mm F4 (S-R1635)</td>
</tr><tr><td>0x505</td><td>= Sigma APO 70-300mm F4-5.6 Macro Super</td>
<td class=b>0x4008</td><td class=b>= Lumix S 70-200mm F2.8 OIS (S-E70200)</td>
</tr><tr><td>0x506</td><td>= Sigma 70-300mm F4-5.6 APO Macro Super II</td>
<td class=b>0x400b</td><td class=b>= Lumix S 20-60mm F3.5-5.6 (S-R2060)</td>
</tr><tr><td>0x507</td><td>= Sigma 70-300mm F4-5.6 DL Macro Super II</td>
<td class=b>0x400c</td><td class=b>= Lumix S 85mm F1.8 (S-S85)</td>
</tr><tr><td>0x508</td><td>= Sigma 70-300mm F4-5.6 DG APO Macro</td>
<td class=b>0x400d</td><td class=b>= Lumix S 70-300 F4.5-5.6 Macro OIS (S-R70300)</td>
</tr><tr><td>0x509</td><td>= Sigma 70-300mm F4-5.6 DG Macro</td>
<td class=b>0x400f</td><td class=b>= Lumix S 24mm F1.8 (S-S24)</td>
</tr><tr><td>0x510</td><td>= Sigma 17-35 F2.8-4 EX DG ASP</td>
<td class=b>0x4010</td><td class=b>= Lumix S 35mm F1.8 (S-S35)</td>
</tr><tr><td>0x512</td><td>= Sigma 15-30mm F3.5-4.5 EX DG ASP DF</td>
<td class=b>0x4011</td><td class=b>= LUMIX S 18mm F1.8 (S-S18)</td>
</tr><tr><td>0x513</td><td>= Sigma 20-40mm F2.8 EX DG</td>
<td class=b>0x6001</td><td class=b>= Sigma 150-600mm F5-6.3 DG OS HSM | S</td>
</tr><tr><td>0x519</td><td>= Sigma 17-35 F2.8-4 EX ASP HSM</td>
<td class=b>0x6003</td><td class=b>= Sigma 45mm F2.8 DG DN | C</td>
</tr><tr><td>0x520</td><td>= Sigma 100-300mm F4.5-6.7 DL</td>
<td class=b>0x6005</td><td class=b>= Sigma 14-24mm F2.8 DG DN | A</td>
</tr><tr><td>0x521</td><td>= Sigma 18-50mm F3.5-5.6 DC Macro</td>
<td class=b>0x6006</td><td class=b>= Sigma 50mm F1.4 DG HSM | A</td>
</tr><tr><td>0x527</td><td>= Sigma 100-300mm F4 EX IF HSM</td>
<td class=b>0x6011</td><td class=b>= Sigma 24-70mm F2.8 DG DN | A</td>
</tr><tr><td>0x529</td><td>= Sigma 120-300mm F2.8 EX HSM IF APO</td>
<td class=b>0x6012</td><td class=b>= Sigma 100-400mm F5-6.3 DG DN OS | C</td>
</tr><tr><td>0x545</td><td>= Sigma 28-70mm F2.8 EX ASP DF</td>
<td class=b>0x6013</td><td class=b>= Sigma 100-400mm F5-6.3 DG DN OS | C + TC-1411</td>
</tr><tr><td>0x547</td><td>= Sigma 24-60mm F2.8 EX DG</td>
<td class=b>0x6015</td><td class=b>= Sigma 85mm F1.4 DG DN | A</td>
</tr><tr><td>0x548</td><td>= Sigma 24-70mm F2.8 EX DG Macro</td>
<td class=b>0x6017</td><td class=b>= Sigma 65mm F2 DG DN | C</td>
</tr><tr><td>0x549</td><td>= Sigma 28-70mm F2.8 EX DG</td>
<td class=b>0x6018</td><td class=b>= Sigma 35mm F2 DG DN | C</td>
</tr><tr><td>0x566</td><td>= Sigma 70-200mm F2.8 EX IF APO</td>
<td class=b>0x601a</td><td class=b>= Sigma 28-70mm F2.8 DG DN | C</td>
</tr><tr><td>0x567</td><td>= Sigma 70-200mm F2.8 EX IF HSM APO</td>
<td class=b>0x601b</td><td class=b>= Sigma 150-600mm F5-6.3 DG DN OS | S</td>
</tr><tr><td>0x568</td><td>= Sigma 70-200mm F2.8 EX DG IF HSM APO</td>
<td class=b>0x6020</td><td class=b>= Sigma 35mm F1.4 DG DN | A</td>
</tr><tr><td>0x569</td><td>= Sigma 70-200 F2.8 EX DG HSM APO Macro</td>
<td class=b>0x6021</td><td class=b>= Sigma 90mm F2.8 DG DN | C</td>
</tr><tr><td>0x571</td><td>= Sigma 24-70mm F2.8 IF EX DG HSM</td>
<td class=b>0x6023</td><td class=b>= Sigma 20mm F2 DG DN | C</td>
</tr><tr><td>0x572</td><td>= Sigma 70-300mm F4-5.6 DG OS</td>
<td class=b>0x6025</td><td class=b>= Sigma 20mm F1.4 DG DN | A</td>
</tr><tr><td>0x576</td><td>= Sigma 24-70mm F2.8 DG OS HSM | A</td>
<td class=b>0x6026</td><td class=b>= Sigma 24mm F1.4 DG DN | A</td>
</tr><tr><td>0x579</td><td>= Sigma 70-200mm F2.8 EX DG HSM APO Macro</td>
<td class=b>0x602c</td><td class=b>= Sigma 50mm F1.4 DG DN | A (2023)</td>
</tr><tr><td>0x580</td><td>= Sigma 18-50mm F2.8 EX DC</td>
<td class=b>0x8005</td><td class=b>= Sigma 35mm F1.4 DG HSM | A</td>
</tr><tr><td>0x581</td><td>= Sigma 18-50mm F2.8 EX DC Macro</td>
<td class=b>0x8009</td><td class=b>= Sigma 18-35mm F1.8 DC HSM | A</td>
</tr><tr><td>0x582</td><td>= Sigma 18-50mm F2.8 EX DC HSM Macro</td>
<td class=b>0x8900</td><td class=b>= Sigma 70-300mm F4-5.6 DG OS</td>
</tr><tr><td>0x583</td><td>= Sigma 17-50mm F2.8 EX DC OS HSM</td>
<td class=b>0xa100</td><td class=b>= Sigma 24-70mm F2.8 DG Macro</td>
</tr><tr><td>0x588</td><td>= Sigma 24-35mm F2 DG HSM | A</td>
<td class=b>&nbsp;</td><td class=b>&nbsp;</td>
</tr></table></td></tr></table></blockquote>
<h2><a name='WBSettings'>Sigma WBSettings Tags</a></h2>
<blockquote>
<table class=frame><tr><td>
@ -730,7 +730,7 @@ models report the maximum aperture here)</span></span></td></tr>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Nov 19, 2023</i>
<br><i>Last revised May 4, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

View File

@ -373,7 +373,8 @@ toward magenta)</span></span></td></tr>
<br>4 = Flexible Spot (LA-EA4)
<br>9 = Center (LA-EA4)
<br>11 = Zone
<br>12 = Expanded Flexible Spot</td></tr></table>
<br>12 = Expanded Flexible Spot
<br>13 = Custom AF Area</td></tr></table>
<span class=s><span class=n>(ILCA models)</span>
<br>0 = Wide
<br>4 = Flexible Spot
@ -958,14 +959,15 @@ toward magenta)</span></span></td></tr>
<br>&#39;3 0 0 0&#39; = ARW 2.0
<br>&#39;3 1 0 0&#39; = ARW 2.1
<br>&#39;3 2 0 0&#39; = ARW 2.2
<br>&#39;3 3 0 0&#39; = ARW 2.3</td><td>&nbsp;&nbsp;</td>
<td>&#39;3 3 1 0&#39; = ARW 2.3.1
<br>&#39;3 3 2 0&#39; = ARW 2.3.2
<br>&#39;3 3 0 0&#39; = ARW 2.3
<br>&#39;3 3 1 0&#39; = ARW 2.3.1</td><td>&nbsp;&nbsp;</td>
<td>&#39;3 3 2 0&#39; = ARW 2.3.2
<br>&#39;3 3 3 0&#39; = ARW 2.3.3
<br>&#39;3 3 5 0&#39; = ARW 2.3.5
<br>&#39;4 0 0 0&#39; = ARW 4.0
<br>&#39;4 0 1 0&#39; = ARW 4.0.1
<br>&#39;5 0 0 0&#39; = ARW 5.0</td></tr></table>
<br>&#39;5 0 0 0&#39; = ARW 5.0
<br>&#39;5 0 1 0&#39; = ARW 5.0.1</td></tr></table>
</td></tr>
<tr class=b>
<td title='0xb001 = 45057'>0xb001</td>
@ -1022,10 +1024,10 @@ toward magenta)</span></span></td></tr>
<br>310 = DSC-RX1R
<br>311 = ILCE-7R
<br>312 = ILCE-6000
<br>313 = ILCE-5000</td><td>&nbsp;&nbsp;</td>
<td>317 = DSC-RX100M3
<br>318 = ILCE-7S
<br>319 = ILCA-77M2
<br>313 = ILCE-5000
<br>317 = DSC-RX100M3
<br>318 = ILCE-7S</td><td>&nbsp;&nbsp;</td>
<td>319 = ILCA-77M2
<br>339 = ILCE-5100
<br>340 = ILCE-7M2
<br>341 = DSC-RX100M4
@ -1073,7 +1075,10 @@ toward magenta)</span></span></td></tr>
<br>394 = ILCE-6700
<br>395 = ZV-1M2
<br>396 = ILCE-7CR
<br>397 = ILCE-7CM2</td></tr></table>
<br>397 = ILCE-7CM2
<br>398 = ILX-LR1
<br>399 = ZV-E10M2
<br>400 = ILCE-1M2</td></tr></table>
</td></tr>
<tr>
<td title='0xb020 = 45088'>0xb020</td>
@ -4836,6 +4841,8 @@ multi-frame noise reduction)</span></span></td></tr>
</tr><tr><td>6</td><td>= Sony LA-EA4 Adapter</td>
</tr><tr><td>7</td><td>= Sony LA-EA5 Adapter</td>
</tr><tr><td>13</td><td>= Samyang AF 35-150mm F2-2.8</td>
</tr><tr><td>20</td><td>= Samyang AF 35mm F1.4 P FE</td>
</tr><tr><td>21</td><td>= Samyang AF 14-24mm F2.8</td>
</tr><tr><td>44</td><td>= Metabones Canon EF Smart Adapter</td>
</tr><tr><td>78</td><td>= Metabones Canon EF Smart Adapter Mark III or Other Adapter</td>
</tr><tr><td>184</td><td>= Metabones Canon EF Speed Booster Ultra</td>
@ -4918,9 +4925,16 @@ multi-frame noise reduction)</span></span></td></tr>
</tr><tr><td>32877</td><td>= Sony E 15mm F1.4 G</td>
</tr><tr><td>32878</td><td>= Sony FE 20-70mm F4 G</td>
</tr><tr><td>32879</td><td>= Sony FE 50mm F1.4 GM</td>
</tr><tr><td>32880</td><td>= Sony FE 16mm F1.8 G</td>
</tr><tr><td>32881</td><td>= Sony FE 24-50mm F2.8 G</td>
</tr><tr><td>32882</td><td>= Sony FE 16-25mm F2.8 G</td>
</tr><tr><td>32884</td><td>= Sony FE 70-200mm F4 Macro G OSS II</td>
</tr><tr><td>32885</td><td>= Sony FE 16-35mm F2.8 GM II</td>
</tr><tr><td>32886</td><td>= Sony FE 300mm F2.8 OSS</td>
</tr><tr><td>32886</td><td>= Sony FE 300mm F2.8 GM OSS</td>
</tr><tr><td>32887</td><td>= Sony E PZ 16-50mm F3.5-5.6 OSS II</td>
</tr><tr><td>32888</td><td>= Sony FE 85mm F1.4 GM II</td>
</tr><tr><td>32889</td><td>= Sony FE 28-70mm F2 GM</td>
</tr><tr><td>32890</td><td>= Sony FE 400-800mm F6.3-8 G OSS</td>
</tr><tr><td>33072</td><td>= Sony FE 70-200mm F2.8 GM OSS + 1.4X Teleconverter</td>
</tr><tr><td>33073</td><td>= Sony FE 70-200mm F2.8 GM OSS + 2X Teleconverter</td>
</tr><tr><td>33076</td><td>= Sony FE 100mm F2.8 STF GM OSS (macro mode)</td>
@ -4936,6 +4950,10 @@ multi-frame noise reduction)</span></span></td></tr>
</tr><tr><td>33086</td><td>= Sony FE 70-200mm F2.8 GM OSS II + 2X Teleconverter</td>
</tr><tr><td>33087</td><td>= Sony FE 70-200mm F4 Macro G OSS II + 1.4X Teleconverter</td>
</tr><tr><td>33088</td><td>= Sony FE 70-200mm F4 Macro G OSS II + 2X Teleconverter</td>
</tr><tr><td>33089</td><td>= Sony FE 300mm F2.8 GM OSS + 1.4X Teleconverter</td>
</tr><tr><td>33090</td><td>= Sony FE 300mm F2.8 GM OSS + 2X Teleconverter</td>
</tr><tr><td>33091</td><td>= Sony FE 400-800mm F6.3-8 G OSS + 1.4X Teleconverter</td>
</tr><tr><td>33092</td><td>= Sony FE 400-800mm F6.3-8 G OSS + 2X Teleconverter</td>
</tr><tr><td>49201</td><td>= Zeiss Touit 12mm F2.8</td>
</tr><tr><td>49202</td><td>= Zeiss Touit 32mm F1.8</td>
</tr><tr><td>49203</td><td>= Zeiss Touit 50mm F2.8 Macro</td>
@ -4981,6 +4999,10 @@ multi-frame noise reduction)</span></span></td></tr>
</tr><tr><td>49474</td><td>= Viltrox 35mm F1.8 FE</td>
</tr><tr><td>49474</td><td>= Viltrox 50mm F1.8 FE</td>
</tr><tr><td>49474</td><td>= Viltrox 75mm F1.2 E</td>
</tr><tr><td>49474</td><td>= Viltrox 20mm F2.8 FE</td>
</tr><tr><td>49475</td><td>= Tamron 50-300mm F4.5-6.3 Di III VC VXD</td>
</tr><tr><td>49476</td><td>= Tamron 28-300mm F4-7.1 Di III VC VXD</td>
</tr><tr><td>49477</td><td>= Tamron 90mm F2.8 Di III Macro VXD</td>
</tr><tr><td>49712</td><td>= Tokina FiRIN 20mm F2 FE AF</td>
</tr><tr><td>49713</td><td>= Tokina FiRIN 100mm F2.8 FE MACRO</td>
</tr><tr><td>49714</td><td>= Tokina atx-m 11-18mm F2.8 E</td>
@ -5032,7 +5054,14 @@ multi-frame noise reduction)</span></span></td></tr>
</tr><tr><td>50540</td><td>= Sigma 14mm F1.4 DG DN | A</td>
</tr><tr><td>50543</td><td>= Sigma 70-200mm F2.8 DG DN OS | S</td>
</tr><tr><td>50544</td><td>= Sigma 23mm F1.4 DC DN | C</td>
</tr><tr><td>50545</td><td>= Sigma 24-70mm F2.8 DG DN II | A</td>
</tr><tr><td>50546</td><td>= Sigma 500mm F5.6 DG DN OS | S</td>
</tr><tr><td>50547</td><td>= Sigma 10-18mm F2.8 DC DN | C</td>
</tr><tr><td>50548</td><td>= Sigma 15mm F1.4 DG DN DIAGONAL FISHEYE | A</td>
</tr><tr><td>50549</td><td>= Sigma 50mm F1.2 DG DN | A</td>
</tr><tr><td>50550</td><td>= Sigma 28-105mm F2.8 DG DN | A</td>
</tr><tr><td>50551</td><td>= Sigma 28-45mm F1.8 DG DN | A</td>
</tr><tr><td>50553</td><td>= Sigma 300-600mm F4 DG OS | S</td>
</tr><tr><td>50992</td><td>= Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III</td>
</tr><tr><td>50993</td><td>= Voigtlander HELIAR-HYPER WIDE 10mm F5.6</td>
</tr><tr><td>50994</td><td>= Voigtlander ULTRA WIDE-HELIAR 12mm F5.6 III</td>
@ -5046,6 +5075,11 @@ multi-frame noise reduction)</span></span></td></tr>
</tr><tr><td>51002</td><td>= Voigtlander APO-LANTHAR 50mm F2 Aspherical</td>
</tr><tr><td>51003</td><td>= Voigtlander NOKTON 35mm F1.2 Aspherical SE</td>
</tr><tr><td>51006</td><td>= Voigtlander APO-LANTHAR 35mm F2 Aspherical</td>
</tr><tr><td>51007</td><td>= Voigtlander NOKTON 50mm F1 Aspherical</td>
</tr><tr><td>51008</td><td>= Voigtlander NOKTON 75mm F1.5 Aspherical</td>
</tr><tr><td>51009</td><td>= Voigtlander NOKTON 28mm F1.5 Aspherical</td>
</tr><tr><td>51072</td><td>= ZEISS Otus ML 50mm F1.4</td>
</tr><tr><td>51073</td><td>= ZEISS Otus ML 85mm F1.4</td>
</tr><tr><td>51504</td><td>= Samyang AF 50mm F1.4</td>
</tr><tr><td>51505</td><td>= Samyang AF 14mm F2.8 or Samyang AF 35mm F2.8</td>
</tr><tr><td>51505</td><td>= Samyang AF 35mm F2.8</td>
@ -5060,6 +5094,8 @@ multi-frame noise reduction)</span></span></td></tr>
</tr><tr><td>51516</td><td>= Samyang AF 24-70mm F2.8</td>
</tr><tr><td>51517</td><td>= Samyang AF 50mm F1.4 II</td>
</tr><tr><td>51518</td><td>= Samyang AF 135mm F1.8</td>
</tr><tr><td>61569</td><td>= LAOWA FFII 10mm F2.8 C&amp;D Dreamer</td>
</tr><tr><td>61761</td><td>= Viltrox 28mm F4.5 FE</td>
</tr></table></td></tr></table></blockquote>
<h2><a name='CameraSettingsUnknown'>Sony CameraSettingsUnknown Tags</a></h2>
@ -8532,7 +8568,8 @@ models)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Tag9050d'>Sony Tag9050d Tags</a></h2>
<p>Valid for ILCE-6700/7CM2/7CR/ZV-E1.</p>
<p>Valid for ILCE-6700/7CM2/7CR/ZV-E1. Also for ILCE-1M2 when using mechanical
shutter.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
@ -8542,7 +8579,7 @@ models)</span></span></td></tr>
<td class=r title='10 = 0xa'>10</td>
<td>ShutterCount</td>
<td class=c>int32u</td>
<td><span class=s><span class=n>(total number of image exposures made by the camera)</span></span></td></tr>
<td><span class=s><span class=n>(total number of mechanical shutter actuations)</span></span></td></tr>
<tr class=b>
<td class=r title='26 = 0x1a'>26</td>
<td>SonyExposureTime</td>
@ -8862,61 +8899,66 @@ WX350/WX500, ILCE-1/7/7C/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/7SM3/9/9M2/5000/
<td class=c>-</td>
<td>--&gt; <a href='Sony.html#ISOInfo'>Sony ISOInfo Tags</a></td></tr>
<tr class=b>
<td class=r title='1182 = 0x49e'>1182</td>
<td>ISOInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Sony.html#ISOInfo'>Sony ISOInfo Tags</a></td></tr>
<tr>
<td class=r title='1185 = 0x4a1'>1185</td>
<td>ISOInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Sony.html#ISOInfo'>Sony ISOInfo Tags</a></td></tr>
<tr>
<tr class=b>
<td class=r title='1186 = 0x4a2'>1186</td>
<td>ISOInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Sony.html#ISOInfo'>Sony ISOInfo Tags</a></td></tr>
<tr class=b>
<tr>
<td class=r title='1210 = 0x4ba'>1210</td>
<td>ISOInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Sony.html#ISOInfo'>Sony ISOInfo Tags</a></td></tr>
<tr>
<tr class=b>
<td class=r title='1437 = 0x59d'>1437</td>
<td>ISOInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Sony.html#ISOInfo'>Sony ISOInfo Tags</a></td></tr>
<tr class=b>
<tr>
<td class=r title='1588 = 0x634'>1588</td>
<td>ISOInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Sony.html#ISOInfo'>Sony ISOInfo Tags</a></td></tr>
<tr>
<tr class=b>
<td class=r title='1590 = 0x636'>1590</td>
<td>ISOInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Sony.html#ISOInfo'>Sony ISOInfo Tags</a></td></tr>
<tr class=b>
<tr>
<td class=r title='1612 = 0x64c'>1612</td>
<td>ISOInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Sony.html#ISOInfo'>Sony ISOInfo Tags</a></td></tr>
<tr>
<tr class=b>
<td class=r title='1619 = 0x653'>1619</td>
<td>ISOInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Sony.html#ISOInfo'>Sony ISOInfo Tags</a></td></tr>
<tr class=b>
<tr>
<td class=r title='1656 = 0x678'>1656</td>
<td>ISOInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Sony.html#ISOInfo'>Sony ISOInfo Tags</a></td></tr>
<tr>
<tr class=b>
<td class=r title='1720 = 0x6b8'>1720</td>
<td>ISOInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Sony.html#ISOInfo'>Sony ISOInfo Tags</a></td></tr>
<tr class=b>
<tr>
<td class=r title='1758 = 0x6de'>1758</td>
<td>ISOInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='Sony.html#ISOInfo'>Sony ISOInfo Tags</a></td></tr>
<tr>
<tr class=b>
<td class=r title='1767 = 0x6e7'>1767</td>
<td>ISOInfo</td>
<td class=c>-</td>
@ -8979,6 +9021,7 @@ WX350/WX500, ILCE-1/7/7C/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/7SM3/9/9M2/5000/
<br>10 = Selective (for Miniature effect)
<br>11 = Zone
<br>12 = Expanded Flexible Spot
<br>13 = Custom AF Area
<br>14 = Tracking
<br>15 = Face Tracking
<br>20 = Animal Eye Tracking
@ -11220,7 +11263,7 @@ ILCE-7/7M2/7M3/7R/7RM2/7RM3/7RM4/7S/7SM2/9/9M2/5000/5100/6000/6100/6300/
</table></td></tr></table></blockquote>
<h2><a name='Tag9416'>Sony Tag9416 Tags</a></h2>
<p>Valid for the ILCE-1/6700/7CM2/7CR/7M4/7RM5/7SM3/9M3, ILME-FX3/FX30, ZV-E1.</p>
<p>Valid for the ILCE-1/6700/7CM2/7CR/7M4/7RM5/7SM3/9M3, ILME-FX3/FX30, ZV-E1/E10M2.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
@ -11547,6 +11590,47 @@ written by the Sony DSC-F828 and DSC-V3.</p>
<td><span class=s><span class=n>(key to decrypt the rest of the file from the end of the maker notes)</span></span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='SR2Private'>Sony SR2Private Tags</a></h2>
<p>The SR2 format uses the DNGPrivateData tag to reference a private IFD
containing these tags. SR2 images are written by the Sony DSC-R1, but
this information is also written to ARW images by other models.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag&nbsp;ID</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td title='0x7200 = 29184'>0x7200</td>
<td>SR2SubIFDOffset</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x7201 = 29185'>0x7201</td>
<td>SR2SubIFDLength</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x7221 = 29217'>0x7221</td>
<td>SR2SubIFDKey</td>
<td class=c>no</td>
<td><span class=s><span class=n>(key to decrypt SR2SubIFD)</span></span></td></tr>
<tr class=b>
<td title='0x7240 = 29248'>0x7240</td>
<td>IDC_IFD</td>
<td class=c>-</td>
<td>--&gt; <a href='SonyIDC.html'>SonyIDC Tags</a></td></tr>
<tr>
<td title='0x7241 = 29249'>0x7241</td>
<td>IDC2_IFD</td>
<td class=c>-</td>
<td>--&gt; <a href='SonyIDC.html'>SonyIDC Tags</a></td></tr>
<tr class=b>
<td title='0x7250 = 29264'>0x7250</td>
<td>MRWInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='MinoltaRaw.html'>MinoltaRaw Tags</a></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='SRF2'>Sony SRF2 Tags</a></h2>
<p>These tags are found in the SRF2 through SRF5 IFD&#39;s.</p>
<blockquote>
@ -11686,47 +11770,6 @@ written by the Sony DSC-F828 and DSC-V3.</p>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='SR2Private'>Sony SR2Private Tags</a></h2>
<p>The SR2 format uses the DNGPrivateData tag to reference a private IFD
containing these tags. SR2 images are written by the Sony DSC-R1, but
this information is also written to ARW images by other models.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag&nbsp;ID</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td title='0x7200 = 29184'>0x7200</td>
<td>SR2SubIFDOffset</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td title='0x7201 = 29185'>0x7201</td>
<td>SR2SubIFDLength</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td title='0x7221 = 29217'>0x7221</td>
<td>SR2SubIFDKey</td>
<td class=c>no</td>
<td><span class=s><span class=n>(key to decrypt SR2SubIFD)</span></span></td></tr>
<tr class=b>
<td title='0x7240 = 29248'>0x7240</td>
<td>IDC_IFD</td>
<td class=c>-</td>
<td>--&gt; <a href='SonyIDC.html'>SonyIDC Tags</a></td></tr>
<tr>
<td title='0x7241 = 29249'>0x7241</td>
<td>IDC2_IFD</td>
<td class=c>-</td>
<td>--&gt; <a href='SonyIDC.html'>SonyIDC Tags</a></td></tr>
<tr class=b>
<td title='0x7250 = 29264'>0x7250</td>
<td>MRWInfo</td>
<td class=c>-</td>
<td>--&gt; <a href='MinoltaRaw.html'>MinoltaRaw Tags</a></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='SR2SubIFD'>Sony SR2SubIFD Tags</a></h2>
<p>Tags in the encrypted SR2SubIFD</p>
<blockquote>
@ -12134,7 +12177,7 @@ some models when the <a href="../ExifTool.html#ExtractEmbedded">ExtractEmbedded<
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Dec 29, 2023</i>
<br><i>Last revised Mar 24, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

105
html/TagNames/Trailer.html Normal file
View File

@ -0,0 +1,105 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- (this file generated automatically by Image::ExifTool::BuildTagLookup) -->
<head>
<title>Trailer Tags</title>
<link rel=stylesheet type='text/css' href='style.css' title='Style'>
</head>
<body>
<h2 class=top><a name='Vivo'>Trailer Vivo Tags</a></h2>
<p>Information written in JPEG trailer by some Vivo phones.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>HDRImage</td>
<td class=c>no</td>
<td><span class=s><span class=n>(highlights of HDR image)</span></span></td></tr>
<tr class=b>
<td>HiddenData</td>
<td class=c>no</td>
<td><span class=s><span class=n>(hidden in EXIF, not in trailer. This data is lost if the file is edited)</span></span></td></tr>
<tr>
<td>JSONInfo</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='OnePlus'>Trailer OnePlus Tags</a></h2>
<p>Information written in JPEG trailer by some OnePlus phones.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag&nbsp;ID</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>'JSONInfo'</td>
<td>JSONInfo</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'private.emptyspace'</td>
<td>OnePlusTrailerLen?</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'watermark.device'</td>
<td>Device</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<h2><a name='Google'>Trailer Google Tags</a></h2>
<p>Google-defined information written in the trailer of JPEG images by some
phones. This information is referenced by DirectoryItem entries in the XMP.
Note that some of this information may also be referenced from other
metadata formats, and hence may be extracted twice. For example,
MotionPhotoVideo may also exist within a Samsung trailer as
EmbbededVideoFile, or GainMapImage may also exist in an MPF trailer as
MPImage2.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
<tr class=h><th>Tag&nbsp;ID</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
<td>'Confidence'</td>
<td>ConfidenceMapImage</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'Depth'</td>
<td>DepthMapImage</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'GainMap'</td>
<td>GainMapImage</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'MotionPhoto'</td>
<td>MotionPhotoVideo</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
<td>'android/confidencemap'</td>
<td>ConfidenceMapImage</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
<td>'android/depthmap'</td>
<td>DepthMapImage</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Last revised Jan 28, 2025</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@
<h2 class=top>ExifTool Tag Names</h2>
<p>
The tables listed below give the names of all tags recognized by ExifTool.
They contain a total of 27474 tags, with 17233 unique tag names.
They contain a total of 28450 tags, with 17673 unique tag names.
</p>
<blockquote>
<table width='100%' class=frame><tr><td>
@ -24,13 +24,10 @@ They contain a total of 27474 tags, with 17233 unique tag names.
<a href='GPS.html'>GPS</a><br>
<a href='GeoTiff.html'>GeoTiff</a><br>
<a href='PLUS.html'>PLUS</a><br>
<a href='Panasonic.html'>Panasonic</a><br>
<a href='Pentax.html'>Pentax</a><br>
<a href='ICC_Profile.html'>ICC_Profile</a><br>
<a href='PrintIM.html'>PrintIM</a><br>
<a href='Photoshop.html'>Photoshop</a><br>
<a href='Apple.html'>Apple</a><br>
<a href='NikonSettings.html'>NikonSettings</a><br>
<a href='Canon.html'>Canon</a><br>
<a href='CanonCustom.html'>CanonCustom</a><br>
<a href='CanonVRD.html'>CanonVRD</a><br>
@ -39,25 +36,27 @@ They contain a total of 27474 tags, with 17233 unique tag names.
<a href='FLIR.html'>FLIR</a><br>
<a href='FujiFilm.html'>FujiFilm</a><br>
<a href='GE.html'>GE</a><br>
<a href='GoPro.html'>GoPro</a><br>
<a href='HP.html'>HP</a><br>
<a href='JVC.html'>JVC</a><br>
<a href='Kodak.html'>Kodak</a></td><td width='16%'>
<a href='Kodak.html'>Kodak</a><br>
<a href='Leaf.html'>Leaf</a><br>
<a href='Lytro.html'>Lytro</a></td><td width='16%'>
<a href='Minolta.html'>Minolta</a><br>
<a href='Motorola.html'>Motorola</a><br>
<a href='Nikon.html'>Nikon</a><br>
<a href='NikonCustom.html'>NikonCustom</a><br>
<a href='NikonCapture.html'>NikonCapture</a><br>
<a href='NikonCustom.html'>NikonCustom</a><br>
<a href='NikonSettings.html'>NikonSettings</a><br>
<a href='Nintendo.html'>Nintendo</a><br>
<a href='Olympus.html'>Olympus</a><br>
<a href='PanasonicRaw.html'>PanasonicRaw</a><br>
<a href='SigmaRaw.html'>SigmaRaw</a><br>
<a href='Lytro.html'>Lytro</a><br>
<a href='Panasonic.html'>Panasonic</a><br>
<a href='Pentax.html'>Pentax</a><br>
<a href='PhaseOne.html'>PhaseOne</a><br>
<a href='Reconyx.html'>Reconyx</a><br>
<a href='Sanyo.html'>Sanyo</a><br>
<a href='Samsung.html'>Samsung</a><br>
<a href='Ricoh.html'>Ricoh</a><br>
<a href='Samsung.html'>Samsung</a><br>
<a href='Sanyo.html'>Sanyo</a><br>
<a href='Sigma.html'>Sigma</a><br>
<a href='Sony.html'>Sony</a><br>
<a href='SonyIDC.html'>SonyIDC</a><br>
@ -66,20 +65,18 @@ They contain a total of 27474 tags, with 17233 unique tag names.
<a href='JSON.html'>JSON</a><br>
<a href='CBOR.html'>CBOR</a><br>
<a href='PLIST.html'>PLIST</a><br>
<a href='CanonRaw.html'>CanonRaw</a></td><td width='16%'>
<a href='KyoceraRaw.html'>KyoceraRaw</a><br>
<a href='CanonRaw.html'>CanonRaw</a><br>
<a href='KyoceraRaw.html'>KyoceraRaw</a></td><td width='16%'>
<a href='MinoltaRaw.html'>MinoltaRaw</a><br>
<a href='PanasonicRaw.html'>PanasonicRaw</a><br>
<a href='SigmaRaw.html'>SigmaRaw</a><br>
<a href='JFIF.html'>JFIF</a><br>
<a href='FlashPix.html'>FlashPix</a><br>
<a href='MPF.html'>MPF</a><br>
<a href='InfiRay.html'>InfiRay</a><br>
<a href='Stim.html'>Stim</a><br>
<a href='Scalado.html'>Scalado</a><br>
<a href='InfiRay.html'>InfiRay</a><br>
<a href='GoPro.html'>GoPro</a><br>
<a href='InfiRay.html'>InfiRay</a><br>
<a href='Qualcomm.html'>Qualcomm</a><br>
<a href='InfiRay.html'>InfiRay</a><br>
<a href='Jpeg2000.html'>Jpeg2000</a><br>
<a href='APP12.html'>APP12</a><br>
<a href='AFCP.html'>AFCP</a><br>
@ -89,11 +86,12 @@ They contain a total of 27474 tags, with 17233 unique tag names.
<a href='Microsoft.html'>Microsoft</a><br>
<a href='GIMP.html'>GIMP</a><br>
<a href='MIE.html'>MIE</a><br>
<a href='Trailer.html'>Trailer</a><br>
<a href='GIF.html'>GIF</a><br>
<a href='BMP.html'>BMP</a><br>
<a href='BPG.html'>BPG</a></td><td width='16%'>
<a href='BPG.html'>BPG</a><br>
<a href='WPG.html'>WPG</a><br>
<a href='ICO.html'>ICO</a><br>
<a href='ICO.html'>ICO</a></td><td width='16%'>
<a href='PICT.html'>PICT</a><br>
<a href='PNG.html'>PNG</a><br>
<a href='MNG.html'>MNG</a><br>
@ -116,8 +114,9 @@ They contain a total of 27474 tags, with 17233 unique tag names.
<a href='ID3.html'>ID3</a><br>
<a href='ITC.html'>ITC</a><br>
<a href='QuickTime.html'>QuickTime</a><br>
<a href='RIFF.html'>RIFF</a></td><td width='16%'>
<a href='RIFF.html'>RIFF</a><br>
<a href='FLAC.html'>FLAC</a><br>
<a href='GM.html'>GM</a></td><td width='16%'>
<a href='Parrot.html'>Parrot</a><br>
<a href='AAC.html'>AAC</a><br>
<a href='Ogg.html'>Ogg</a><br>
@ -141,14 +140,15 @@ They contain a total of 27474 tags, with 17233 unique tag names.
<a href='AIFF.html'>AIFF</a><br>
<a href='ASF.html'>ASF</a><br>
<a href='WTV.html'>WTV</a><br>
<a href='DICOM.html'>DICOM</a></td><td width='16%'>
<a href='FITS.html'>FITS</a><br>
<a href='DICOM.html'>DICOM</a><br>
<a href='FITS.html'>FITS</a></td><td width='16%'>
<a href='XISF.html'>XISF</a><br>
<a href='HTML.html'>HTML</a><br>
<a href='Palm.html'>Palm</a><br>
<a href='Torrent.html'>Torrent</a><br>
<a href='EXE.html'>EXE</a><br>
<a href='LNK.html'>LNK</a><br>
<a href='PCAP.html'>PCAP</a><br>
<a href='Font.html'>Font</a><br>
<a href='VCard.html'>VCard</a><br>
<a href='Text.html'>Text</a><br>
@ -248,7 +248,7 @@ ExifTool. A big thanks to everyone who has helped with this so far!)</i>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Created Feb 15, 2005</i>
<br><i>Last revised Jan 30, 2024</i>
<br><i>Last revised May 22, 2025</i>
<p class=lf><a href='../index.html'>&lt;-- Back to ExifTool home page</a></p>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,67 @@
Description: Build ExifTool Geolocation database.
Syntax: build_geolocation [OPTIONS] [DBFILE] ...
Options:
DBFILE - Input database file name or directory. Multiple input database
files may be specified. The -p, -c and -cp options apply to
the database that comes after them on the command line. The
other input files are assumed to be in the same directory as
the first database file. Default is "allCountries.txt".
-p POP - Minimum population for cities to include. POP may be a number
or be of the form "CC[,C2...]=###" to set different limits for
specific countries/regions, where CC and C2 are country codes
with optional region name or code appended after a period (eg.
"CA.Ontario,US=500" sets the minimum population to 500 for
cities on Ontario Canada or the U.S.). If a region is
specified, either the full name or the geonames admin1 code may
be used, and case and spaces are not significant. May be
multiple -p options for each input DBFILE. Default is "2000".
-c CODE - Feature codes to always include, regardless of population. CODE
is a comma-separated list of feature codes, with an optional
leading comma-separated list of country/region codes followed
by an equals sign to apply only to specific countries. The
feature-code list may begin with a dash to remove entries from
the default list, or a plus sign to add entries. May be
multiple -c options for each intput DBFILE. Country/region and
feature names are case insensitive. Default is "PPLA,PPLA2".
-cp CODE - Additional features to include if above minimum population.
Default is "PPL,PPLA,PPLA2,PPLA3,PPLA4,PPLA5,PPLC,PPLCH,PPLF,
PPLG,PPLH,PPLL,PPLQ,PPLR,PPLS,PPLW,PPLX,STLMT".
-l LANG - Alternate languages to read from alternateNamesV2.txt if
available. These are used to generate AltNames.dat an the
GeoLang files. LANG is a comma-separated list of language
codes, starting with a dash to remove items from the default
list. May be set to an empty string to disable generation
of alternate language files even if alternateNamesV2.txt
exists. The same set of languages applies to all input
database files. Default is "cs,de,en,en-ca,en-gb,es,fi,fr,it,
ja,ko,nl,pl,ru,sk,sv,tr,zh,zh-cn,zh-tw".
-o OUTDIR - Output directory name. Default is the same directory as the
first input database file. A directory named Geolocation_out
containing the output files will be created in this directory.
-ver VER - Version for output geolocation database (default is 1.03).
-v - Verbose messages.
-h - Show this help.
Input files (download from https://download.geonames.org/export/dump/):
allCountries.txt - default database file (smaller files with names
like "cities###.txt" may be specified instead)
countryInfo.txt - mandatory country names file
admin1CodesASCII.txt - mandatory region names file
admin2Codes.txt - mandatory subregion names file
featureCodes_en.txt - optional feature codes file(s)
alternateNamesV2.txt - optional alternate names file (must exist to
to generate AltNames.dat and GeoLang files)
Output files:
Geolocation_out - default output directory name
Geolocation.dat - ExifTool database file
AltNames.dat - alternate names file
GeoLang - directory for alternate language files
Author:
Copyright 2024, Phil Harvey
This is free software; you can redistribute it and/or modify it under the
same terms as Perl itself.

View File

@ -7,14 +7,15 @@
<body>
<pre>
<span class=com>#------------------------------------------------------------------------------
# File: example.config
# File: example.config --&gt; ~/.ExifTool_config
#
# Description: Example user configuration file for Image::ExifTool
#
# Notes: This example file shows how to define your own shortcuts and
# add new EXIF, IPTC, XMP, PNG, MIE and Composite tags, as well
# as how to specify preferred lenses for the LensID tag, and
# define new file types and default ExifTool option values.
# define new file types and default ExifTool API options and
# command-line arguments.
#
# Note that unknown tags may be extracted even if they aren't
# defined, but tags must be defined to be written. Also note
@ -89,7 +90,8 @@
},
<span class=com># add more user-defined EXIF tags here...</span>
},
<span class=com># the <a href="geotag.html">Geotag feature</a> writes these additional GPS tags if available:</span>
<span class=com># the <a href="geotag.html">Geotag feature</a> writes GPSPitch and GPSRoll tags, but these
# aren't standard EXIF so we define custom tags here:</span>
'Image::ExifTool::GPS::Main' =&gt; {
<span class=com># Example 2. GPS:GPSPitch</span>
0xd000 =&gt; {
@ -172,15 +174,8 @@
# the Composite tag to be evaluated. If no Require'd tags are
# specified, then at least one of the Desire'd tags must exist. See
# the Composite table in Image::ExifTool::Exif for more examples,
# and lib/Image/ExifTool/README for all of the details.</span>
BaseName =&gt; {
Require =&gt; {
0 =&gt; 'FileName',
},
<span class=com># remove the extension from FileName</span>
ValueConv =&gt; '$val[0] =~ /(.*)\./ ? $1 : $val[0]',
},
<span class=com># the next few examples demonstrate simplifications which may be
# and lib/Image/ExifTool/README for all of the details.
# The first few examples demonstrate simplifications which may be
# used if only one tag is Require'd or Desire'd:
# 1) the Require lookup may be replaced with a simple tag name
# 2) "$val" may be used to represent "$val[0]" in the expression</span>
@ -225,6 +220,7 @@
3 =&gt; 'PreviewImage (1)',
<span class=com># (if the MPF has 2 previews, MPImage3 could be the larger one)</span>
4 =&gt; 'MPImage3',
5 =&gt; 'JpgFromRaw2', # in RW2 from newer Panasonic models
},
<span class=com># ValueConv may also be a code reference
# Inputs: 0) reference to list of values, 1) ExifTool object</span>
@ -280,7 +276,7 @@
STRUCT_NAME =&gt; 'MyStruct',
<span class=com># optional rdf:type property for the structure</span>
TYPE =&gt; 'http://x.y.z/test/xystruct',
<span class=com># structure fields (very similar to tag definitions)</span>
<span class=com># structure field definitions (very similar to tag definitions)</span>
X =&gt; { Writable =&gt; 'integer' },
Y =&gt; { Writable =&gt; 'integer' },
<span class=com># a nested structure...</span>
@ -306,6 +302,11 @@
NewXMPxxxStructX =&gt; { Name =&gt; 'SomeOtherName', Flat =&gt; 1 },
);
<span class=com># the namespace may be registered so ExifTool generates the expected family 1
# group names when reading if the UserDefined namespace uses a different prefix</span>
require Image::ExifTool::XMP;
Image::ExifTool::XMP::RegisterNamespace(\%Image::ExifTool::UserDefined::xxx);
<a name='MIE'><span class=com># Adding a new MIE group requires a few extra definitions</span></a>
use Image::ExifTool::MIE;
%Image::ExifTool::UserDefined::MIETest = (
@ -359,7 +360,7 @@ use Image::ExifTool::MIE;
use Image::ExifTool::QuickTime;
$Image::ExifTool::QuickTime::Keys{PREFERRED} = 3;
<span class=com># Specify default ExifTool option values
<span class=com># Specify default ExifTool API options
# (see the <a href="ExifTool.html#Options">Options function documentation</a> for available options)</span>
%Image::ExifTool::UserDefined::Options = (
CoordFormat =&gt; '%.6f', <span class=com># change default GPS coordinate format</span>
@ -368,6 +369,19 @@ $Image::ExifTool::QuickTime::Keys{PREFERRED} = 3;
RequestAll =&gt; 3, <span class=com># request additional tags not normally generated</span>
);
<span class=com># Specify default exiftool command-line arguments
# - inserted before all other options except -config
# - applies to all -execute'd commands</span>
@Image::ExifTool::UserDefined::Arguments = (
'-i', 'HIDDEN', <span class=com># ignore hidden files by default (names beginning with ".")</span>
);
<span class=com># Add user-defined cities to the Geolocation lookup</span>
@Image::ExifTool::UserDefined::Geolocation = (
<span class=com># (city,region,subregion,country_code,country,timezone,feature_code,population,lat,lon)</span>
['Sinemorets','Burgas','Obshtina Tsarevo','BG','','Europe/Sofia','PPL',400,42.06115,27.97833],
);
<span class=com>#------------------------------------------------------------------------------</span>
1; <span class=com>#end</span>
</pre>

View File

@ -44,6 +44,9 @@ value.</p>
<tr><td>CHECK_WARN</td><td>Used to return CHECK_PROC warnings</td></tr>
<tr><td>Cleanup</td><td>List of subroutines to call before returning from Extract().
Call AddCleanup() to add to this list.</td></tr>
<tr><td>COMP_KEYS</td><td>Lookup for tag keys used in Composite tags</td></tr>
<tr><td>Compression</td><td>Compression for current EXIF IFD (or '' if no Compression tag).
@ -131,6 +134,9 @@ value.</p>
<tr><td>GLOBAL_TIME_OFFSET</td><td>Time offset hash for first shifted date/time value of GlobalTimeShift option</td></tr>
<tr><td>HandlerType</td><td>[QuickTime only] Handler type for most recent Meta or Media object,
except for 'alis' and 'url ' typs.</td></tr>
<tr><td>HTML_DUMP</td><td>Reference to HtmlDump object when using HtmlDump feature</td></tr>
<tr><td>INDENT</td><td>Indent string for verbose output</td></tr>
@ -145,7 +151,11 @@ value.</p>
<tr><td>LIST_TAGS</td><td>Hash of tag keys by tagInfo reference for active list-type
tags. This hash is cleared at the start of processing for each directory.
Not used during when writing.</td></tr>
Not used when writing.</td></tr>
<tr><td>LONG_PATH_IN</td><td>Cached input to the WindowsLongPath function</td></tr>
<tr><td>LONG_PATH_OUT</td><td>Cached return value from the WindowsLongPath function</td></tr>
<tr><td>LOW_PRIORITY_DIR</td><td>Lookup based on directory name for directories where
undefined Priority tags get set to Priority 0 (eg. PreviewIFD in all images,
@ -166,6 +176,8 @@ value.</p>
option (unless MakerNotes option is 2). Used by SetNewValuesFromFile() to adjust offsets
in maker note IFD</td></tr>
<tr><td>MediaType</td><td>[QuickTime only] Handler type for most recent Media object.</td></tr>
<tr><td>Model</td><td>Camera model name set during reading and writing</td></tr>
<tr><td>MOVED_KEY</td><td>Tag key of last tag replaced by a higher priority tag
@ -173,17 +185,30 @@ value.</p>
<tr><td>NEW_VALUE</td><td>Hash of new value information keyed by tag info reference.
Elements of new value information hash are:
<table class='clear'><tr><td>TagInfo</td><td>-</td><td>tag information reference</td></tr>
<tr><td>DelValue</td><td>-</td><td>list of specific values to delete</td></tr>
<tr><td>Value</td><td>-</td><td>list of values to add</td></tr>
<table class='clear'>
<tr valign='top'><td>TagInfo</td><td>-</td><td>tag information reference</td></tr>
<tr valign='top'><td>DelValue</td><td>-</td><td>list of specific values to delete</td></tr>
<tr valign='top'><td>Value</td><td>-</td><td>list of values to add</td></tr>
<tr valign='top'><td>IsCreating</td><td>-</td><td>must be set for the tag to be added, otherwise just
changed if it already exists. A value of 2 will create a new tag if its group already
exists, but won't add a new group</td></tr>
<tr valign='top'><td>EditOnly</td><td>-</td><td>flag set if tag should never be created (regardless
of file type). If this is set, then IsCreating must be false</td></tr>
<tr valign='top'><td>CreateOnly</td><td>-</td><td>flag set if creating only (never edit existing tag)</td></tr>
<tr valign='top'><td>CreateGroups</td><td>-</td><td>hash of all family 0 group names where tag may be created</td></tr>
<tr valign='top'><td>WriteGroup</td><td>-</td><td>group name where information is being written (correct case)</td></tr>
<tr valign='top'><td>WantGroup</td><td>-</td><td>group name as specified in call to function (case insensitive)</td></tr>
<tr valign='top'><td>Next</td><td>-</td><td>reference to next new value hash in linked list
if there is more than one new value hash (for writing to different groups) for this
tagInfo</td></tr>
<tr valign='top'><td>NoReplace</td><td>-</td><td>set if value was created with Replace=0</td></tr>
<tr valign='top'><td>AddBefore</td><td>-</td><td>number of list items added by a subsequent Replace=0 call</td></tr>
<tr valign='top'><td>IsNVH</td><td>-</td><td>flag indicating this is a new value hash (always 1)</td></tr>
<tr valign='top'><td>Order</td><td>-</td><td>counter to indicate the order that new value hashes were created</td></tr>
<tr valign='top'><td>Shift</td><td>-</td><td>shift value</td></tr>
<tr valign='top'><td>Save</td><td>-</td><td>flag set by call to SaveNewValues() if this value
should be saved</td></tr>
<tr><td colspan=3>MAKER_NOTE_FIXUP - pointer to fixup if necessary for a maker note value</td></tr>
</table></td></tr>
<tr><td>NewIPTCDigest</td><td>MD5 digest for most recently written IPTC data (undefined if IPTC doesn't
@ -204,6 +229,8 @@ value.</p>
<tr><td>NUM_FOUND</td><td>Number of tags found</td></tr>
<tr><td>NV_COUNT</td><td>Counter incremented for each NEW_VALUE hash created</td></tr>
<tr><td>OldIPTCDigest</td><td>MD5 digest for original IPTC data (undefined if IPTC didn't
exist). Calculated only if a value of 'old' is being written/deleted to/from the
Photoshop:IPTCDigest tag</td></tr>
@ -211,7 +238,8 @@ value.</p>
<tr><td>OPTIONS</td><td>ExifTool options</td></tr>
<tr><td>PATH</td><td>List reference to SubDirectory path. eg)
[qw(JPEG APP13 Photoshop IPTC)]</td></tr>
[qw(JPEG APP13 Photoshop IPTC)]. Among other things, used to generate the family 5
group names.</td></tr>
<tr><td>PDF_CAPTURE</td><td>Used by PDF module to store information when writing</td></tr>
@ -244,8 +272,6 @@ value.</p>
<tr><td>RAF</td><td>Random access file object for reading from input file</td></tr>
<tr><td>RATIONAL</td><td>Hash of rational values as a string fraction keyed by tag key</td></tr>
<tr><td>Recreated</td><td>Directories recreated when writing (used to prevent recreating
multiple directories of the same type)</td></tr>
@ -261,7 +287,8 @@ value.</p>
a call to SaveNewValues()</td></tr>
<tr><td>SaveFormat</td><td>Hash reference to check which TIFF format types were used
in the file. Valid only if the (undocumented) SaveFormat option is used.</td></tr>
in the file. Valid only if the (undocumented) SaveFormat option is used.
Used by config_files/tiff_version.config.</td></tr>
<tr><td>SET_GROUP0</td><td>Value to use for family 0 group name when new tags
are found</td></tr>
@ -285,6 +312,8 @@ information may include:
<tr valign='top'><td>NoList</td><td>-</td><td>used internally to store values for List-type tags</td></tr>
<tr valign='top'><td>NoListDel</td><td>-</td><td>flag used internally to delete value if included in another list</td></tr>
<tr valign='top'><td>Fixup</td><td>-</td><td>fixup information for maker notes block</td></tr>
<tr valign='top'><td>BinVal</td><td>-</td><td>raw binary value of tag if SaveBin option is set</td></tr>
<tr valign='top'><td>Rational</td><td>-</td><td>rational tag value as a string fraction</td></tr>
</table></td></tr>
<tr><td>TAG_INFO</td><td>Hash of tagInfo hash references, keyed by tag key</td></tr>
@ -301,7 +330,7 @@ information may include:
<tr><td>VALUE</td><td>Hash of raw tag values keyed by tag key</td></tr>
<tr><td>WARNED_ONCE</td><td>Hash of warning messages that have been issued once already</td></tr>
<tr><td>WAS_WARNED</td><td>Hash of warning messages that have been issued once already</td></tr>
<tr><td>WRITE_GROUPS</td><td>List of write groups in order of priority</td></tr>

File diff suppressed because it is too large Load Diff

View File

@ -48,6 +48,7 @@ ol.index { margin: 0; padding: 0 0 0 2em }
<li><a href="#Q30">Extracting all metadata</a></li>
<li><a href="#Q31">Rewriting the entire file</a></li>
<li><a href="#Q32">Safely removing all metadata</a></li>
<li><a href="#Q33">No writable tags set from &lt;file&gt;</a></li>
</ol>
</div>
@ -92,9 +93,10 @@ more information. </blockquote>
<blockquote><i>[Also see <a href="#Q23">FAQ number 23</a> for reasons why
ExifTool may not write some tags to certain file types.]</i></blockquote>
<blockquote>First, make sure you are looking at the right information. Use
ExifTool with a command like this to extract all information from the file,
along with the location it was written:
<blockquote>First, if ExifTool says "image files updated", then some information
was written. Make sure you are looking at the right information. Use ExifTool
with a command like this to extract all information from the file, along with
the location it was written:
<pre>exiftool -a -G1 -s c:\images\test.jpg</pre>
@ -1074,15 +1076,15 @@ absolute offsets then this could result in corrupted makernote information when
writing, but this is very unlikely.</blockquote>
<a name="Q16"></a>
<p>16. <b>"Why doesn't ExifTool rename my AVI files?"</b></p>
<p>16. <b>"Why doesn't ExifTool rename my video files?"</b></p>
<blockquote>By default, ExifTool only processes <u>writable file
types</u><span class='sm'><sup>&dagger;</sup></span> when <u>any
tag</u><span class='sm'><sup>&Dagger;</sup></span> is being written and a
directory name is specified on the command line. To force exiftool to process
other files, they must either be listed on the command line by name, or be
specified using the <code>-ext</code> or <code>-ext+</code> option, something
like this:
<blockquote>By default, ExifTool only processes <u>writable file types</u>
<span class='sm'><sup>&dagger;</sup></span> when <u>any tag</u>
<span class='sm'><sup>&Dagger;</sup></span> is being written and a directory
name is specified on the command line, so AVI files won't be processed by
default. To force exiftool to process other files, they must either be listed
on the command line by name, or be specified using the <code>-ext</code> or
<code>-ext+</code> option, something like this:
<pre><span class=blk># process AVI files in addition to other writable file types</span>
exiftool -ext+ AVI -d pics/%Y/%m "-directory&lt;dateTimeOriginal" DIR
@ -1099,6 +1101,14 @@ example above) to process any number of different file types, or
<code>-ext "*"</code> may be used to process files with any extension (or none at all).
</blockquote>
<blockquote><b>Note:</b> The above commands generally still won't work for
MOV/MP4 videos because these files typically don't contain a DateTimeOriginal
tag. For these types of files, CreateDate should be used instead (possibly with
the addition of <code>-api QuickTimeUTC</code> if these timestamps are based on
UTC). Use this command to see which date/time tags are available:
<pre>exiftool -time:all -a -G1 -s FILE</pre></blockquote>
<blockquote class='sm'><sup>&dagger;</sup> <span class=lt>The
<code>-listwf</code> option may be used to list the extensions of all writable
file types, or see <a href="index.html#supported">here</a> for a table of
@ -1432,11 +1442,12 @@ when creating new EXIF (eg. "<code>-ExifByteOrder=II</code>" for little-endian).
<blockquote>When reading, by default exiftool converts all control characters to
"." to avoid messing up the output formatting, so newlines will appear as a "."
in the output. The <code>-b</code> option may be used to bypass all output
formatting (except that a line-feed character is inserted between items in a
list), but this may not be appropriate when the values of many tags must be
extracted. In this case, the formatted output (<code>-p</code>), JSON
(<code>-j</code>), XML (<code>-X</code>) and PHP (<code>-php</code>) options
provide alternative output formats which preserve newlines in values.</blockquote>
formatting (except that a line-feed character or other separator specified by
the <code>-sep</code> option is inserted between items in a list), but this may
not be appropriate when the values of many tags must be extracted. In this
case, the formatted output (<code>-p</code>), JSON (<code>-j</code>), XML
(<code>-X</code>) and PHP (<code>-php</code>) options provide alternative output
formats which preserve newlines in values.</blockquote>
<blockquote>Alternatively, the <a href="ExifTool.html#Filter">API Filter option</a>
may be used to apply an arbitrary filter to all extracted values. For example,
@ -1510,13 +1521,13 @@ the queued list if a leading <code>+</code> is added to the target tag name (eg.
order, and all together at the point in the command line where the
<code>-tagsFromFile</code> option is located, regardless of whether these tags
are specified immediately after the <code>-tagsFromFile</code> option or later
on the command line. Remember that "<code>-tagsFromFile @</code>" is implied
unless another file is specified when redirecting information with arguments
like <code>"-DSTTAG&lt;SRCTAG"</code>.</li></ol> Note: When copying tag values,
adding to lists, or shifting date/time values, the source value is always the
original value found in the file, regardless of any previous assignments. For
example, the following command sets Subject to the original value of Title in
the file (NOT to "test"):
on the command line. Remember that unless otherwise specified,
"<code>-tagsFromFile @</code>" is implied before the first argument to redirect
tags (ie. <code>"-DSTTAG&lt;SRCTAG"</code>).</li></ol>
Note: When copying tag values, adding to lists, or shifting date/time values,
the source value is always the original value found in the file, regardless of
any previous assignments. For example, the following command sets Subject to
the original value of Title in the file (NOT to "test"):
<pre>exiftool -title=test "-subject&lt;title" a.jpg</pre></blockquote>
<a name="Q23"></a>
@ -1827,8 +1838,19 @@ copies back any EXIF color space tags (adding any mandatory EXIF tags using
default values if necessary).
</blockquote>
<a name="Q33"></a>
<p>33. <b>"Why do I get a '<code>No writable tags set from &lt;file&gt;</code>' warning?"</b></p>
<blockquote>This warning occurs when copying tags from a file if
nothing was copied (ie. if none of the specified tags were found in the
source file, or tags existed but weren't copied to any writable tags). There
are no warnings for individual tags which weren't copied; just this warning if
no tags were copied. This message may be expected for some files when using
certain commands, but may be suppressed by adding
<code>-api "NoWarning=No writable tags"</code> to the command if desired.</blockquote>
<hr>
<i>Last revised Jan 23, 2024</i>
<i>Last revised Apr 26, 2025</i>
<p class='lf'><a href="index.html">&lt;-- Back to ExifTool home page</a></p>
</body>
</html>

View File

@ -357,7 +357,7 @@ with these name format codes.</p>
<p><b>Notes:</b></p>
<ol>
<li>The <code>%f</code> format code is an ExifTool-specific enhancement and
supports an optional number of digits after the decimal point. For example,
supports an optional number of digits after the decimal point. For example,
<code>%3f</code> gives fractional seconds with 3 digits (eg. ".123").
<code>%f</code> alone returns an empty string if the date/time contains no
subseconds. A "<code>-</code>" may be added to drop the decimal (eg.
@ -366,11 +366,15 @@ number of digits, and the date/time value is incremented by one second if the
rounding would overflow to the next second, even if the number of decimal digits
is zero (ie. <code>%0f</code>). Without <code>%f</code>, the fractional seconds
are simply discarded and no rounding is performed.<br><br></li>
<li>The <code>%s</code> and <code>%z</code> format codes use the time zone
specified by the date/time value. If the date/time value does not include a
time zone specification, then it is interpreted as a local time in the system
time zone. These format codes are parsed by ExifTool, so they should work on
all systems.<br><br></li>
time zone. <code>%z</code> returns the time zone in the format "-0500", and
adding a colon to the format specifier (ie. <code>%:z</code>) adds a colon to
the returned time zone (eg. "-05:00"). These format codes are parsed by
ExifTool, so they should work on all systems.<br><br></li>
<li>The <code>%Z</code> format code ignores any time zone specified in the
date/time value, and returns the system time-zone name for the given date/time
interpreted as a local system time.</li>

638
html/geolocation.html Normal file
View File

@ -0,0 +1,638 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>ExifTool Geolocation Feature</title>
<link rel=stylesheet type='text/css' href='style.css' title='Style'>
<style type="text/css">
<!--
pre { color: #800; margin-left: 4em }
.indent { margin-left: 22% }
table.dl { border: 1px solid gray; border-collapse: collapse }
table.dl td { padding: .4em .8em }
i.sm { font-size: 12pt }
-->
</style>
</head>
<body>
<div class='index'>
<a href="#Read">Reading Geolocation</a>
<br>&nbsp; - <a href="#DefTags">Default tags</a>
<br>&nbsp; - <a href="#DefInput">Default input</a>
<br>&nbsp; - <a href="#Reg">Regular expressions</a>
<br><a href="#Write">Writing Geolocation</a>
<br>&nbsp; - <a href="#Geotag">While geotagging</a>
<br><a href="#Extra">Extra Features</a>
<br>&nbsp; - <a href="#Lang">Language translations</a>
<br>&nbsp; - <a href="#Params">Optional parameters</a>
<br>&nbsp; - <a href="#Alt">Alternate databases</a>
<br>&nbsp; - <a href="#List">Listing the database</a>
<br>&nbsp; - <a href="#Custom">Customization</a>
<br><a href="#Troubleshooting">Troubleshooting</a>
</div>
<a name="Geolocation"></a>
<h1>ExifTool Geolocation Feature
<i class='sm lt'>(aka "Reverse Geocoding")</i></h1>
<p>ExifTool has the ability to generate geolocation information (including city,
region, subregion and country) from GPS coordinates (and visa versa) using an
included database of all cities with population 2000 or greater based
on a Creative Commons database from <a href="http://www.geonames.org/export/">geonames.org</a>.
(An extended version of the ExifTool database is available with cities down to a
population of 500. <a href="#Alt">See below</a> for more information.) There are
two basic modes of operation: one to generate geolocation information when
reading from a file, and another to write geolocation information to a file.</p>
<a name="Read"></a>
<h3>Reading Geolocation Information</h3>
<blockquote>Geolocation tags may be generated when reading a file by setting the
<a href="ExifTool.html#Geolocation">API Geolocation option</a>. For example,
<pre>exiftool -api geolocation "-geolocation*" test.jpg</pre>
produces an output similar to this for a file containing GPS coordinates:
<pre class=blk>Geolocation City : Saint-Hyacinthe
Geolocation Region : Quebec
Geolocation Subregion : Montérégie
Geolocation Country Code : CA
Geolocation Country : Canada
Geolocation Time Zone : America/Toronto
Geolocation Feature Code : PPL
Geolocation Feature Type : Populated Place
Geolocation Population : 50000
Geolocation Position : 45.6307, -72.9571
Geolocation Distance : 1.8 km
Geolocation Bearing : 226</pre>
The above tags are generated based on either a GPS position (preferentially), or
from city, state/province and country information. The meanings of the
resulting region and subregion tags vary by country. In North America for
example, region corresponds to state or province, and subregion corresponds to
county. The population is rounded to 2 significant digits, and the distance and
bearing are generated only when an input GPS position is provided, and give the
distance in km and the compass bearing from the input GPS point to the
GeolocationPosition of the returned city. See the
<a href="TagNames/Extra.html">Extra Tags documentation</a> for a brief description
of each Geolocation tag.</blockquote>
<a name="DefTags"></a>
<p><b>Default tags</b></p>
<blockquote>The Geolocation option has a list of default tags that it looks for
in the source file to use as inputs for determining the nearest city. These tags
are, in order:
<blockquote>GPSLatitude, GPSLongitude, GPSLatitudeRef, GPSLongitudeRef,
GPSCoordinates, LocationShownGPSLatitude, LocationShownGPSLongitude,
XMP:City, State, CountryCode, Country,
IPTC:City, Province-State, Country-PrimaryLocationCode, Country-PrimaryLocationName,
LocationShownCity, LocationShownProvinceState, LocationShownCountryCode,
LocationShownCountryName</blockquote>
First, the file is checked for GPS tags in this list, and coordinates from the
first available of these tags are used as inputs to determine the geolocation.
If no GPS position is found, the file is checked for
city/state/province/country/countrycode tags in the list, and the inputs are
taken from the first available city information. Note that each specified city
tag must come before the corresponding state/province, etc. If multiple
matches are found, the city with the largest population is returned unless
the <code>-a</code> (API <a href="ExifTool.html#Duplicates">Duplicates</a>)
option is used in which case all matching cities are returned.</blockquote>
<blockquote>To override the default list of tags, set the Geolocation option
to a comma-separated list of tags beginning with dollar signs, but <b>note that
Composite tags may not be used</b>. For example:
<pre>exiftool -api geolocation="$XMP:GPSLatitude,$XMP:GPSLongitude" test.jpg</pre>
<i>(Note: On Mac/Linux/PowerShell, use single quotes (<code>'</code>) instead
of double quotes (<code>"</code>) around arguments containing a dollar sign
(<code>$</code>).)</i></blockquote>
<a name="DefInput"></a>
<p><b>Default input</b></p>
<blockquote>It may be useful to specify a default input for the case where none
of the specified tags are found. For this, the default input is added to the
Geolocation setting. For example, the information returned by this command
includes Geolocation information for the specified coordinates if none of the
default tags listed above are found:
<pre>exiftool -api geolocation="44.3414,-72,1234" test.jpg</pre>
Alternately, default city information may be specified. When doing this, the
city name comes first, and is optionally followed by region (eg. state or
province), subregion (eg. county), country code and/or country name in any
order, separated by commas. For example:
<pre>exiftool -api geolocation="London,England" test.jpg</pre>
The default tags may be specified at the same time as the default value to
override the pre-defined list of default tags, for example:
<pre>exiftool -api geolocation="$gpslatitude,$gpslatituderef,\
$gpslongitude,$gpslongituderef,-37.81,144.96" test.jpg</pre>
This feature may be used to generate geolocation information with no input file
at all. For example, this command:
<pre>exiftool -api geolocation=Munich,Germany</pre>
produces this output:
<pre class=blk>Geolocation City : Munich
Geolocation Region : Bavaria
Geolocation Subregion : Upper Bavaria
Geolocation Country Code : DE
Geolocation Country : Germany
Geolocation Time Zone : Europe/Berlin
Geolocation Feature Code : PPLA
Geolocation Feature Type : Seat Of A First-order Administrative Division
Geolocation Population : 1300000
Geolocation Position : 48.1375, 11.5755</pre>
If both city name and GPS coordinates are provided, the nearest city
matching the specified name(s) is returned, and the result includes the
distance and compass bearing from the specified GPS position to this city.
For example:
<pre class=blk>> <span class=code>exiftool -api geolocation=44,-76,Kingston</span>
Geolocation City : Kingston
Geolocation Region : Ontario
Geolocation Subregion : Frontenac County
Geolocation Country Code : CA
Geolocation Country : Canada
Geolocation Time Zone : America/Toronto
Geolocation Feature Code : PPL
Geolocation Feature Type : Populated Place
Geolocation Population : 110000
Geolocation Position : 44.2298, -76.4810
Geolocation Distance : 46.12 km
Geolocation Bearing : 296</pre>
Multiple nearby cities may be returned instead of just the nearest by adding
<code>num=##</code> to the Geolocation option string, where <code>##</code> is the
desired number of cities. The returned cities are ordered from nearest to
furthest, and distinguished by the family 3 (document number) group which allows
them to be output as separate lines with the <code>-p</code> option. For example,
the nearest cities to a specified GPS position:
<pre class=blk>> <span class=code>exiftool -ee -p geo.fmt -api geolocation=49.48,6.37,num=4</span>
7.00 km,286 deg,PPLA3,Mondorf-les-Bains,Luxembourg
7.24 km,357 deg,PPLA2,Remich,Luxembourg
11.55 km,80 deg,PPL,Orscholz,Germany
12.32 km,240 deg,PPL,Cattenom,France</pre>
or the nearest cities to a specified city:
<pre class=blk>> <span class=code>exiftool -ee -p geo.fmt -api geolocation="new york city,num=5"</span>
0.00 km,0 deg,PPL,New York City,United States
0.31 km,287 deg,PPL,Tribeca,United States
0.74 km,203 deg,PPLX,Financial District,United States
0.85 km,77 deg,PPLX,Chinatown,United States
0.92 km,255 deg,PPL,Battery Park City,United States</pre>
Note that the <code>-ee</code> option must be used for the <code>-p</code>
option to iterate through the returned cities since they are returned as
sub-documents. Here is the "geo.fmt" file used in the above commands:
<pre>$geolocationdistance,$geolocationbearing deg,$geolocationfeaturecode,$geolocationcity,$geolocationcountry</pre>
Or for a JSON-format output, a command like this may be useful:
<pre class=blk><span class=code>exiftool -j -g3 -api geolocation=49.48,6.37,num=4</span></pre>
</blockquote>
<a name="Reg"></a>
<p><b>Regular expressions</b></p>
<blockquote>An advanced feature allows standard Perl regular expressions of the
form <code>/expr/</code> to be used to match city, region, etc names. The
regular expression may be prefixed by "<code>ci</code>", "<code>re</code>",
"<code>sr</code>", "<code>cc</code>" or "<code>co</code>" to apply only to City,
Region, Subregion, CountryCode or Country names, otherwise the expression
matches any of these. A dash at the start is used to exclude matching entries
(eg. <code>-co/Canada/</code> excludes cities in Canada from the search). The
<b>regular expression matches are case sensitive</b> unless "<code>i</code>" is
added after the expression. For example:
<pre><span class=blk># this matches "Frontenac" in any place name (case insensitive<sup>&dagger;</sup>)</span>
exiftool -api geolocation=/frontenac/i
<span class=blk># while this matches "Frontenac" only in subregion names</span>
exiftool -api geolocation=sr/frontenac/i
<span class=blk># and this matches the city "Kingston" with "Ontario" in any other field</span>
exiftool -api geolocation=kingston,/ontario/i</pre>
One more feature allows both GPS and place names to be used together if no input
tags are found and the default value includes both of these. In this case the
closest city matching all of the specified names is returned. For example, to
find the closest city in Canada to a specified location, you could do this:
<pre>exiftool -api geolocation="40.784,-73.966,co/Canada/"</pre>
This technique may be useful if you were travelling near the border of
a country and want to keep the geolocated cities within that country.</blockquote>
<blockquote><sup>&dagger;</sup> <i>Currently case insensitivity applies only to ASCII characters.</i></blockquote>
<hr>
<a name="Write"></a>
<h3>Writing Geolocation Information</h3>
<blockquote>A write-only <a href="TagNames/Extra.html">Geolocate tag</a> is
provided as a convenience to simplify the writing of standard geolocation tags.
This is an alternative to using the API <a href="ExifTool.html#Geolocation">Geolocation</a>
option and copying the generated Geolocation tags individually to the desired
locations, and is completely independent of the API Geolocation setting
(although the <a href="#Params">optional parameters</a> still apply).</blockquote>
<blockquote>Writing the Geolocate tag with GPS coordinates generates city,
state/province, country code and country tags. By default, XMP tags are
generated (plus Keys:LocationName for videos), but group name(s) may be
specified to write tags to other locations (see table below). For example, to
write the XMP City, State, CountryCode and Country tags from specified GPS
coordinates:
<pre>exiftool "-geolocate=45.6429,-72.9374" test.jpg</pre>
or to write the IPTC tags from GPS coordinates in a file:
<pre>exiftool "-iptc:geolocate&lt;gpsposition" test.jpg</pre>
Conversely, GPS coordinates may be generated by writing Geolocate with a city
name. A region, subregion, country code and/or country name may be added in any
order after the city name, separated by commas. Fields must match exactly the
entries in the database, but case is not significant<sup>&dagger;</sup>. Regular expressions may
also be used in the same format as for the API Geolocation option
(<a href="#Reg">see above</a>). If more than one matching city is found then a
minor warning is issued and the tags are not written, but the IgnoreMinorErrors
option may be used to write tags for the matching city with the largest
population. For example, the following command writes XMP:GPSLatitude, etc and
IPTC:City, etc for Paris France.
<pre>exiftool -xmp:iptc:geolocate="paris,fr" test.jpg</pre>
The table below lists the tags that are written for each group name specified
for the Geolocate tag. Multiple group names may be used. In some cases,
different tags are written based on whether input GPS coordinates or a city name
were used. As mentioned, the Geolocate tag is for convenience only, and makes
it easier to write common tags listed in the table below. The API
<a href="ExifTool.html#Geolocation">Geolocation</a> option is more flexible and
may be used with the <code>-tagsFromFile</code> option to write any combination
of tags, but the command may be more complicated.
<blockquote><table width='90%' class='norm'>
<tr><th rowspan='2'>Group Name(s) Specified</th><th colspan='2'>Tags Written based on input...</th></tr>
<tr><th width='35%'>GPS coordinates</th><th width='35%'>City name</th></tr>
<tr><td align='center'><i>(none)</i></td><td>
XMP:City<br>
XMP:State<br>
XMP:CountryCode<br>
XMP:Country<br>
Keys:LocationName</td><td>
GPSLatitude<br>
GPSLongitude<br>
GPSLatitudeRef<br>
GPSLongitudeRef<br>
QuickTime::GPSCoordinates</td></tr>
<tr><td align='center'>XMP</td><td>
XMP:City<br>
XMP:State<br>
XMP:CountryCode<br>
XMP:Country</td><td>
<i>(only if XMP-exif not specified)</i><br>
XMP:GPSLatitude<br>
XMP:GPSLongitude</td></tr>
<tr><td align='center'>XMP-photoshop</td><td colspan='2'><div class='indent'>
XMP-photoshop:City<br>
XMP-photoshop:State<br>
XMP-photoshop:Country</div></td></tr>
<tr><td align='center'>XMP-iptcCore</td><td colspan='2'><div class='indent'>
XMP-iptcCore:CountryCode</div></td></tr>
<tr><td align='center'>XMP-exif</td><td colspan='2'><div class='indent'>
XMP-exif:GPSLatitude<br>
XMP-exif:GPSLongitude</div></td></tr>
<tr><td align='center'>XMP-iptcExt</td><td colspan='2'><div class='indent'>
XMP-iptcExt:LocationShownCity<br>
XMP-iptcExt:LocationShownProvinceState<br>
XMP-iptcExt:LocationShownCountryCode<br>
XMP-iptcExt:LocationShownCountryName<br>
XMP-iptcExt:LocationShownGPSLatitude<br>
XMP-iptcExt:LocationShownGPSLongitude</div></td></tr>
<tr><td align='center'>IPTC<br><i>(older IIM spec.)</i></td><td colspan='2'><div class='indent'>
IPTC:City<br>
IPTC:Province-State<br>
IPTC:Country-PrimaryLocationCode<br>
IPTC:Country-PrimaryLocationName</div></td></tr>
<tr><td align='center'>GPS or EXIF</td><td colspan='2'><div class='indent'>
GPS:GPSLatitude<br>
GPS:GPSLongitude<br>
GPS:GPSLatitudeRef<br>
GPS:GPSLongitudeRef</div></td></tr>
<tr><td align='center'>Keys</td>
<td>Keys:LocationName<br>(with "City, Region, Country")</td>
<td>Keys:GPSCoordinates</td></tr>
<tr><td align='center'>ItemList</td><td colspan='2'><div class='indent'>
ItemList:GPSCoordinates</div></td></tr>
<tr><td align='center'>UserData</td><td colspan='2'><div class='indent'>
UserData:GPSCoordinates</div></td></tr>
<tr><td align='center'>QuickTime</td><td colspan='2'><div class='indent'>
<i>(only if not written to Keys, ItemList or UserData)</i><br>
QuickTime:GPSCoordinates</div></td></tr>
</table></blockquote></blockquote>
<a name="Geotag"></a>
<p><b>While geotagging</b></p>
<blockquote>The special value of "geotag" may be used to represent the GPS
coordinates determined while <a href="geotag.html">geotagging</a> from a GPS
track file. For example:
<pre>exiftool -geolocate=geotag -geotag track.gpx c:\images</pre>
Regular expressions may be also used when geotagging. For example, to constrain
the search to cities within France or Germany:
<pre>exiftool -geolocate="geotag,co/France|Germany/" -geotag track.gpx c:\images</pre>
Limiting the search like this will result in better performance when geotagging
a large number of files, but the overhead is significant so it would degrade
performance if geotagging only a small number of files.</blockquote>
<hr>
<a name="Extra"></a>
<h3>Extra Features</h3>
<a name="Lang"></a>
<p><b>Language translations</b></p>
<blockquote>The exiftool <code>-lang</code> option (API <a href="ExifTool.html#Lang">Lang</a>
option) applies to the tags generated by the API
<a href="ExifTool.html#Geolocation">Geolocation</a> option.
<b>Note that this language translation feature is optional</b>, and requires
installation of an <a href="#Alt">alternate database</a>. For example,
with an alternate database installed:
<pre>exiftool -api geolocation=Munich,Germany -lang de</pre>
gives this output
<pre class=blk>Geolocation City : Muenchen
Geolocation Region : Bayern
Geolocation Subregion : Regierungsbezirk Oberbayern
Geolocation Country Code : DE
Geolocation Country : Bundesrepublik Deutschland
Geolocation Time Zone : Europe/Berlin
Geolocation Feature Code : PPLA
Geolocation Feature Type : Seat Of A First-order Administrative Division
Geolocation Population : 1300000
Geolocation Position : 48.1375, 11.5755</pre>
Note that the language coverage currently isn't very comprehensive, and may only
be used when reading (ie. not when writing the Geolocate tag or in the API
<a href="ExifTool.html#Geolocation">Geolocation</a> option setting), but may be
extended via user-defined translations (see <a href="#Custom">Customization</a>
below).</blockquote>
<a name="Params"></a>
<p><b>Optional parameters</b></p>
<blockquote>Four special API options are used as parameters in the geolocation
search for both the API Geolocation option and when writing the Geolocate tag.
<blockquote>
<table class='norm'>
<tr><th>API Option</th><th>Description</th></tr>
<tr><td><a href="ExifTool.html#GeolocMinPop">GeolocMinPop</a></td>
<td>Minimum city population to consider when searching for a city in the
database. This is compared with the populations from the database which are
stored with 2 significant digits. Cities with populations lower than this are
not considered in the search.</td></tr>
<tr><td><a href="ExifTool.html#GeolocMaxDist">GeolocMaxDist</a></td>
<td>When determining geolocation from input GPS coordinates, cities with
distances in km greater than this are ignored.</td></tr>
<tr><td><a href="ExifTool.html#GeolocFeature">GeolocFeature</a></td>
<td>Comma-separated list of feature codes to include in search, or to exclude
if the list starts with a dash (-). Valid feature codes are PPL, PPLA, PPLA2,
PPLA3, PPLA4, PPLA5, PPLC, PPLCH, PPLF, PPLG, PPLH, PPLL, PPLQ, PPLR, PPLS,
PPLW, PPLX, STLMT and Other, plus possible user-included codes if an alternate
database is used. See <a href="http://www.geonames.org/export/codes.html#P">here</a>
for a description of these codes.</td></tr>
<tr><td><a href="ExifTool.html#GeolocAltNames">GeolocAltNames</a></td>
<td>Flag to use alternate names if available when search for a city
name. Default is 1. See <a href="#Alt">Alternate databases</a> below
for more information.</td></tr>
</table></blockquote></blockquote>
<a name="Alt"></a>
<p><b>Alternate databases</b></p>
<blockquote>ExifTool is distributed with a geolocation database of cities
with population 2000 or greater (plus adm div down to
<a href="http://www.geonames.org/export/codes.html#P">PPLA2</a>), but a larger
database of cities with population 500 or greater and adm div down to
<a href="http://www.geonames.org/export/codes.html#P">PPLA4</a> may be downloaded
from the link below. To use the new database, unzip the downloaded file and add
the following line to your <a href="config.html">ExifTool config file</a>:
<pre>$Image::ExifTool::Geolocation::geoDir = '/PATH/TO/Geolocation500';</pre>
where <code>/PATH/TO</code> is the name of the directory containing the unzipped
Geolocation500 directory. <i>(Note that this may not work in Windows if there
are Unicode characters in the path name.)</i> The <code>$geoDir</code> variable
may also be set to an empty string to completely disable loading of a
Geolocation database, which may be useful for working with only a user-defined
database. As a convenience, <code>$geoDir</code> may be set at runtime via the
API <a href="ExifTool.html#GeoDir">GeoDir</a> pseudo-option.</blockquote>
<blockquote>A database of alternate city names and language translation files are
also included in the zip file. The alternate names are consulted only when a full
city name is provided in a search (ie. not using a regular expression), the API
<a href="ExifTool.html#GeolocAltNames">GeolocAltNames</a> option is set (which is
the default), and the AltNames.dat file is found and matches the number of
entries in the currently loaded Geolocation.dat database. For example, searching
for "Big Apple" with the alternate names enabled would return the information for
New York City.
<blockquote><table class='dl'>
<tr><td>Download database with cities of population 500 or<br>
greater, including alternate names and translations:<br>
(requires ExifTool 12.82 or later)</td>
<!-- NOTE: geo.txt on the web site is automatically updated by the publish script from this file name -->
<td><a href="https://exiftool.org/Geolocation500-20250522.zip">Geolocation500-20250522.zip</a> (7.7 MB)</td></tr>
</table></blockquote></blockquote>
<blockquote>A "build_geolocation" utility script is available to allow users
to build their own alternate geolocation databases for ExifTool. This utility
requires that the necessary input database files from
<a href="https://download.geonames.org/export/dump/">geonames.org</a> have been
downloaded, and provides control over the population thresholds and included
feature codes on a per-country basis.
<a href="build_geolocation.txt">Read the help documentation</a> or
<a href="https://exiftool.org/build_geolocation.zip">download the utility</a>
(requires Perl to run).</blockquote>
<blockquote>For example, the command below generates a database including cities
of population 2000 or greater, except 500 or greater in Canada and the U.S.,
plus all cities with feature class "PPL" regardless of population in Ontario
Canada and New York State, with alternate names and translations only for
English, French and German:
<pre>build_geolocation -p 2000 -p ca,us=500 -c "ca.ontario,us.new york=+PPL" -l en,fr,de DIR</pre>
For this command, the necessary geonames database files must exist in the
<code>DIR</code> directory, and the output will go to
"DIR/Geolocation_out" but the <code>-o</code> option may be used to specify
another directory (see <code>build_geolocation -h</code> for details). The
"<code>+PPL</code>" adds PPL to the list of features to always keep (which is
"PPLA,PPLA2" by default). Any feature type(s) from the geonames database
may be added -- this isn't restricted to just cities.</blockquote>
<a name="List"></a>
<p><b>Listing the database</b></p>
<blockquote>The exiftool application <code>-listgeo</code> option may be used to
list all entries in the Geolocation database, including any user-defined entries
(see below for a description of how to create these). For this output, the API
<a href="ExifTool.html#GeolocMinPop">GeolocMinPop</a>,
<a href="ExifTool.html#GeolocFeature">GeolocFeature</a> and
<a href="ExifTool.html#GeolocAltNames">GeolocAltNames</a> options are in effect, and
the application <code>-sort</code> and <code>-lang</code> options may be used to
sort the output alphabetically and/or apply a language translation.</blockquote>
<a name="Custom"></a>
<p><b>Customization</b></p>
<blockquote>User-defined database entries and language translations may be added
through definitions in the <a href="config.html">ExifTool config file</a>. (Note
that the config file must be UTF-8 encoded.)</blockquote>
<blockquote>Database entries are added in this format:
<pre>
<span class=blk># Add user-defined cities to the Geolocation lookup</span>
@Image::ExifTool::UserDefined::Geolocation = (
<span class=blk># (city,region,subregion,country_code,country,timezone,feature_code,population,lat,lon)</span>
['Sinemorets','Burgas','Obshtina Tsarevo','BG','','Europe/Sofia','PPL',400,42.06115,27.97833],
['Silistar','Burgas','Obshtina Tsarevo','BG','','Europe/Sofia','PPL',0,42.02199,28.00959],
['Krapets','Dobrich','Obshtina Shabla','BG','','Europe/Sofia','PPL',300,43.62621,28.56669],
);</pre>
The city name, country_code, population and latitude/longitude fields must be
filled, but all other fields may be left empty if they are not applicable or not
known. If the country name is empty (as above), then the name from the database
is used if available, based on the specified country code. An optional
comma-separated list of alternate city names may be added as an additional item
after the longitude.</blockquote>
<blockquote>User-defined language translations take this format:
<pre><span class=blk># Add user-defined language translations (note that user-defined
# translations override any preexisting translations)</span>
%Image::ExifTool::Geolocation::geoLang = (
<span class=blk># translations for the Russian language</span>
ru => {
<span class=blk># city, region, subregion and/or country names may be specified
# alone to provide a translation for any matching name</span>
'Sinemorets' =&gt; 'синеморец',
'Bulgaria' =&gt; 'Болгария',
<span class=blk># a country code and optional region (joined without a comma) and an
# optional subregion may be added before the city to be more specific</span>
'BGBurgas,Obshtina Shabla,Silistar' =&gt; 'силистар',
'BG,Krapets' =&gt; 'Крапец',
<span class=blk># the city is omitted to specify only region, subregion or country name</span>
'GR,' => 'Греция', <span class=blk># translate country name only</span>
'BGBurgas,' => 'Бургас', <span class=blk># translate region name only</span>
'BGBurgas,Obshtina Tsarevo,' => 'Муниципалитет Царево',<span class=blk># subregion only</span>
},
<span class=blk># (add other languages here)</span>
);
</pre>
Translations in are organized into sections in the <code>%geoLang</code> hash
based on the language code (eg. "<code>ru</code>" in the example above). Within
each section are the key/value pairs which are used to apply the translation for
that language. The keys on the left are used to match names in the database,
translating them to the values on the right. Here is a breakdown of the format
of the keys on the left:
<blockquote><table class='norm'><tr><th>Key format</th><th>Matches...</th></tr>
<tr><td>Nnnn</td><td>any city, region, subregion or country with name "Nnnn"</td></tr>
<tr><td>,Nnnn</td><td>any city with name "Nnnn" in any region or country</td></tr>
<tr><td>CC,Nnnn</td><td>any city with name "Nnnn" in any region and any subregion of the country with code "CC"</td></tr>
<tr><td>CCRrrr,Nnnn</td><td>any city with name "Nnnn" in region "Rrrr" and any subregion of the country with code "CC"</td></tr>
<tr><td>CCRrrr,Ssss,Nnnn</td><td>any city with name "Nnnn" in region "Rrrr" and subregion "Ssss" of the country with code "CC"</td></tr>
<tr><td>CC,</td><td>the country with code "CC"</td></tr>
<tr><td>CCRrrr,</td><td>the region "Rrrr" in the country with code "CC"</td></tr>
<tr><td>CCRrrr,Ssss,</td><td>the subregion "Ssss" in region "Rrrr" of the country with code "CC"</td></tr>
</table></blockquote>
Entries in the table above are ordered from lowest priority at the top to
highest at the bottom, with the match of highest priority taking precedence when
translating a name.</blockquote>
<blockquote>User-defined language translations may be added for the default 'en'
language to affect the returned names when no language is specified.</blockquote>
<hr>
<a name="Troubleshooting"></a>
<h3>Troubleshooting</h3>
<a name="TR1"></a>
<p>1. <b>"ExifTool returns an unexpected city for the specified GPS coordinates"</b></p>
<blockquote>First, try listing a number of nearby cities to see if ExifTool is
just finding something closer. For example the following command lists the
10 cities nearest to a specified GPS position, where "LAT" and "LON" are signed
floating-point latitude and longitude:
<pre>exiftool -api geolocation=LAT,LON,num=10 -a -g3</pre>
If the expected city is in this list, take note of the feature codes and populations
of these cities. The API <a href="ExifTool.html#GeolocFeature">GeolocFeature</a>
and API <a href="ExifTool.html#GeolocMinPop">GeolocMinPop</a> options may be used
to limit the feature types and/or population of the returned cities according
to your requirements. For example, to avoid returning PPLX city types and cities
with population less than 10000, you could do this:
<pre>exiftool -api geolocfeature=-PPLX -api geolocminpop=10000 ...</pre>
However, if your city doesn't appear in the list, then it is likely that it
doesn't exist in the ExifTool Geolocation database. You can check this by
searching for the specific city in the ExifTool database. This command returns
all cities with name "CITYNAME" exactly (case insensitive):
<pre>exiftool -api geolocation="CITYNAME" -m -a -g3</pre>
or this command may be used to match cities with "STRING" anywhere in their name
(the added "<code>i</code>" makes the match case insensitive):
<pre>exiftool -api geolocation="ci/STRING/i" -m -a -g3</pre>
A city may not appear in the ExifTool Geolocation database if the population
is lower than a minimum, which is 2000 for the standard database. An
<a href="#Alt">alternate database</a> is available with cities down to population
500, but it may be a good idea to first see if the city exists in the source
geonames.org database. Use the search field <a href="https://www.geonames.org">here</a>
to see if the city does exist and to determine its population and feature codes
(click on the appropriate city in the list returned by the search).</blockquote>
<blockquote>If the city doesn't exist at geonames.org or has incorrect information,
there are two things you can do: 1. Create an account and geonames.org and update
their database with the correct information. This information will eventually
propagate down to ExifTool (probably within a few months), or you can build your
own <a href="#Alt">alternate database</a>. Or 2. Create a
<a href="#Custom">user-defined entry</a> for your city in the ExifTool config file.
</blockquote>
<hr>
<i>Created Mar 12, 2024</i><br>
<i>Last revised May 22, 2025</i>
<p class='lf'><a href="index.html">&lt;-- Back to ExifTool home page</a></p>
</body>
</html>

View File

@ -2,6 +2,7 @@
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Geotagging with ExifTool</title>
<link rel=stylesheet type='text/css' href='style.css' title='Style'>
<style type="text/css">
@ -9,6 +10,7 @@
pre { color: #800; margin-left: 4em }
.nr { white-space: nowrap }
.prog { padding: 0.5em; border: 1px solid gray; background: #fee }
.indent { margin-left: 22% }
-->
</style>
</head>
@ -18,6 +20,7 @@ pre { color: #800; margin-left: 4em }
<br>&nbsp; - <a href="#geotag">Geotag</a>
<br>&nbsp; - <a href="#geosync">Geosync</a>
<br>&nbsp; - <a href="#geotime">Geotime</a>
<br><a href="#Geolocation">Writing Geolocation</a>
<br><a href="#CSVFormat">CSV File Format</a>
<br><a href="#Examples">Examples</a>
<br><a href="#Options">Options</a>
@ -36,12 +39,13 @@ is used to determine the GPS position at the time of the image, then the
following tags are written to the image (if the corresponding information
is available):</p>
<pre>GPSLatitude GPSLongitude GPSAltitude GPSDateStamp
GPSLatitudeRef GPSLongitudeRef GPSAltitudeRef GPSTimeStamp
GPSTrack GPSSpeed GPSImgDirection GPSPitch
GPSTrackRef GPSSpeedRef GPSImgDirectionRef GPSRoll
GPSCoordinates AmbientTemperature CameraElevationAngle
</pre>
<center><table>
<tr><td>GPSLatitude</td><td>GPSLongitude</td><td>GPSAltitude</td><td>CameraElevationAngle</td><td>GPSPitch</td></tr>
<tr><td>GPSLatitudeRef</td><td>GPSLongitudeRef</td><td>GPSAltitudeRef</td><td>GPSDateStamp</td><td>GPSRoll</td></tr>
<tr><td>GPSTrack</td><td>GPSSpeed</td><td>GPSImgDirection</td><td>GPSTimeStamp</td><td> </td></tr>
<tr><td>GPSTrackRef</td><td>GPSSpeedRef</td><td>GPSImgDirectionRef</td><td>GPSHPositioningError</td><td> </td></tr>
<tr><td>GPSCoordinates</td><td>AmbientTemperature</td><td>GPSMeasureMode</td><td>GPSDOP</td><td> </td></tr>
</table></center>
<blockquote class=lt><i>Note: GPSPitch and GPSRoll are not standard tags, and
must be <a href="#Orient">user-defined</a>. GPSCoordinates is written to
@ -93,7 +97,7 @@ option, so this command is equivalent to the one above:</p>
<p>Multiple GPS log files may be loaded simultaneously by using more than one
<code>-geotag</code> option or <code>-geotag=</code> assignment in the same
command, or by using wildcards in the filename argument of the
command, and/or by using wildcards in the filename argument of the
<code>-geotag</code> option. This allows batch processing of images spanning
different tracks with a single command. When using wildcards the argument may
need to be quoted on some systems to prevent shell globbing, but note that
@ -195,10 +199,12 @@ DateTimeOriginal, CreateDate, ModifyDate, FileModifyDate</li>
position is calculated (by interpolating between fixes in the GPS track log).
Unless a group is specified, exiftool writes the generated tags to the default
groups. If a value for <code>Geotime</code> is not given, it is taken from
unformatted value of <code>DateTimeOriginal</code> for each image (as if
<code>"-Geotime&lt;DateTimeOriginal#"</code> had been specified), but the value
may be copied from any other date/time tag or set directly from a date/time
string.</p>
unformatted value of <code>SubSecDateTimeOriginal</code> (preferentially) or
<code>DateTimeOriginal</code> for each image, but the value may be copied from
any other date/time tag or set directly from a date/time string. The exact form
of the default <code>Geotime</code> argument is:</p>
<pre>"-Geotime<${DateTimeOriginal#;$_=$self->GetValue('SubSecDateTimeOriginal','ValueConv') || $_}"</pre>
<p>If the date/time tag does not include a timezone then one may be added (eg.
<code>"-Geotime&lt;${CreateDate}-05:00"</code>), otherwise the local system time
@ -223,13 +229,25 @@ by default), but <code>ItemList:Geotime</code>, <code>UserData:Geotime</code> or
lines illustrating various aspects of the geotagging feature.</p>
<blockquote class=prog><b>Programmers</b>: Note that <code>Geotime</code> must always
be specified when geotagging via the API (the default value of
<code>DateTimeOriginal#</code> is implemented by the application). Also,
<code>Geotime</code> must be set after both <code>Geotag</code> and
<code>Geosync</code> (the exiftool application reorders the assignments to
ensure this).
be specified when geotagging via the API (the default value is implemented by
the application). Also, <code>Geotime</code> must be set after both
<code>Geotag</code> and <code>Geosync</code> (the exiftool application reorders
the assignments to ensure this).
</blockquote>
<a name="Geolocation"></a>
<h3>Writing Geolocation Tags while Geotagging</h3>
<p>Geolocation city, state/province and country tags may be written automatically
based on the geotagged GPS position by setting the Geolocate tag to "geotag".
For example:</p>
<pre>exiftool -geotag track.gpx -geolocate=geotag c:\images</pre>
<p>See the
<a href="geolocation.html#Geotag">"While geotagging" section of the Geolocation page</a>
for more information.</p>
<a name="CSVFormat"></a>
<h3>ExifTool CSV Log File Format</h3>
@ -267,9 +285,9 @@ columns are ignored.</p>
<a name="E1"></a>
<p>1. Geotag all images in the "c:\images" directory from position information in a
GPS track log ("c:\gps logs\track.log"). Since the <code>Geotime</code> time is
not specified, the value of <code>DateTimeOriginal#</code> is used. Local
system time is assumed unless <code>DateTimeOriginal#</code> contains a
timezone:</p>
not specified, the value of <code>SubSecDateTimeOriginal#</code> (preferentially)
or <code>DateTimeOriginal#</code> is used. Local system time is assumed unless
the date/time value contains a timezone:</p>
<pre>exiftool -geotag "c:\gps logs\track.log" c:\images</pre>
@ -320,7 +338,7 @@ not remove all GPS tags -- to do this instead use <code>-gps:all=</code>):</p>
<a name="E9"></a>
<p>9. Geotag an image with XMP tags, using the time from
<code>DateTimeOriginal</code>:</p>
<code>SubSecDateTimeOriginal</code> or <code>DateTimeOriginal</code>:</p>
<pre>exiftool -xmp:geotag=track.log a.jpg</pre>
@ -338,7 +356,7 @@ operating systems to prevent filename expansion):</p>
<a name="E12"></a>
<p>12. Geotag from a sub-second date/time value with a sub-second time synchronization
(only possible if the EXIF sub-second time stamps are available):</p>
(only possible if the EXIF sub-second time stamps or time zone are available):</p>
<pre>exiftool -Geotag a.log -Geosync=+13.42 "-Geotime&lt;SubSecDateTimeOriginal" dir
</pre>
@ -528,7 +546,7 @@ examples.</blockquote>
<h3>Tips</h3>
<a name="TP1"></a>
<p>1. <b>Time Synchronization</b></p>
<p><b>1. Time Synchronization</b></p>
<blockquote>One way to accurately synchronize your images with GPS time is to
take a picture of the time displayed on your GPS unit while you are out
@ -585,6 +603,10 @@ output files from a set of geotagged images, or from a geotagged video file.
(But note that the <code>-ee3</code> option must be added to the commands below
to extract the full track from a video file.)</p>
<blockquote class=lt><i>(This is different from what is sometimes called
"reverse geocoding", which is the <a href="geolocation.html">ExifTool Geolocation feature</a>.)</i>
</blockquote>
<a name="GPX"></a>
<h4>Creating a GPX track log</h4>
@ -743,7 +765,7 @@ forum post</a> for more useful tips about creating KML files.</p>
<hr>
<i>Created Apr 2, 2009</i><br>
<i>Last revised Oct 13, 2023</i>
<i>Last revised Dec 2, 2024</i>
<p class='lf'><a href="index.html">&lt;-- Back to ExifTool home page</a></p>
</body>
</html>

View File

@ -11,364 +11,324 @@
<p>RSS feed: <a href="https://exiftool.org/rss.xml">https://exiftool.org/rss.xml</a></p>
<p><b>Note:</b> The most recent production release is <a href="Image-ExifTool-12.76.tar.gz">Version 12.76</a>. (Other versions are
<p><b>Note:</b> The most recent production release is <a href="Image-ExifTool-13.30.tar.gz">Version 13.30</a>. (Other versions are
considered development releases, and are not uploaded to <a href="https://metacpan.org/release/Image-ExifTool">MetaCPAN</a>.)</p>
<!-- Use line width of 80 -->
<!-- *********************************************************************** -->
<a name='v12.76'><b>Jan. 31, 2024 - Version 12.76</b></a> <span class=grn>(production release)</span>
<a name='v13.30'><b>May 22, 2025 - Version 13.30</b></a> <span class=grn>(production release)</span>
<ul>
<li>Properly implement patch of 12.45 to avoid duplicating raw data when writing
Sony ARW images where the raw data is double-referenced as both strips and
tiles
<li>Improved handling of bad offsets in HtmlDump output
<li>Added a new Canon RF lens (thanks Norbert Wasser)
<li>Added some new Olympus ArtFilter values
<li>Added support for reading timed GPS from Transcend Drive Body Camera 70 MP4
videos
<li>Added a new FujiFilm AdvancedFilter value (thanks Greybeard)
<li>Decode maker notes from Sigma BF images
<li>Decode a few more Pentax AF-related tags (thanks Karsten Gieselmann)
<li>Extract PreviewImage and its metadata from Sigma BF MOV videos
<li>Allow multiple config files to be specified on the command line (but leave
undocumented for now because the config files currently included in the full
ExifTool package aren't compatible with this feature)
<li>Removed warning introduced in version 12.60 for an undefined tag in a -if
condition, but leave the 12.60 change that sets these tags to an empty
string when -m is used
<li>Patched LensID conversion to better handle a manual lens on a Sony ILCE-7M2
<li>Patched to avoid runtime warning when using -fast option and reading and
HEIC file via a pipe (but you will still get a seek error)
<li>Fixed some tag format types in the config_files/pix4d.config file
<li>Fixed possible "uninitialized value" warning when reading some types of Ligo
timed GPS
</ul>
<a name='v12.75'><b>Jan. 30, 2024 - Version 12.75</b></a> <span class=grn>(production release)</span>
<a name='v13.29'><b>Apr. 27, 2025 - Version 13.29</b></a>
<ul>
<li>CORRUPTION WARNING: Fixed bug introduced in 12.45 which could result in
corrupted Sony ARW images from some newer models when rewriting lossless
compressed ARW images which were previously edited by 12.44 or earlier
<li>Added ability to read C2PA JUMBF metadata from PDF and SVG files
<li>Added ability to extract JUMBF metadata as a block
<li>Added read support for C2PA (JUMBF-format) files
<li>Removed "date before 1970" warning entirely since 64-bit systems should be
able to handle dates in this range
<li>Improved Canon FocusMode decoding
<li>Fixed bug introducd in 12.74 which could cause "Undefined subroutine"
runtime error when reading MIE files
<li>Changed default -geotime argument to use SubSecDateTimeOriginal if available
instead of DateTimeOriginal, instead of applying both (as was done since
ExifTool 13.18). This is more efficient, and avoids an unnecessary warning
<li>Properly return warnings from inverse value conversions when copying a tag
using -tagsFromFile with a tag name string
<li>Fixed issue where RW2 images from the Panasonic DC-S1RM2 could be corrupted
when writing
</ul>
<a name='v12.74'><b>Jan. 23, 2024 - Version 12.74</b></a>
<a name='v13.28'><b>Apr. 25, 2025 - Version 13.28</b></a>
<ul>
<li>Added a couple of new Nikon lenses (thanks Chris)
<li>Added write support for a few new QuickTime Keys tags
<li>Decode ShutterCount for Canon EOS R5 (thanks John Moyer)
<li>Improved error messages in the case of file read errors
<li>Enhanced tag name strings (eg. -if and -p option arguments) to allow values
of multiple matching tags to be concatenated when a group name of "All" is
specified
<li>Enhanced -p option to add -p- feature which avoids adding trailing newline
<li>Changed warning from "Shift results in negative time" to "Shift results in
date before 1970"
<li>Patched calculation of GPSDateTime for the timed metadata in Track3 of
Garmin videos so the API QuickTimeUTC option is no longer required
<li>Fixed conversion error when writing QuickTime:GoogleTrackDuration
<li>Fixed misidentification of non-TIFF-format files containing DNGVersion tag
<li>Fixed bug where Avoid-ed XMP structures could be created when writing
another same-named structure
<li>Internal Changes:
<ul>
<li>Changed form of all new() calls to accommodate backward
incompatibilities in recent versions of Perl
<li>Changed order of InsertTagValues() arguments
<li>DateFmt() now returns value of formatted date/time string
</ul>
<li>Added print conversion for Pentax AFPointValues
<li>Added another Pentax PictureMode value
<li>Decode timed GPS from GKU D900 dashcam videos
<li>Decode timed telemetry data from newer ARCore videos
<li>Decode Panasonic AFAreaSize (thanks andrewj)
<li>Decode ShutterCount for Canon EOS R8 and R50 (<a href="https://github.com/exiftool/exiftool/issues/325">github #325</a>)
<li>Decode ThumbnailTIFF from some Insta360 videos
<li>Decode AROT:HDRGainCurveSize from APP10
<li>Updated to the 2025 MPF specification
<li>Renamed K-3III AFPoints to AFPointsSelected and changed decoding
<li>Fixed bug introduced in 13.23 that could cause an incorrect parsing of XMP
attributes containing an equals sign
<li>Fixed issue reading timed GPS from some Insta360 videos, and issue where
writing these videos would fail
<li>Fixed exif2xmp.args and xmp2exif.args to properly handle EXIF:ImageUniqueID
</ul>
<a name='v12.73'><b>Jan. 10, 2024 - Version 12.73</b></a>
<a name='v13.27'><b>Apr. 8, 2025 - Version 13.27</b></a>
<ul>
<li>Added write support for Leica XMP-xmpDSA tags
<li>Added read support for timed GPS from Yada RoadCam Pro 4K dashcam videos
<li>Added read support for PNG cpIp chunk
<li>Added range checks on lat/long values when writing QuickTime:GPSCoordinates
<li>Decode a number of new values for Ricoh GR III tags
<li>Decode a new Leica tag
<li>Improved handling of Brotli compression errors
<li>Enhanced API NoWarning option to also apply to app "Warning:" outputs
<li>Identify PNG Plus files
<li>Changed name of Pentax ISOAutoParameters to ISOAutoMinSpeed and improved
decoding
<li>Fixed writing of date/time tags in XMP-xmpMM:Pantry structure
<li>API Changes:
<ul>
<li>Added <a href="ExifTool.html#LimitLongValues">LimitLongValues option</a> to provide control over tags which
previously had a hard-coded length limit
</ul>
<li>Decode AF points for the Pentax K-3III
<li>Decode timed GPS from a variant of the Rove R2-4K dashcam
<li>Properly decode SensorTemperature for Pentax K3-III
<li>Patched PCAP test to avoid potential failure
<li>Patched to avoid potential "not a HASH reference" error when writing MOV/MP4
videos
<li>Fixed issue which could result in "uninitialized value" errors when reading
one type of timed GPS from MP4 videos
<li>Fixed problem writing MotionPhotoVideo in MP4 files
</ul>
<a name='v12.72'><b>Dec. 29, 2023 - Version 12.72</b></a>
<a name='v13.26'><b>Mar. 31, 2025 - Version 13.26</b></a>
<ul>
<li>Added read support for AAC audio files
<li>Added a new QuickTime Keys Android tag
<li>Added a number of new values for some Ricoh GR III tags
<li>Decode timed metadata from Intsa360 Ace Pro MP4 videos
<li>Decode GPSDateTime milliseconds in timed Insta360 metadata
<li>Decode timed metadata from INNOV K5 TS videos
<li>Decode a number of new GoPro timed-metadata tags
<li>Decode a few new Xiaomi EXIF tags
<li>Fixed writing of JPG/ARW images from some newer Sony models to preserve
HiddenData
</ul>
<a name='v12.71'><b>Dec. 21, 2023 - Version 12.71</b></a>
<ul>
<li>Added a warning if there was an error reading an alternate file with the
-fileNUM option
<li>Added the ability to write QuickTime Keys:Encoder
<li>Added a few new Canon LensType values (thanks Norbert Wasser)
<li>Added a new, obscure EXIF tag (thanks Neal Krawetz)
<li>Decode real-time metadata from Ricoh Theta videos
<li>Decode SpecularWhiteLevel for more Canon models (github #232)
<li>Decode Canon DualPixelRaw tag (thanks John Moyer)
<li>Decode a few new Nikon tags (thanks Warren Hatch)
<li>Decode more FujiFilm M-RAW tags (thanks Greybeard)
<li>Improved generation of tag names for some JSON tag ID's containing colons
<li>Fixed "Undefined subroutine" error when writing makernotes as a block
<li>Fixed missing ID in family 7 group name for ID3 tags which are not valid for
the specified ID3 version
<li>Fixed bug where some tags from alternate files (with the -fileNUM option)
could show up as "not defined" when used in expressions even though they did
exist
<li>API Changes:
<ul>
<li>Added <a href="ExifTool.html#NoMandatory">NoMandatory option</a>
</ul>
</ul>
<a name='v12.70'><b>Nov. 19, 2023 - Version 12.70</b></a> <span class=grn>(production release)</span> - "20th Anniversary"
<ul>
<li>This marks the 20th anniversary of <a href="ancient_history.html#v1.00">the initial ExifTool release</a>!
<li>Added ability to read/delete C2PA CAI JUMBF metadata from TIFF-based images
(eg. DNG), QuickTime-based files (eg. MP4) and WebP images, and read JUMBF
from other RIFF-based files (eg. WAV, AVI), GIF images and ID3v2 metadata
<li>Added read/write support for JPH images
<li>Added ability to read Leica Q3 maker notes
<li>Added ability to recognize and write FujiFilm M-RAW RAF images (multiple raw
images in a single file) and the ability to read preview-less RAF images
<li>Added support for reading a number of obscure Microsoft EXIF tags
<li>Added a few new Sony lenses and support for the ILCE-9M3 (thanks Jos Roost)
<li>Added a couple of new Panasonic Leica lenses
<li>Added a couple of new Canon RF lenses (thanks Norbert Wasser)
<li>Added a number of new CPUType values for ELF executables
<li>Added some new Olympus CameraType values
<li>Decode a few more ID3v2.2 tags (github #142)
<li>Decode a few new Canon G5X Mark II tags (thanks Martin B.)
<li>Decode WB_RGGBLevels for a few more Nikon cameras
<li>Extract information from FujiFilm M-RAW header
<li>Improved decoding of a few Nikon Z tags (thanks Warren Hatch)
<li>Marked misspelt XMP-drone-dji:GPSLongtitude tag to Avoid when writing
<li>Changed RIFF MaxDataRate conversion to use SI prefixes by default
<li>Fixed decoding of unknown ColorBalance information for some Nikon models
<li>Fixed an incorrect Nikon Z LensID
<li>API Changes:
<ul>
<li>Added <a href="ExifTool.html#ByteUnit">ByteUnit option</a>
</ul>
</ul>
<a name='v12.69'><b>Oct. 26, 2023 - Version 12.69</b></a>
<ul>
<li>Added support for DNG version 1.7.0.0
<li>Added a new XMP-GCamera tag
<li>Added a number of new Nikon Z lenses (thanks Warren Hatch and Stefan)
<li>Added a number of new XMP-crs tags
<li>Extract XML metadata from some Hasselblad images
<li>Tweaked -fast2 option to read metadata from inside mdat atom of HEIC images
<li>Patched FFF reader to be more tolerant of the mess made by incompetent
Hasselblad programmers (wrong IFD count for some values)
<li>Patched WebP reader to be more tolerant of the mess made by incompetent
Google programmers (EXIF with wrong header and XMP with wrong ID)
<li>Fixed writing of MakerNotes as a block to CR3 images (now properly stored in
the CMT3 chunk instead of the ExifIFD) and added ability to delete them from
the ExifIFD of CR3 images
<li>Fixed problem which could cause runtime error when copying MakerNotes from a
file that contains multiple maker note blocks
<li>Fixed problem which could cause "use of uninitialized variable" warnings
when reading images from some Nikon cameras
<li>Fixed List type for new XMP-photomech:CreatorIdentity tag
</ul>
<a name='v12.68'><b>Oct. 16, 2023 - Version 12.68</b></a>
<ul>
<li>Added preliminary read support for XISF images
<li>Added the ability to delete CAI JUMBF metadata from PNG images
<li>Added support for writing Canon burst-roll CR3 images
<li>Added a new Nikon Z9 SubjectDetection value, and improved Zf support (thanks
Warren Hatch)
<li>Added a couple of new PentaxModelID values
<li>Added a few couple of new tag values for the Pentax K-3 Mark III Monochrome (github #226)
<li>Added a new XMP-photomech tag
<li>Added a new QuickTime ItemList tag
<li>Added a new Olympus CameraType (thanks Herb)
<li>Added a new PentaxModelID (<a href="https://github.com/exiftool/exiftool/issues/322">github #322</a>)
<li>Added a new Nikon LensID
<li>Added a new Canon LensType
<li>Support decimal values for FujiFilm ShadowTone and HighlightTone tags
<li>Decode some new Sony tags (thanks Jos Roost)
<li>Decode ShutterCount for Canon EOS R6 (thanks Martin B.)
<li>Decode QuickTime VideoFullRangeFlag
<li>Decode JPGCompression for the Nikon D3S
<li>Enhanced -geotag feature to allow writing QuickTime:GPSCoordinates
<li>Renamed Panasonic HDRShot tag to MergedImages (<a href='https://exiftool.org/forum/index.php?topic=15298'>forum 15298</a>)
<li>Fixed problem where some NEF files were misidentified as NRW
<li>Improved Duration calculation for some WAV files
<li>Changed a PCAP tag name and fixed typos in a few others (thanks blue-j)
<li>Patched to avoid VignettingCorr warning for images from some Canon cameras
<li>Patched to avoid some unnecessary duplicate tag warnings when -validate used
with HEIC images
<li>Fixed issue with XMP-xmpMM:Pantry items not exhibiting proper List-type
behaviour
</ul>
<a name='v12.67'><b>Sept. 19, 2023 - Version 12.67</b></a>
<a name='v13.25'><b>Mar. 11, 2025 - Version 13.25</b></a> <span class=grn>(production release)</span>
<ul>
<li>Added a new Pentax LensType (thanks dmont)
<li>Added a new FujiFilm FilmMode and FaceElementTypes values (thanks Greybeard)
<li>Fixed error writing new DataMining tag where URI prefix wasn't being
properly added to the value
</ul>
<a name='v12.66'><b>Sept. 19, 2023 - Version 12.66</b></a>
<ul>
<li>Added a few new Canon LensType values (thanks Norbert Wasser)
<li>Added conversions for a few Apple:ImageCaptureType values
<li>Added new XMP tag for PLUS version 2.0.1
<li>Added a new CanonModelID (thanks Laurent Clevy)
<li>Decode another tag from Canon 1DS raw images (Hubert Figui&egrave;re, github #219)
<li>Decode JPGCompression for newer Nikon models (thanks Warren Hatch)
<li>Fixed bug introduced in 12.65 where duplicate tags were not returned even
when the groups where specified explicitly
<li>IMPORTANT: Fixed issue which could corrupt HEIC images from newer iPhones
under certain conditions when writing QuickTime:Rotation
<li>Decode more PLIST information from HEIC images
<li>Updated Geolocation databases from current geonames.org files
<li>Updated DarwinCore for the 2023 specification (thanks Herb)
<li>API Changes:
<ul>
<li>Added <a href="ExifTool.html#WindowsWideFile">WindowsWideFile option</a>
<li>Added <a href="ExifTool.html#KeepUTCTime">KeepUTCTime option</a>
</ul>
</ul>
<a name='v12.65'><b>Aug. 10, 2023 - Version 12.65</b></a>
<a name='v13.24'><b>Mar. 7, 2025 - Version 13.24</b></a>
<ul>
<li>Added a new QuickTime Keys tag
<li>Added a new CanonModelID (thanks Laurent Clevy)
<li>Added a new Canon LensType (thanks Norbert Wasser)
<li>Added number in brackets to converted Samsung MCCData value
<li>Decode a number of new Sony tags (thanks Jos Roost)
<li>Decode a few new FlashPix tags (github #217)
<li>Improved decoding of Nikon Z9 firmware 4.0 tags (thanks Warren Hatch)
<li>Improved parsing of PDF:Keywords to support semicolon-separated lists
<li>Enhanced -api option to show list of available options if no argument is
provided
<li>Lowered priority of IFD1 tags in ARW images so IFD0/SubIFD take precedence
<li>Changed QuickTime tag names for atID (AlbumTitleID to ArtistID) and plID
(PlayListID to AlbumID) (github issue #216), and added cmID (ComposerID)
<li>Changed Apple:MediaGroupUUID tag name back to ContentIdentifier
<li>Patched the -d option to handle the %s format code internally when writing
(avoids problems due to inconsistent behaviour of this format code in the
strptime function on different systems)
<li>Patched patch of version 12.32 to restore ability to read from named pipes
<li>Fixed bug which could cause a hang when processing a corrupt BigTIFF image
<li>Fixed document number for auxiliary image metadata in HEIC files
<li>Fixed misspelt Apple tag name (thanks Neal Krawetz)
<li>Changed -listf, -listr and -listwf options to print descriptions when either
-v or -l is added (previously only -l did this)
<li>Patched to avoid failed PCAP test due to differing time zones (<a href="https://github.com/exiftool/exiftool/issues/319">github #319</a>)
</ul>
<a name='v13.23'><b>Mar. 7, 2025 - Version 13.23</b></a>
<ul>
<li>Added read support for <a href="TagNames/PCAP.html">CAP, PCAP and PCAPNG files</a> (<a href="https://github.com/exiftool/exiftool/issues/318">github #318</a>)
<li>Added a number of new Sony LensType2 values (thanks Jos Roost)
<li>Added the 2 new GPSAltitudeRef values defined by EXIF 3.0
<li>Decode APP4 "Qualcomm Dual Camera Attributes" metadata
<li>EXIF X/YResolution, ResolutionUnit and FlashpixVersion are no longer treated
as mandatory tags (they were changed to optional in the EXIF 3.0 specification)
<li>Patched decoding of Nikon Z8 MenuSettings to accommodate changes in the data
structure as of firmware version 2.1
<li>Patched to avoid bug in Perl v5.26.3 which could cause hang when reading
very large and corrupted XMP
<li>Patched -plot option to avoid bug in Google Chrome SVG marker rendering
<li>API Changes:
<ul>
<li>Added <a href="ExifTool.html#AvailableOptions">AvailableOptions method</a>
<li>Fixed documentation for <a href="ExifTool.html#LargeFileSupport">LargeFileSupport option</a> to reflect current
default
</ul>
</ul>
<a name='v12.64'><b>June 28, 2023 - Version 12.64</b></a>
<a name='v13.22'><b>Mar. 1, 2025 - Version 13.22</b></a>
<ul>
<li>Added a new Sony LensType (thanks Jos Roost)
<li>Added config_files/guano.config to the distribution (thanks StarGeek)
<li>Added support for Garmin Low-resolution Video (GLV) files
<li>Added JUMBF to the list of deletable groups
<li>Added (untested) read support for spherical video tags in Matroska videos
<li>Decode a number of new Nikon Z9 tags (thanks Warren Hatch)
<li>Decode AmbisonicAudio tags in spherical MP4 vidoes
<li>Decode another Apple tag
<li>Improved French translations (thanks Philippe Bonnaure of GraphicConverter)
<li>Patched to allow writing QuickTime-based videos where the audio/video sample
description comes after the sample pointers
<li>Fixed parsing of GPS from Insta360 videos to properly skip void fixes
<li>Fixed problem where Apple iPhone 14 images produced invalid XML in -X output
when using -struct option
<li>Improvements and additions to the new <a href="plot.html">plot feature</a>
<li>Decode a few more DJI timed metadata tags
<li>Extract GainMapImage from PNG images
<li>Reverted WebP FileType change of version 13.20
<li>Set $^W in the exiftool application to re-enable global warnings (they have
been disabled since version 12.92 due to the shebang change)
<li>Fixed possible incorrect IFD number in "No size tag" warning
<li>Fixed "File is empty" error when using -plot with -w to write the output
file into the same directory as the input files
</ul>
<a name='v13.21'><b>Feb. 20, 2025 - Version 13.21</b></a>
<ul>
<li>Patched issue that could result in runtime warning for some video files
<li>Fixed a bug with the new <a href="plot.html">-plot option</a> that could generate a compiler error
</ul>
<a name='v13.20'><b>Feb. 20, 2025 - Version 13.20</b> - "SVG Plot"</a>
<ul>
<li>Added new <a href="plot.html">-plot option</a> for generating SVG-format plots from tag values
<li>Added a new Olympus CameraType
<li>Added a new Nikon Z LensID (thanks Warren Hatch)
<li>Overhauled decoding of Nikon AF tags (thanks Warren Hatch)
<li>Decode timed GPS from yet another model dashcam
<li>Decode more information from AAE files
<li>Decode more tags from DJI videos
<li>Updated Windows launcher (thanks Oliver Betz)
<li>Enhanced -w option to be available for use with the -csv output
<li>Attempted to patch a problem writing some PDF files
<li>Fail if a required module is missing when attempting to write a formatted
date/time value instead of falling back to write as unformatted
<li>Minor change to WebP lossless FileType text
<li>API Changes:
<ul>
<li>Added <a href="ExifTool.html#StructFormat">StructFormat option</a> to allow JSON-format serialized structures
<li>Added <a href="ExifTool.html#NoDups">NoDups option</a> to eliminate duplicate items from queued values when
writing List-type tags
<li>Added <a href="ExifTool.html#Plot">Plot</a> option
</ul>
</ul>
<a name='v12.63'><b>June 8, 2023 - Version 12.63</b></a>
<a name='v13.19'><b>Feb. 10, 2025 - Version 13.19</b></a>
<ul>
<li>Added ability to read/write/create Brotli-compressed metadata in JXL images
(requires IO::Compress::Brotli)
<li>Added partial support for Exif 3.0 specification:
<li>Added read/write support for PDF and XMP-pdfx SourceModified
<li>Decode GPS from two more DJI protobuf formats (Matrice 30 and Mini 4 Pro)
<li>Decode timed GPS from Rexing V1-4k dashcam
<li>Decode more information from AAE files
<li>Made a new icon for the Windows EXE application
<li>Improved handling of ICC_Profile in HEIC images:
<ul>
<li>Added new EXIF tags
<li>Added MPF Original Preservation Image type
<li>Support for reading 'utf8' values (but still write only as 'string')
<li>Profiles for sub-images are extracted as sub-documents
<li>Allow only the profile of the main image to be written
</ul>
<li>Added support for Adobe <a href="TagNames/XMP.html#hdrgm">XMP-hdrgm (HDR Gain Map) tags</a>
<li>Added support for reading 7z files (thanks Amir Gooran, github #205) (but
currently this doesn't work for the Windows .exe version because I haven't
been able to install Compress::Raw::Lzma for ActivePerl)
<li>Added <a href="TagNames/XMP.html#panorama">XMP-panorama tags</a>
<li>Added warning if -csv is used with -p
<li>Added warning if trying to geotag from a UTF-16 track log
<li>Decode ImageWidth/Height from JXL images using partial codestreams
<li>Decode more Sony tags for some newer models (thanks Jos Roost)
<li>Extract GainMapImage (hrgm box) from JXL files
<li>Extract Guano information from WAV files
<li>Enhanced ImageDataMD5 feature and renamed to ImageDataHash (with
ImageDataMD5 alias for backward compatibility)
<li>Changed RARVersion tag name to FileVersion
<li>Fixed bug introduced in 12.46 which could cause a hang when reading a
corrupted RIFF-based file
<li>Fixed writing of Composition:GPSPosition when -n is used
<li>Changed family 3 groups for ICO files so the first icon is in the Doc1
instead of the Main group
<li>Updated Sony decoding for ILCE-1M2 (thanks Jos Roost)
</ul>
<a name='v13.18'><b>Feb. 3, 2025 - Version 13.18</b></a>
<ul>
<li>Decode a number of new GoPro tags
<li>Enhanced -geotag option to set Geotime from either SubSecDateTimeOriginal
(preferentially) or DateTimeOriginal if not otherwise specified
<li>Don't allow ICC_Profile to be deleted from QuickTime-based files
(specifically HEIC, to avoid problem where Apple Preview wouldn't display the
resulting file)
<li>Improved decoding of AF points for Nikon D3400 and D7500
<li>Patched issue introduced in 13.13 which could give a "No data reference"
error when writing MP4 videos from some Google phones
<li>Fixed problem writing XMP-iptcExt:LocationCreatedGPSAltitudeRef with an
incorrect namespace
</ul>
<a name='v13.17'><b>Jan. 29, 2025 - Version 13.17</b></a>
<ul>
<li>Added support for reading more embedded images and videos written in the
JPEG trailer by some phones
<li>Added support for reading JPEG trailer written by some OnePlus phones
<li>Added a -validate warning for QuickTime 'wide' atoms with an invalid size
<li>Added a new CanonLensType
<li>Avoid decoding Sony 0x9050 data for the ILCE-1M2 because the encoding has
changed since the ILCE-1 and the new encoding is not yet known (<a href="https://github.com/exiftool/exiftool/issues/310">github #310</a>)
<li>Fixed issue that could cause runtime warning when using -j with -b
<li>Fixed some issues decoding AFPointsUsed for some newer Nikon models
<li>Fixed problem corrupting QuickTime-format videos when writing if they
contain a 'wide' atom with an invalid size
</ul>
<a name='v13.16'><b>Jan. 25, 2025 - Version 13.16</b></a>
<ul>
<li>Added a couple of new Nikon Z lenses (thanks Warren Hatch)
<li>Added a new Canon RFLensType (thanks Norbert Wasser)
<li>Added support for a MIE trailer on QuickTime-format files
<li>Added a number of new EXE MachineType values (<a href="https://github.com/exiftool/exiftool/issues/309">github #309</a>)
<li>Made "iTunes" a deletable group
<li>Updated decoding of many Nikon tags for the Z9 firmware version 5.1 (thanks
Warren Hatch)
<li>Fixed issue where -diff option would miss showing 1 tag from a group that
exists in the difference file but not in the source file
<li>Fixed issue where tag exclusions for alternate files weren't honoured in a
-p formatting expression when using "$file#:all:all" in the expression and
the -file#, -x, and -p options all together
<li>Fixed FileTypeDescription for lossless extended WebP images
</ul>
<a name='v13.15'><b>Jan. 23, 2025 - Version 13.15</b></a>
<ul>
<li>Added a few new Panasonic AFSubjectDetection values (thanks Andrew J)
<li>Added " (lossless)" to FileType for lossless WebP images
<li>Avoid treating the QuickTime 'eng' language code as the default 'und' unless
the country code is also the default
<li>Fixed issue where writing metadata to a non-extended lossless WebP image
with an alpha channel could mess up rendering of the transparency
<li>Fixed problem decoding ID3 WXXX frames (<a href="https://github.com/exiftool/exiftool/issues/307">github #307</a>)
</ul>
<a name='v13.14'><b>Jan. 20, 2025 - Version 13.14</b></a>
<ul>
<li>Changed so that deleting QuickTime ItemList group no longer deletes Keys
<li>Fixed bug where new ItemList tags weren't created when also creating new
AudioKeys or VideoKeys tags in the same command if neither tag group
pre-existed in the file
</ul>
<a name='v13.13'><b>Jan. 20, 2025 - Version 13.13</b></a>
<ul>
<li>Added ability to write tags to the audio/video tracks of MOV/MP4 videos
using the new <a href="TagNames/QuickTime.html#AudioKeys">AudioKeys</a> and <a href="TagNames/QuickTime.html#VideoKeys">VideoKeys</a> group names
<li>Decode GPS from another DJI protobuf format (Mavic 3)
<li>Decode yet another type of LIGOGPSINFO timed GPS from a dashcam video
<li>Extract some proprietary information from JPEG images of Vivo phones
<li>Enhanced Geolocation feature to allow the nearest cities to a specified city
to be returned
<li>Updated xmp2exif.args and exif2xmp.args to properly handle time zones in
XMP-exif date/time tags
<li>Changed family 1 group names for Keys, ItemList and UserData tags in a track
<li>Patched <a href="https://github.com/exiftool/exiftool/issues/306">github #306</a> issue where a torrent file would return a format error
when reading if it didn't contain an "announce" or "created by" entry
<li>Fixed "uninitialized value" runtime warning when reading some EXE files
<li>Fixed -diff output to add colon missing from some lines when used with -g
</ul>
<a name='v13.12'><b>Jan. 13, 2025 - Version 13.12</b></a>
<ul>
<li>Added a few new Panasonic AFAreaMode values (thanks Andrew J)
<li>Added a couple of new Canon RFLensType values (thanks Norbert Wasser)
<li>Added a -validate warning for duplicate IPTC tags
<li>Decode AF points for some newer Nikon models (thanks Warren Hatch)
<li>Decode a new Panasonic tag (thanks Andrew J)
<li>Decode a couple of previously unknown tags from LIGOGPSINFO records
<li>Extract some PDB information if available from Win32 EXE files (<a href="https://github.com/exiftool/exiftool/issues/303">github #303</a>)
<li>Improved handling of duplicate tags in -diff output
<li>Improved handling of QuickTime zero date/time values
<li>Enchanced -csv= and -json= options to allow group names and wildcards to be
used when specifying which tags to import
<li>Updated some EXIF:Compression values (<a href="https://github.com/exiftool/exiftool/issues/304">github #304</a>)
<li>Changed wording of warning when file time couldn't be updated
<li>Fixed bug introduced in 13.11 reading EXIF from some EXV files
<li>Fixed bug introduced in 12.99 where empty entries in a CSV file weren't
ignored as they should be when importing with -csv=
<li>Fixed problem where MWG module wasn't loaded automatically when specifying
Composite:MWG:TAG instead of MWG:TAG
<li>Fixed bug where -diff option was inconsistent in its treatment of List
values when used with the -sep option
</ul>
<a name='v13.11'><b>Jan. 1, 2025 - Version 13.11</b></a>
<ul>
<li>Added warning for an unknown DJI protobuf schema
<li>Decode timed GPS from DJI Osmo Action 5 videos
<li>Decode yet another type of LIGOGPSINFO timed GPS from a dashcam video
<li>Made Matroska Keywords and Instruments List-type tags
<li>Fixed problem were EXIF couldn't be added to some AVIF files
<li>API Changes:
<ul>
<li>Added <a href="ExifTool.html#ImageHashType">ImageHashType option</a>
<li>Added <a href="ExifTool.html#GPSQuadrant">GPSQuadrant</a> option
</ul>
</ul>
<a name='v12.62'><b>May 3, 2023 - Version 12.62</b></a>
<a name='v13.10'><b>Dec. 20, 2024 - Version 13.10</b></a> <span class=grn>(production release)</span>
<ul>
<li>Added basic read support for WPG images
<li>Added ImageDataMD5 support for HEIC images
<li>Added support for RAR version 5.0 files (thanks Amir Gooran, github #203)
<li>Added a few new XMP-aux tags (thanks John Ellis)
<li>Made Composite tags available for use in -fileNUM argument
<li>Better handling of FlashPix VT_EMPTY value
<li>Fixed "Can't write" error when specifying a .webp file for the -o option
<li>API Changes:
<ul>
<li>Added <a href="ExifTool.html#NoWarning">NoWarning option</a>
</ul>
</ul>
<a name='v12.61'><b>Apr. 24, 2023 - Version 12.61</b></a>
<ul>
<li>Added ImageDataMD5 support for J2C and JXL images
<li>Added support for PDF 2.0 (specification is finally freely available)
<li>Added ability to extract timed Accelerometer data from Azdome GS63H MP4
videos which don't contain GPS
<li>Added some new Sony lenses (thanks Jos Roost)
<li>Decode some new tags for the Sony ZV-E1 (thanks Jos Roost)
<li>Decode more tags for the Nikon Z30 (thanks Xavier)
<li>Enhanced -fileNUM option to allow tags from the main file to be used in the
file name string
<li>Validate sample offset and size when calculating ImageDataMD5 for MP4 videos
(note: may change ImageDataMD5 value for videos where audio data runs past
end of media data)
<li>Return error when attempting to write a fragmented JXL file
<li>Improved robustness for determining image size for corrupted JPEG
<li>Patched to allow Insta360 GPS records of unexpected length and tweaked
verification algorithm to determine validity of these records
<li>Fixed bug introduced in 12.57 where -progress:%f gave runtime warnings
<li>Fixed "--" option to ignore subsequent -common_args option
<li>Fixed incorrect ImageDataMD5 for Sony A100 ARW images
<li>Fixed problem reading new XMP-et:OriginalImageMD5 tag
</ul>
<a name='v12.60'><b>Apr. 5, 2023 - Version 12.60</b></a> <span class=grn>(production release)</span>
<ul>
<li>Added a new Sony FileFormat value
<li>Added Validate warning about duplicate EXIF
<li>Added ability to edit JPEG APP1 EXIF segment with incorrect header
<li>Decode a few new Sony ARW tags
<li>Improved -htmldump of non-EXIF-based maker notes
<li>Enhanced -geotag from CSV files support GPSSpeed (with variable units),
"bearing" for GPSTrack, and GPSDateTime in format "dd.mm.YYYY HH:MM:SS"
<li>Enhanced ImageDataMD5 to also support CRW, RAF, X3F and AVIF images
<li>Enhanced -efile option to also record updated and created file names
<li>Family 8 group names may now also be used in Composite Require/Desire tags
<li>Fixed handling of undefined tags in -if conditions to conform with
documentation and match -p and -tagsFromFile behaviour when -m or -f option
is used
<li>Fixed problem where setting the Geotime value didn't work when using an
advanced-formatting expression containing a greater-than symbol (&gt;)
<li>Added warnings for out-of-order entries in 'iinf' and 'ipma' boxes of HEIC
images
<li>Added support for date/time formatting codes %f and %z in the inverse
print conversion when writing tags
<li>Updated Geolocation databases from current geonames.org files
<li>Improved verbose output to show values stored with construction method 1 in
MP4-based files
<li>Enhanced the date/time timezone format specifier %z so that %:z returns the
time zone with a colon separator (eg. "-05:00")
<li>Fixed bug where the existing tag wasn't being removed when writing a new
value for an Unknown QuickTime UserData or ItemList tag
</ul>
<a name='ancient' href="ancient_history.html"><b>History of older versions</b> (back to Nov. 19, 2003 - Version 1.00) --&gt;</a><br><br>

View File

@ -641,7 +641,7 @@ DDDDDDDDDDDDDD</a><a name=t84 class=U>..
<a name=t60 class=W>MakerNotes-08 SlowSync</a>
<a name=t61 class=Y>MakerNotes-09 PictureMode</a>
<a name=t62 class=W>MakerNotes-10 AutoBracketing</a>
<a name=t63 class=Y>MakerNotes-11 Tag 0x1200</a>
<a name=t63 class=Y>MakerNotes-11 FujiFilm_0x1200</a>
<a name=t64 class=W>MakerNotes-12 BlurWarning</a>
<a name=t65 class=Y>MakerNotes-13 FocusWarning</a>
<a name=t66 class=W>MakerNotes-14 ExposureWarning</a>
@ -696,7 +696,7 @@ DDDDDDDDDDDDDD</a><a name=t84 class=U>..
<div id=p12 class=tt><b>IFD0-07 <span class=H>ModifyDate</span></b><br>Tag ID: 0x0132<br>Format: string[20]<br>Size: 20 bytes<br>Value offset: 0x00e4<br>File offset: 0x00f0<br>Value: 2001:05:19 18:36:41</div>
<div id=p13 class=tt><b>IFD0-08 YCbCrPositioning</b><br>Tag ID: 0x0213<br>Format: int16u[1]<br>Size: 2 bytes<br>Value: 2</div>
<div id=p14 class=tt><b>IFD0-09 <span class=H>Copyright</span></b><br>Tag ID: 0x8298<br>Format: string[11] read as undef[11]<br>Size: 11 bytes<br>Value offset: 0x00f8<br>File offset: 0x0104<br>Value: .</div>
<div id=p15 class=tt><b>IFD0-10 ExifOffset</b><br>Tag ID: 0x8769<br>Format: int32u[1]<br>Size: 4 bytes<br>Value: 0x0104</div>
<div id=p15 class=tt><b>IFD0-10 ExifOffset</b><br>Tag ID: 0x8769<br>Format: int32u[1]<br>Size: 4 bytes<br>File offset: 0x0110<br>Value: 0x0104</div>
<div id=p16 class=tt><b>Next IFD</b><br>IFD1 offset: 0x03c6<br>(4 bytes)</div>
<div id=p20 class=tt><b>ExifIFD entries</b><br>Entry count: 28<br>(2 bytes)</div>
<div id=p21 class=tt><b>ExifIFD-00 <span class=H>FNumber</span></b><br>Tag ID: 0x829d<br>Format: rational64u[1]<br>Size: 8 bytes<br>Value offset: 0x025a<br>File offset: 0x0266<br>Value: 3.5 (350/100)</div>
@ -720,7 +720,7 @@ DDDDDDDDDDDDDD</a><a name=t84 class=U>..
<div id=p39 class=tt><b>ExifIFD-18 ColorSpace</b><br>Tag ID: 0xa001<br>Format: int16u[1]<br>Size: 2 bytes<br>Value: 0x1</div>
<div id=p40 class=tt><b>ExifIFD-19 ExifImageWidth</b><br>Tag ID: 0xa002<br>Format: int32u[1]<br>Size: 4 bytes<br>Value: 1600</div>
<div id=p41 class=tt><b>ExifIFD-20 ExifImageHeight</b><br>Tag ID: 0xa003<br>Format: int32u[1]<br>Size: 4 bytes<br>Value: 1200</div>
<div id=p42 class=tt><b>ExifIFD-21 InteropOffset</b><br>Tag ID: 0xa005<br>Format: int32u[1]<br>Size: 4 bytes<br>Value: 0x03a8</div>
<div id=p42 class=tt><b>ExifIFD-21 InteropOffset</b><br>Tag ID: 0xa005<br>Format: int32u[1]<br>Size: 4 bytes<br>File offset: 0x03b4<br>Value: 0x03a8</div>
<div id=p43 class=tt><b>ExifIFD-22 <span class=H>FocalPlaneXResolution</span></b><br>Tag ID: 0xa20e<br>Format: rational64u[1]<br>Size: 8 bytes<br>Value offset: 0x0398<br>File offset: 0x03a4<br>Value: 3053 (3053/1)</div>
<div id=p44 class=tt><b>ExifIFD-23 <span class=H>FocalPlaneYResolution</span></b><br>Tag ID: 0xa20f<br>Format: rational64u[1]<br>Size: 8 bytes<br>Value offset: 0x03a0<br>File offset: 0x03ac<br>Value: 3053 (3053/1)</div>
<div id=p45 class=tt><b>ExifIFD-24 FocalPlaneResolutionUnit</b><br>Tag ID: 0xa210<br>Format: int16u[1]<br>Size: 2 bytes<br>Value: 3</div>
@ -741,7 +741,7 @@ DDDDDDDDDDDDDD</a><a name=t84 class=U>..
<div id=p60 class=tt><b>MakerNotes-08 SlowSync</b><br>Tag ID: 0x1030<br>Format: int16u[1]<br>Size: 2 bytes<br>Value: 0</div>
<div id=p61 class=tt><b>MakerNotes-09 PictureMode</b><br>Tag ID: 0x1031<br>Format: int16u[1]<br>Size: 2 bytes<br>Value: 0x0</div>
<div id=p62 class=tt><b>MakerNotes-10 AutoBracketing</b><br>Tag ID: 0x1100<br>Format: int16u[1]<br>Size: 2 bytes<br>Value: 0</div>
<div id=p63 class=tt><b>MakerNotes-11 Tag 0x1200</b><br>Tag ID: 0x1200<br>Format: int16u[1]<br>Size: 2 bytes<br>Value: 0</div>
<div id=p63 class=tt><b>MakerNotes-11 FujiFilm_0x1200</b><br>Tag ID: 0x1200<br>Format: int16u[1]<br>Size: 2 bytes<br>Value: 0</div>
<div id=p64 class=tt><b>MakerNotes-12 BlurWarning</b><br>Tag ID: 0x1300<br>Format: int16u[1]<br>Size: 2 bytes<br>Value: 0</div>
<div id=p65 class=tt><b>MakerNotes-13 FocusWarning</b><br>Tag ID: 0x1301<br>Format: int16u[1]<br>Size: 2 bytes<br>Value: 0</div>
<div id=p66 class=tt><b>MakerNotes-14 ExposureWarning</b><br>Tag ID: 0x1302<br>Format: int16u[1]<br>Size: 2 bytes<br>Value: 0</div>
@ -756,7 +756,7 @@ DDDDDDDDDDDDDD</a><a name=t84 class=U>..
<div id=p75 class=tt><b>IFD1-02 <span class=H>XResolution</span></b><br>Tag ID: 0x011a<br>Format: rational64u[1]<br>Size: 8 bytes<br>Value offset: 0x042c<br>File offset: 0x0438<br>Value: 72 (72/1)</div>
<div id=p76 class=tt><b>IFD1-03 <span class=H>YResolution</span></b><br>Tag ID: 0x011b<br>Format: rational64u[1]<br>Size: 8 bytes<br>Value offset: 0x0434<br>File offset: 0x0440<br>Value: 72 (72/1)</div>
<div id=p77 class=tt><b>IFD1-04 ResolutionUnit</b><br>Tag ID: 0x0128<br>Format: int16u[1]<br>Size: 2 bytes<br>Value: 2</div>
<div id=p78 class=tt><b>IFD1-05 ThumbnailOffset</b><br>Tag ID: 0x0201<br>Format: int32u[1]<br>Size: 4 bytes<br>Value: 0x043c</div>
<div id=p78 class=tt><b>IFD1-05 ThumbnailOffset</b><br>Tag ID: 0x0201<br>Format: int32u[1]<br>Size: 4 bytes<br>File offset: 0x0448<br>Value: 0x043c</div>
<div id=p79 class=tt><b>IFD1-06 ThumbnailLength</b><br>Tag ID: 0x0202<br>Format: int32u[1]<br>Size: 4 bytes<br>Value: 28</div>
<div id=p80 class=tt><b>IFD1-07 YCbCrPositioning</b><br>Tag ID: 0x0213<br>Format: int16u[1]<br>Size: 2 bytes<br>Value: 2</div>
<div id=p81 class=tt><b>Next IFD</b><br>IFD2 offset: 0x0000<br>(4 bytes)</div>

View File

@ -11,11 +11,14 @@
preview, geotag, geocode, Perl, library, module, RAW, NEF, CR2, MRW, JPEG, TIFF,
ID3, Windows, OSX, Unix">
<link rel=stylesheet type='text/css' href='style.css' title='Style'>
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" href="/favicon.ico" sizes="48x48" >
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon.png">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#b6ad56">
<meta name="apple-mobile-web-app-title" content="ExifTool">
<meta name="msapplication-TileColor" content="#ffc40d">
<meta name="theme-color" content="#ffffff">
<style type="text/css">
@ -48,17 +51,22 @@ table.sticky td:first-child { border-left: 1px solid gray}
table.sticky td.nb { border-bottom: 0px }
span.sup { font-size: 0.8em; font-weight: normal; position: relative; top: -.4em }
i.orng { color: #c60 }
img { float: left }
-->
</style>
</head>
<body>
<h1><a name="top">ExifTool by Phil Harvey</a></h1>
<img src="ET-256.png" width="128" height="128" alt="ET"><h1><a name="top">ExifTool by Phil Harvey</a></h1>
<h2 class='tight red'><b>Read</b>, <b>Write</b> and <b>Edit</b> Meta Information!</h2>
<p><b>Also available</b> --> <a href="https://exiftool.org/fix_corrupted_nef.html">Utility to fix Nikon NEF images corrupted by Nikon software</a></p>
<!--<p><i class=orng><b>Note:</b> If exiftool.org goes down, it is because of the crappy DreamHost
web hosting which disables an "unlimited traffic" web site if a single bot hammers
the site with a moderate load. An alternate ExifTool homepage is available at
<a href="http://exiftool.sourceforge.net/">http://exiftool.sourceforge.net/</a></i></p> -->
<p><i class=orng><b>Note:</b> IP's that agressively download multiple copies of
the distribution files or access web pages too quickly will be blocked.</i></p>
<div class=wide><table class=links><tr>
<th><a href="install.html" class=wt>&nbsp;Installing&nbsp;</a></th>
<th><a href="TagNames/index.html" class=wt>&nbsp;Tag&nbsp;Names&nbsp;</a></th>
@ -94,9 +102,9 @@ the site with a moderate load. An alternate ExifTool homepage is available at
</div>
<blockquote><table class='dl lg'><tr><td><b>
<a href="Image-ExifTool-12.76.tar.gz">
Download Version 12.76</a> (5.1 MB) -
<a href="history.html">Jan. 31, 2024</a></b></td></tr></table></blockquote>
<a href="Image-ExifTool-13.30.tar.gz">
Download Version 13.30</a> (7.4 MB) -
<a href="history.html">May 22, 2025</a></b></td></tr></table></blockquote>
<p><b>ExifTool is a platform-independent <a href="ExifTool.html">Perl
library</a> plus a <a href="exiftool_pod.html">command-line application</a> for
@ -142,33 +150,36 @@ as well as the maker notes of many digital cameras by
<a href="TagNames/Sigma.html">Sigma/Foveon</a> and
<a href="TagNames/Sony.html">Sony</a>.</p>
<p>ExifTool is also available as a <b>stand-alone Windows executable</b> and a
<p>ExifTool is also available as a <b>Windows executable</b> and a
<b>MacOS package</b>: <i>(Note that these versions contain the executable
only, and do not include the HTML documentation or other files of the full
distribution above.)</i></p>
<blockquote><table class='dl lg'><tr><td><b>
<a name="alone">Windows Executable:</a>
<a href="exiftool-12.76.zip">
exiftool-12.76.zip</a> (7.0 MB)</b></td></tr></table></blockquote>
<blockquote><table class='dl lg'><tr><td rowspan=2><b><a name="alone">Windows</a></b></td><td><b>
32-bit: <a href="exiftool-13.30_32.zip">
exiftool-13.30_32.zip</a> (11.0 MB)</b></td></tr>
<tr><td><b>64-bit:
<a href="exiftool-13.30_64.zip">
exiftool-13.30_64.zip</a> (10.8 MB)</b></td></tr>
</table></blockquote>
<p><b>The stand-alone Windows executable</b> does not require Perl. Just
download and un-zip the archive then double-click on
"<code>exiftool(-k).exe</code>" to read the application documentation,
drag-and-drop files and folders to view meta information, or rename to
"<code>exiftool.exe</code>" for command-line use. Runs on all versions
of Windows.</p>
<p><b>The Windows executable</b> archives include Perl. Just download and un-zip
the appropriate archive then double-click on "<code>exiftool(-k).exe</code>" to read the
application documentation, drag-and-drop files and folders to view meta
information, or rename to "<code>exiftool.exe</code>" for command-line use.
Note that if you move the .exe to another folder, you <b>must also move
the "<code>exiftool_files</code>" folder</b> to the same location.</p>
<p><i>(Note: Oliver Betz provides an
<a href="https://oliverbetz.de/pages/Artikel/ExifTool-for-Windows">alternate ExifTool Windows installer</a>
that avoids some problems of the self-extracting archive version above. Please post
<a href="https://exiftool.org/forum/index.php/topic,10128.0.html">here</a>
if you have any problems/comments with this version.)</i></p>
<p><i>(The Windows packages are based on work by Oliver Betz, and use his
launcher. <a href="https://oliverbetz.de/pages/Artikel/ExifTool-for-Windows">Oliver
also provides self-installing versions of these executables</a>.
See <a href="https://exiftool.org/forum/index.php/topic,10128.0.html">this forum post</a>
if you have any problems/comments with these versions.)</i></p>
<blockquote><table class='dl lg'><tr><td><b>
MacOS Package:
<a href="ExifTool-12.76.dmg">
ExifTool-12.76.dmg</a> (3.3 MB)</b></td></tr></table></blockquote>
<a href="ExifTool-13.30.pkg">
ExifTool-13.30.pkg</a> (5.3 MB)</b></td></tr></table></blockquote>
<p><b>The MacOS package</b> installs the ExifTool command-line application and
libraries in /usr/local/bin. After installing, type "<code>exiftool</code>" in a
@ -179,9 +190,12 @@ installing ExifTool on Windows, MacOS and Unix systems.</p>
<ul>
<li><a href="checksums.txt">Click here
for the SHA1 and MD5 checksums to verify these distribution packages</a>.</li>
for the SHA256 (recommended), SHA1 and MD5 checksums to verify these
distribution packages</a>.</li>
<li>The version number of the latest ExifTool release may be found
<a href="ver.txt">here</a>.</li>
<a href="ver.txt">here</a>, and the name of the most recent
<a href="geolocation.html#Alt">alternate geolocation database</a>
is <a href="geo.txt">here</a>.</li>
</ul>
<h2><a name="features">Features</a></h2>
@ -212,10 +226,14 @@ for the SHA1 and MD5 checksums to verify these distribution packages</a>.</li>
<a href="TagNames/AFCP.html">AFCP</a> and more...</li>
<li>Reads and writes maker notes of many digital cameras</li>
<li>Reads <a href="TagNames/QuickTime.html#Stream">timed metadata</a> (eg. GPS track) from MOV/MP4/M2TS/AVI videos</li>
<li>Reads <a href="TagNames/GM.html">GM PDR data</a> from videos written by cars such as Corvette and Camero</li>
<li>Numerous output formatting options (including tab-delimited, HTML, XML and JSON)</li>
<li>Multi-lingual output (cs, de, en, en-ca, en-gb, es, fi, fr, it, ja, ko, nl, pl, ru, sk, sv, tr, zh-cn or zh-tw)</li>
<li><a href="#diff">Compares two files for metadata differences</a></li>
<li>Generates <a href="plot.html">SVG-format output plots</a> from file metadata</li>
<li><a href="geotag.html">Geotags images</a> from GPS track log files (with time drift correction!)</li>
<li><a href="geotag.html#Reverse">Generates track logs</a> from geotagged images</li>
<li><a href="geolocation.html">Geolocation feature</a> identifies nearest city based on GPS position (and visa versa)</li>
<li><a href="#shift">Shifts date/time values</a> to fix timestamps in images</li>
<li><a href="#filename">Renames files and organizes in directories</a> (by date
or by any other meta information)</li>
@ -241,10 +259,9 @@ for the SHA1 and MD5 checksums to verify these distribution packages</a>.</li>
and combined between files</li>
<li>Generates MD5/SHA256/SHA512 hashes of image data only for many file types (for comparison and validation
of image data)</li>
<li>Recognizes <a href="TagNames/index.html">thousands of different tags</a></li>
<li>Recognizes <a href="TagNames/index.html">tens of thousands of different tags</a></li>
<li>Tested with images from <a href="https://exiftool.org/models.html">thousands of different camera models</a></li>
<li>Advanced <a href="verbose.html">verbose</a> and <a href="htmldump.html">HTML-based
hex dump</a> outputs</li>
<li>Advanced <a href="verbose.html">verbose</a> and <a href="htmldump.html">HTML-based hex dump</a> outputs</li>
</ul>
<h2><a name="awk">A Note to Unix Power-Users</a></h2> <blockquote>If you feel
@ -255,14 +272,16 @@ haven't discovered the full power of ExifTool. Read about the <code>-ext</code>
<a href="mistakes.html#M3">common mistake number 3</a>.)</blockquote>
<h2><a name="comments">What People are Saying about ExifTool</a></h2>
<blockquote>
<i>"In my experience, nothing but nothing is as complete, powerful, and flexible as
<blockquote><i>"It's the gold standard in terms of the image metadata it can access"</i> -
<a href="https://darkroomphotos.com/lightroom-alternatives/">Darkroom Photos</a>
</blockquote>
<blockquote><i>"In my experience, nothing but nothing is as complete, powerful, and flexible as
Phil Harvey's exiftool ... I've never seen anything that's in the same ballpark for power."</i>
- <a href="https://web.archive.org/web/20230119015630/https://www.dpreview.com/forums/post/16582684">dpreview forum</a></blockquote>
<blockquote><i>"While there are a lot of image tools available, nothing comes close for accessing/updating
the metadata like ExifTool"</i> - <a href="http://web.archive.org/web/20080307105031/http://blog.merg.be/?p=242">merg's blog</a></blockquote>
<blockquote><i>"Fast, reliable and amazingly comprehensive ..."</i>
- <a href="http://cpanratings.perl.org/dist/Image-ExifTool">CPAN ratings</a></blockquote>
- <a href="http://web.archive.org/web/20120111033005/http://cpanratings.perl.org/dist/Image-ExifTool">CPAN ratings</a></blockquote>
<blockquote><i>"... the one piece of free software that gets the most
detailed exif data of /any/ tool I've found."</i>
- <a href="http://mail.gnome.org/archives/eog-list/2005-August/msg00002.html">gnome mail archives</a>
@ -285,6 +304,11 @@ iterations to continually optimize our platform..."</i>
development it's still being updated!"</i> -
<a href="http://pw999.wordpress.com/2012/05/12/j-exiftool-read-and-write-exif-tags-in-java/">P_W999 blog</a>
</blockquote>
<blockquote><i>"ExifTool was the first and is (imho) by far the most complete,
safe, well-tested, well-documented, and up-to-date software you can use to
manipulate metadata"</i> -
<a href="https://ninedegreesbelow.com/photography/exiftool-commands.html">Nine Degrees Below Photography</a>
</blockquote>
<blockquote><i>"... it is the mother of all EXIF utilities; the BFG of meta-data
extraction; the Pan Galactic Gargle Blaster of EXIF tools ... This thing will
suck the last bit of metadata out of whatever image file you throw at it!"</i> -
@ -323,6 +347,7 @@ metadata types for each file format. C2PA metadata is not currently <b>W</b>rit
<tr><td><a href="TagNames/BMP.html">BMP, DIB</a></td><td>R</td><td>Windows BitMaP / Device Independent Bitmap</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/BMP.html">BMP</a></td></tr>
<tr><td><a href="TagNames/BPG.html">BPG</a></td><td>R</td><td>Better Portable Graphics</td><td>R</td><td>-</td><td>R</td><td>R</td><td>-</td><td>R <a href="TagNames/BPG.html">BPG</a></td></tr>
<tr><td><a href="TagNames/EXIF.html">BTF</a></td><td>R</td><td>BigTIFF (64-bit Tagged Image File Format)</td><td>R</td><td>R</td><td>R</td><td>R</td><td>R</td><td>-</td></tr>
<tr><td><a href="TagNames/PCAP.html">CAP</a></td><td>R</td><td>Microsoft Network Monitor Capture</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/PCAP.html">PCAP</a></td></tr>
<tr><td>C2PA, JUMBF</td><td>R</td><td>C2PA JPEG Universal Metadata Box Format</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R</td><td>R <a href="TagNames/Jpeg2000.html">Jpeg2000</a></td></tr>
<tr><td><a href="TagNames/EXE.html#CHM">CHM</a></td><td>R</td><td>Microsoft Compiled HTML format</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/EXE.html#CHM">EXE</a></td></tr>
<tr><td>COS</td><td>R</td><td>Capture One Settings (XML-based)</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R XML</td></tr>
@ -356,7 +381,7 @@ metadata types for each file format. C2PA metadata is not currently <b>W</b>rit
<tr><td>ERF</td><td>R/W</td><td>Epson RAW Format (<a href="TagNames/EXIF.html">TIFF</a>-based)</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/D</td><td>R/W <a href="TagNames/Olympus.html">Olympus</a></td></tr>
<tr><td><a href="TagNames/EXE.html">EXE, DLL</a></td><td>R</td><td>DOS/Windows executable and library files</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/EXE.html">EXE</a></td></tr>
<tr><td><a href="TagNames/EXIF.html">EXIF</a></td><td>R/W/C</td><td>Exchangeable Image File Format metadata (<a href="TagNames/EXIF.html">TIFF</a>-based)</td><td>R/W/C</td><td>-</td><td>-</td><td>-</td><td>R/D</td><td>-</td></tr>
<tr><td><a href="TagNames/OpenEXR.html">EXR</a></td><td>R</td><td>Open EXR (Extended Range)</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/OpenEXR.html">OpenEXR</a></td></tr>
<tr><td><a href="TagNames/OpenEXR.html">EXR</a></td><td>R</td><td>Open EXR (Extended Range)</td><td>R</td><td>-</td><td>R</td><td>-</td><td>-</td><td>R <a href="TagNames/OpenEXR.html">OpenEXR</a></td></tr>
<tr><td>EXV</td><td>R/W/C</td><td>Exiv2 metadata file (<a href="TagNames/JPEG.html">JPEG</a>-based)</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/D</td><td><a href="#JPEG">Supported JPEG Meta Information</a></td></tr>
<tr><td>F4A, F4B, F4P, F4V</td><td>R/W</td><td>Adobe Flash Player 9+ Audio/Video (<a href="TagNames/QuickTime.html">QuickTime</a>-based)</td><td>R/W<span class=sup>3</span></td><td>R/W<span class=sup>3</span></td><td>R/W/C</td><td>-</td><td>R/D</td><td>R/W/C <a href="TagNames/QuickTime.html">QuickTime</a></td></tr>
<tr><td>FFF</td><td>R/W<span class=sup>6</span></td><td>Hasselblad Flexible File Format (<a href="TagNames/EXIF.html">TIFF</a>-based)</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/D</td><td>-</td></tr>
@ -423,9 +448,11 @@ metadata types for each file format. C2PA metadata is not currently <b>W</b>rit
<tr><td><a href="TagNames/MRC.html">MRC</a></td><td>R</td><td>Medical Research Council</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/MRC.html">MRC</a></td></tr>
<tr><td><a href="TagNames/MXF.html">MXF</a></td><td>R</td><td>Material Exchange Format</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/MXF.html">MXF</a></td></tr>
<tr><td>NEF</td><td>R/W</td><td>Nikon (RAW) Electronic Format (<a href="TagNames/EXIF.html">TIFF</a>-based)</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/D</td><td>R/W <a href="TagNames/Nikon.html">Nikon</a> <a href="TagNames/NikonCapture.html">NikonCapture</a></td></tr>
<tr><td>NKA</td><td>R</td><td>Nikon NX Studio Adjustments</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R XML</td></tr>
<tr><td>NKSC</td><td>R/W</td><td>Nikon Sidecar (<a href="TagNames/XMP.html">XMP</a>-based)</td><td>-</td><td>-</td><td>R/W/C</td><td>-</td><td>-</td><td>-</td></tr>
<tr><td><a href="TagNames/iWork.html">NMBTEMPLATE</a></td><td>R</td><td>Apple iWork '09 Numbers Template</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/iWork.html">XML</a> <a href="TagNames/ZIP.html">ZIP</a></td></tr>
<tr><td>NRW</td><td>R/W</td><td>Nikon RAW (2) (<a href="TagNames/EXIF.html">TIFF</a>-based)</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/D</td><td>R/W <a href="TagNames/Nikon.html">Nikon</a> <a href="TagNames/NikonCapture.html">NikonCapture</a></td></tr>
<tr><td>NXD</td><td>R</td><td>Nikon Capture NX-D adjustments (XMP-based)</td><td>-</td><td>-</td><td>R</td><td>-</td><td>-</td><td>-</td></tr>
<tr><td><a href="TagNames/iWork.html">NUMBERS</a></td><td>R</td><td>Apple iWork '09 Numbers spreadsheet</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/iWork.html">XML</a> <a href="TagNames/ZIP.html">ZIP</a></td></tr>
<tr><td><a href="TagNames/EXE.html#ELF">O</a></td><td>R</td><td>Unix compiled code Object</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/EXE.html#ELF">EXE</a></td></tr>
<tr><td>ODB, ODC, ODF, ODG,<br>ODI, ODP, ODS, ODT</td><td>R</td><td>Open Document Database/Chart/Formula/Graphics/<br>Image/Presentation/Spreadsheet/Text (ZIP/XML-based)</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R XML <a href="TagNames/ZIP.html">ZIP</a></td></tr>
@ -434,9 +461,10 @@ metadata types for each file format. C2PA metadata is not currently <b>W</b>rit
<tr><td>ONP</td><td>R</td><td>ON1 Presets</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/JSON.html">JSON</a> <a href="TagNames/PLIST.html">PLIST</a></td></tr>
<tr><td><a href="TagNames/Opus.html">OPUS</a></td><td>R</td><td>Ogg Opus audio</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R</td><td>R <a href="TagNames/FLAC.html">FLAC</a> <a href="TagNames/ID3.html">ID3</a> <a href="TagNames/ID3.html#Lyrics3">Lyrics3</a> <a href="TagNames/Opus.html">Opus</a> <a href="TagNames/Vorbis.html">Vorbis</a></td></tr>
<tr><td>ORF, ORI</td><td>R/W</td><td>Olympus RAW Format (<a href="TagNames/EXIF.html">TIFF</a>-based)</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/D</td><td>R/W <a href="TagNames/Olympus.html">Olympus</a></td></tr>
<tr><td><a href="TagNames/Font.html">OTF</a></td><td>R</td><td>Open Type Font</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/Font.html">Font</a></td></tr>
<tr><td><a href="TagNames/Font.html">OTF</a></td><td>R</td><td>Open Type Font</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R</td><td>R <a href="TagNames/Font.html">Font</a></td></tr>
<tr><td>PAC</td><td>R</td><td>Lossless Predictive Audio Compression (<a href="TagNames/RIFF.html">RIFF</a>-based)</td><td>R<span class=sup>3</span></td><td>-</td><td>R</td><td>-</td><td>R</td><td>R <a href="TagNames/RIFF.html">RIFF</a></td></tr>
<tr><td><a href="TagNames/iWork.html">PAGES</a></td><td>R</td><td>Apple iWork '09 Pages document</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/iWork.html">XML</a> <a href="TagNames/ZIP.html">ZIP</a></td></tr>
<tr><td><a href="TagNames/PCAP.html">PCAP, PCAPNG</a></td><td>R</td><td>Packet Capture (Next Generation)</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/PCAP.html">PCAP</a></td></tr>
<tr><td><a href="TagNames/PhotoCD.html">PCD</a></td><td>R</td><td>Kodak Photo CD Image Pac</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/PhotoCD.html">PhotoCD</a></td></tr>
<tr><td><a href="TagNames/PCX.html">PCX</a></td><td>R</td><td>PC Paintbrush</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/PCX.html">PCX</a></td></tr>
<tr><td><a href="TagNames/Palm.html">PDB, PRC</a></td><td>R</td><td>Palm Database</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/Palm.html">Palm</a></td></tr>
@ -484,7 +512,7 @@ metadata types for each file format. C2PA metadata is not currently <b>W</b>rit
<tr><td>THM</td><td>R/W</td><td>Thumbnail image (<a href="TagNames/JPEG.html">JPEG</a>)</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/D</td><td><a href="#JPEG">Supported JPEG Meta Information</a></td></tr>
<tr><td><a href="TagNames/OOXML.html">THMX</a></td><td>R</td><td>Office Open XML Theme</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/OOXML.html">XML</a> <a href="TagNames/ZIP.html">ZIP</a></td></tr>
<tr><td><a href="TagNames/EXIF.html">TIFF, TIF</a></td><td>R/W</td><td>Tagged Image File Format</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/W/C</td><td>R/D</td><td>R/W/C <a href="TagNames/GeoTiff.html">GeoTIFF</a><span class=sup>1</span>, R/W <a href="#Trailers">Trailers</a></td></tr>
<tr><td><a href="TagNames/Font.html">TTF, TTC</a></td><td>R</td><td>True Type Font/Collection</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/Font.html">Font</a></td></tr>
<tr><td><a href="TagNames/Font.html">TTF, TTC</a></td><td>R</td><td>True Type Font/Collection</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R</td><td>R <a href="TagNames/Font.html">Font</a></td></tr>
<tr><td><a href="TagNames/Torrent.html">TORRENT</a></td><td>R</td><td>BitTorrent description file</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/Torrent.html">Torrent</a></td></tr>
<tr><td><a href="TagNames/Text.html">TXT</a></td><td>R</td><td>Text files</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/Text.html">Text</a></td></tr>
<tr><td><a href="TagNames/VCard.html">VCF, VCARD</a></td><td>R</td><td>Virtual Card</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>R <a href="TagNames/VCard.html">VCard</a></td></tr>
@ -534,6 +562,7 @@ of meta information in JPEG images:</p>
<tr><td>APP2 - <a href="TagNames/FlashPix.html">FPXR</a></td><td>R</td><td>FlashPix Ready (multi-segment)</td></tr>
<tr><td>APP2 - <a href="TagNames/MPF.html">MPF</a></td><td>R</td><td>Multi-Picture Format</td></tr>
<tr><td>APP2 - <a href="TagNames/InfiRay.html#Version">InfiRay Version</a></td><td>R</td><td>InfiRay IJPEG Version header</td></tr>
<tr><td>APP2 - AROT</td><td>R</td><td>HDR Gain Curve</td></tr>
<tr><td>APP2 - PreviewImage</td><td>R</td><td>Samsung/GE APP2 preview image (multi-segment)</td></tr>
<tr><td>APP3 - <a href="TagNames/Kodak.html#Meta">Kodak Meta</a></td><td>R/W</td><td>Kodak Meta information (EXIF-like)</td></tr>
<tr><td>APP3 - <a href="TagNames/Stim.html">Stim</a></td><td>R</td><td>Stereo Still Image format</td></tr>
@ -546,6 +575,7 @@ of meta information in JPEG images:</p>
<tr><td>APP4 - <a href="TagNames/DJI.html#ThermalParams2">ThermalParams2</a></td><td>R</td><td>DJI thermal parameters type 2</td></tr>
<tr><td>APP4 - <a href="TagNames/DJI.html#ThermalParams3">ThermalParams3</a></td><td>R</td><td>DJI thermal parameters type 3</td></tr>
<tr><td>APP4 - <a href="TagNames/FlashPix.html">FPXR</a></td><td>R</td><td>FlashPix Ready in non-standard location (multi-segment)</td></tr>
<tr><td>APP4 - <a href="TagNames/Qualcomm.html#DualCamera">Qualcomm Dual</a></td><td>R</td><td>Qualcomm Dual Camera Attributes</td></tr>
<tr><td>APP4 - <a href="TagNames/InfiRay.html#Factory">InfiRay Factory</a></td><td>R</td><td>InfiRay IJPEG Factory Temperature</td></tr>
<tr><td>APP4 - PreviewImage</td><td>R</td><td>(continued from APP3)</td></tr>
<tr><td>APP5 - <a href="TagNames/Ricoh.html#RMETA">Ricoh RMETA</a></td><td>R</td><td>Ricoh custom fields</td></tr>
@ -565,9 +595,12 @@ of meta information in JPEG images:</p>
<tr><td>APP7 - <a href="TagNames/InfiRay.html#OpMode">InfiRay OpMode</a></td><td>R</td><td>InfiRay IJPEG Operation Mode</td></tr>
<tr><td>APP6 - <a href="TagNames/DJI.html#Info">DJI Info</a></td><td>R</td><td>DJI debug information</td></tr>
<tr><td>APP8 - <a href="TagNames/JPEG.html#SPIFF">SPIFF</a></td><td>R</td><td>Still Picture Interchange File Format</td></tr>
<tr><td>APP8 - <a href="TagNames/XMP.html#SEAL">SEAL</a></td><td>R</td><td>SEAL content authentification</td></tr>
<tr><td>APP8 - <a href="TagNames/InfiRay.html#Isothermal">InfiRay Isothermal</a></td><td>R</td><td>InfiRay IJPEG Isothermal</td></tr>
<tr><td>APP9 - <a href="TagNames/JPEG.html#MediaJukebox">Media Jukebox</a></td><td>R</td><td>Media Jukebox XML information</td></tr>
<tr><td>APP9 - <a href="TagNames/InfiRay.html#Sensor">InfiRay Sensor</a></td><td>R</td><td>InfiRay IJPEG Sensor Information</td></tr>
<tr><td>APP9 - <a href="TagNames/XMP.html#SEAL">SEAL</a></td><td>R</td><td>SEAL content authentification</td></tr>
<tr><td>APP10 - URN</td><td>R</td><td>Uniform Resource Name</td></tr>
<tr><td>APP10 - Comment</td><td>R</td><td>PhotoStudio Unicode Comment</td></tr>
<tr><td>APP11 - <a href="TagNames/JPEG.html#HDR">JPEG-HDR</a></td><td>R</td><td>JPEG-HDR compressed ratio image</td></tr>
<tr><td>APP11 - <a href="TagNames/Jpeg2000.html">JUMBF (C2PA)</a></td><td>R</td><td>Jpeg Universal Metadata Box Format (multi-segment)</td></tr>
@ -586,14 +619,18 @@ of meta information in JPEG images:</p>
<tr><td><a href="TagNames/FotoStation.html">FotoStation trailer</a></td><td>R/W</td><td>FotoWare FotoStation (includes <a href="TagNames/IPTC.html">IPTC</a>)</td></tr>
<tr><td><a href="TagNames/PhotoMechanic.html">PhotoMechanic trailer</a></td><td>R/W</td><td>Camera Bits Photo Mechanic</td></tr>
<tr><td><a href="TagNames/MIE.html">MIE trailer</a></td><td>R/W</td><td><a href="MIE1.1-20070121.pdf">Meta Information Encapsulation</a></td></tr>
<tr><td><a href="TagNames/MPF.html">MPF trailer</a></td><td>R</td><td>Multi-Picture Format images</td></tr>
<tr><td><a href="TagNames/Samsung.html#Trailer">Samsung trailer</a></td><td>R</td><td>Samsung Galaxy trailer</td></tr>
<tr><td><a href="TagNames/Trailer.html#Vivo">Vivo trailer</a></td><td>R</td><td>Trailer written by some Vivo phones</td></tr>
<tr><td><a href="TagNames/Trailer.html#OnePlus">OnePlus trailer</a></td><td>R</td><td>Trailer written by some OnePlus phones</td></tr>
<tr><td><a href="TagNames/Trailer.html#Google">Google trailer</a></td><td>R</td><td>Trailer written by some Google phones</td></tr>
<tr><td>Insta360 trailer</td><td>R</td><td>Insta360 trailer found in INSP files</td></tr>
<tr><td>NikonApp trailer</td><td>R</td><td>Nikon trailer added by NX Studio to NEF/NRW files</td></tr>
<tr><td>Sony HiddenData trailer</td><td>R</td><td>Hidden data written by some Sony models</td></tr>
<tr><td>PreviewImage trailer</td><td>R/W/C</td><td>(preview image written after JPEG EOI)</td></tr>
<tr><td>EmbeddedVideo trailer</td><td>R</td><td>(extracted only with ExtractEmbedded option)</td></tr>
</table><span class=sm><span class=sup>1</span> All trailers except Samsung, Insta360, PreviewImage and EmbeddedVideo also have
R/W support in TIFF images, and the NikonApp trailer is used in NEF/NRW files.</span></blockquote>
</table><span class=sm><span class=sup>1</span> Some of these trailers are also supported for
TIFF-format and QuickTime-format files.</span></blockquote>
<h2><a name="system">System Requirements</a></h2>
@ -602,11 +639,12 @@ some optional Perl modules may be added to enable certain ExifTool features (for
details, see the DEPENDENCIES section of the README file included in the full
distribution).</p>
<p><b>Windows users:</b> A <a href="#alone">stand-alone Windows executable</a>
<p><b>Windows users:</b> A <a href="#alone">Windows executable</a>
version of ExifTool is available which doesn't require Perl. You can also use
the pure Perl version if you already have Perl installed. (You can get a good,
free Perl interpreter from
<a href="http://www.activestate.com/activeperl/">activeperl.com</a>.)</p>
<a href="http://www.activestate.com/activeperl/">activeperl.com</a> or
<a href="https://strawberryperl.com/">strawberryperl.com</a>.)</p>
<p><b>Everyone else (Mac, Unix, etc):</b> Don't worry, you already have
Perl installed.</p>
@ -640,7 +678,7 @@ exiftool</code>". Alternately, you may be able to rename it to
requires that the proper Windows associations have been made for the
"<code>.pl</code>" extension.</p>
<p>The stand-alone version ("<code>exiftool(-k).exe</code>") should be
<p>The ExifTool .exe file ("<code>exiftool(-k).exe</code>") should be
renamed to "<code>exiftool.exe</code>" to allow it to be run by typing
"<code>exiftool</code>" at the command line.</p>
@ -653,14 +691,14 @@ PATH, then its directory must be specified on the command line (eg. by typing
<p>Note that when typing commands in the "cmd.exe" shell, you should use double
quotes instead of single quotes as shown in some examples.</p>
<p><b>ii) Stand-alone version in the Windows GUI:</b></p>
<p><b>ii) Running in the Windows GUI (not from command line):</b></p>
<p>Double-click on "<code>exiftool(-k).exe</code>" to read the application
documentation, or drag-and-drop files and folders to run exiftool on the
selected files.</p>
<p>Simple options may be added inside brackets in the name of the stand-alone
executable. (But note that the characters <code>/\?*:|"&lt;&gt;</code> may not
<p>Simple options may be added inside brackets in the name of the .exe file.
(But note that the characters <code>/\?*:|"&lt;&gt;</code> may not
be used because they are invalid in Windows file names.) In this way, the
behaviour of the drag-and-drop application can be customized. For example:</p>
@ -763,6 +801,57 @@ more information: Right-click on the window's title bar then select
href="htmldump.html">HtmlDump</a> (<code>-htmlDump</code>) options print additional
information that can be very useful for debugging or when decoding new tags.</p>
<h3><a name='diff'>Compare Two Files for Metadata Differences</a></h3>
<p>The <code>-diff</code> option provides a method to show the metadata differences
between two files. For example, here is a comparison of two files excluding System
and Composite tags:</p>
<blockquote>&gt; <code>exiftool a.jpg -diff b.jpg --system:all -e</code><br>&nbsp;
<table class='box sm tight'><tr><td>
<pre class=blk>======== diff &lt; a.jpg &gt; b.jpg
&lt; [IFD0] Modify Date : 2024:09:05 14:37:40
&gt; : 2024:09:05 14:41:05
&lt; [ExifIFD] Exposure Time : 1/400
&gt; : 1/1000
&lt; [ExifIFD] F Number : 4.0
&gt; : 5.6
&lt; [ExifIFD] Date/Time Original : 2024:09:05 14:37:40
&gt; : 2024:09:05 14:41:05
&lt; [ExifIFD] Create Date : 2024:09:05 14:37:40
&gt; : 2024:09:05 14:41:05
&lt; [ExifIFD] Brightness Value : 8.49765625
&gt; : 10.728125
&lt; [ExifIFD] Max Aperture Value : 2.8
&gt; : 4.0
&lt; [ExifIFD] Focal Length : 9.0 mm
&gt; : 32.7 mm
&lt; [ExifIFD] Focal Length In 35mm Format : 24 mm
&gt; : 89 mm
&lt; [Sony] Camera Temperature : 36 C
&gt; : 35 C
&lt; [Sony] Exposure Time : 1/400
&gt; : 1/1000
&lt; [Sony] Sony Max Aperture Value : 3.0
&gt; : 4.1
&lt; [Sony] Lens Zoom Position : 0%
&gt; : 59%
&lt; [Sony] Brightness Value : 8.49765625
&gt; : 10.728125
&lt; [Sony] WB RGB Levels : 578 256 478
&gt; : 592 256 466
&lt; [Sony] Focal Length : 9.0 mm
&gt; : 32.7 mm
&lt; [IFD1] Thumbnail Length : 12771
&gt; : 5940
&lt; [MPImage1] MP Image Length : 7696566
&gt; : 5839721
&lt; [MPImage2] MP Image Length : 1167032
&gt; : 492263
&lt; [MPImage2] MP Image Start : 7699456
&gt; : 5840896
</pre></td></tr></table></blockquote>
<h2><a name="tagnames">Tag Names Explained</a></h2>
<p>A tag name is a "handle" that is used to refer to a specific piece of meta
@ -844,59 +933,63 @@ of the group names in each family:</p>
<blockquote><table class=norm>
<tr><th>Family</th><th>Group Names</th></tr>
<tr><td><b>0 (Information&nbsp;Type)</b></td>
<td class=sm>AAC, AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP2,
APP3, APP4, APP5, APP6, APP7, APP8, APP9, ASF, Audible, Canon, 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, JUMBF,
Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE, MIFF, MISB, MNG, MOI, MPC, MPEG, MPF,
MXF, MakerNotes, Matroska, Meta, Ogg, OpenEXR, Opus, PDF, PICT, PLIST, PNG,
PSP, Palm, PanasonicRaw, Parrot, PhotoCD, PhotoMechanic, Photoshop,
PostScript, PrintIM, QuickTime, RAF, RIFF, RSRC, RTF, Radiance, Rawzor,
Real, Red, SVG, SigmaRaw, Sony, Stim, Theora, Torrent, Trailer, VCard,
Vorbis, WTV, XML, XMP, ZIP
<td class=sm>AAC, AFCP, AIFF, APE, APP0, APP1, APP10, APP11, APP12, APP13, APP14, APP15,
APP2, APP3, APP4, APP5, APP6, APP7, APP8, APP9, ASF, Audible, Canon,
CanonVRD, Composite, DICOM, DjVu, DNG, Ducky, DV, EXE, EXIF, ExifTool, File,
FITS, FLAC, Flash, FlashPix, FLIR, Font, FotoStation, GeoTiff, GIF, GIMP,
GM, GoPro, H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG,
Jpeg2000, JSON, JUMBF, Leaf, LNK, Lytro, M2TS, MakerNotes, Matroska, Meta,
MIE, MIFF, MISB, MNG, MOI, MPC, MPEG, MPF, MXF, Ogg, OpenEXR, Opus, Palm,
PanasonicRaw, Parrot, PDF, PhotoCD, PhotoMechanic, Photoshop, PICT, PLIST,
PNG, PostScript, PrintIM, Protobuf, PSP, QuickTime, Radiance, RAF, Rawzor,
Real, Red, RIFF, RSRC, RTF, SigmaRaw, Sony, Stim, SVG, Theora, Torrent,
Trailer, VCard, Vorbis, WTV, XML, XMP, ZIP
</td></tr>
<tr><td><b>1&nbsp;(Specific&nbsp;Location)</b></td>
<td class=sm>AAC, AC3, AFCP, AIFF, APE, ASF, AVI1, Adobe, AdobeCM, AdobeDNG, Apple,
Audible, CBOR, CIFF, CameraIFD, Canon, CanonCustom, CanonDR4, 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,
GSpherical, Garmin, GeoTiff, GlobParamIFD, GoPro, GraphConv, H264, HP, HTC,
<td class=sm>AAC, AC3, Adobe, AdobeCM, AdobeDNG, AFCP, AIFF, APE, APP10, APP2, Apple,
ASF, Audible, AudioItemList, AudioKeys, AudioUserData, AVI1, CameraIFD,
Canon, CanonCustom, CanonDR4, CanonRaw, CanonVRD, Casio, CBOR, Chapter#,
CIFF, Composite, DICOM, DJI, DjVu, DjVu-Meta, DNG, Ducky, DV, EPPIM, EXE,
EXIF, ExifIFD, ExifTool, File, FITS, FLAC, Flash, FlashPix, FLIR, Font,
FotoStation, FujiFilm, FujiIFD, Garmin, GE, GeoTiff, GIF, GIMP,
GlobParamIFD, GM, Google, GoPro, GPS, GraphConv, GSpherical, 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, InfiRay, Insta360, 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, M-RAW, 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, MISB, 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-cICP, PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Parrot, 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, VNote, Version0, Vorbis, WTV, XML, XMP, XMP-DICOM,
XMP-Device, XMP-GAudio, XMP-GCamera, XMP-GCreations, 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-ast,
ICC-chrm, ICC-cicp, 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, InfiRay, Insta360, InteropIFD, IPTC, IPTC#, ISO, ITC, ItemList,
iTunes, JFIF, JFXX, JPEG, JPEG-HDR, Jpeg2000, JPS, JSON, JUMBF, JVC,
KDC_IFD, Keys, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD,
KyoceraRaw, Leaf, LeafSubIFD, Leica, LNK, Lyrics3, Lytro, M-RAW, M2TS, MAC,
MacOS, MakerNotes, MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD,
Microsoft, MIE-Audio, MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender,
MIE-Flash, MIE-Geo, MIE-GPS, MIE-Image, MIE-Lens, MIE-Main, MIE-MakerNotes,
MIE-Meta, MIE-Orient, MIE-Preview, MIE-Thumbnail, MIE-Unknown, MIE-UTM,
MIE-Video, MIFF, Minolta, MinoltaRaw, MISB, MNG, MOBI, MOI, Motorola, MPC,
MPEG, MPF0, MPImage, MS-DOC, MXF, Nextbase, Nikon, NikonCapture,
NikonCustom, NikonScan, NikonSettings, NineEdits, Nintendo, NITF, Ocad, Ogg,
Olympus, OnePlus, OpenEXR, Opus, Palm, Panasonic, PanasonicRaw, Parrot, PDF,
Pentax, PhaseOne, PhotoCD, PhotoMechanic, Photoshop, PICT, PictureInfo, PNG,
PNG-cICP, PNG-pHYs, PostScript, PreviewIFD, PrintIM, ProfileIFD, PSP,
Qualcomm, QuickTime, Radiance, RAF, RAF2, Rawzor, Real, Real-CONT,
Real-MDPR, Real-PROP, Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Reconyx, Red,
Ricoh, RIFF, RMETA, RSRC, RTF, Samsung, Sanyo, Scalado, SEAL, Sigma,
SigmaRaw, Sony, SonyIDC, SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#, Stim,
SubIFD, SVG, System, Theora, Torrent, Track#, Track#ItemList, Track#Keys,
Track#UserData, UserData, VCalendar, VCard, Version0, VideoItemList,
VideoKeys, VideoUserData, Vivo, VNote, Vorbis, WTV, XML, XMP, XMP-aas,
XMP-acdsee, XMP-acdsee-rs, XMP-album, XMP-apdi, XMP-apple-fi, XMP-ast,
XMP-aux, XMP-cc, XMP-cell, XMP-crd, XMP-creatorAtom, XMP-crs, XMP-dc,
XMP-dex, XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-et, XMP-exif, XMP-exifEX,
XMP-expressionmedia, XMP-extensis, XMP-fpv, XMP-getty, XMP-hdr, XMP-hdrgm,
XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft,
XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-nine, XMP-panorama, XMP-pdf,
XMP-pdfx, XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism,
XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-sdc, XMP-swf, XMP-tiff, XMP-x,
XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpDSA, XMP-xmpMM, XMP-xmpNote,
XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP, iTunes
XMP-Device, XMP-dex, XMP-DICOM, XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-et,
XMP-exif, XMP-exifEX, XMP-expressionmedia, XMP-extensis, XMP-fpv,
XMP-GAudio, XMP-GCamera, XMP-GContainer, XMP-GCreations, XMP-GDepth,
XMP-getty, XMP-GFocus, XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-hdr,
XMP-HDRGainMap, XMP-hdrgm, XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-LImage,
XMP-lr, XMP-mediapro, XMP-microsoft, XMP-MP, XMP-MP1, XMP-mwg-coll,
XMP-mwg-kw, XMP-mwg-rs, XMP-nine, XMP-panorama, XMP-pdf, XMP-pdfx,
XMP-photomech, XMP-photoshop, XMP-PixelLive, XMP-plus, XMP-pmi, XMP-prism,
XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-sdc, XMP-seal, XMP-swf, XMP-tiff,
XMP-x, XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpDSA, XMP-xmpMM, XMP-xmpNote,
XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP
</td></tr>
<tr><td><b>2&nbsp;(Category)</b></td>
<td>Audio, Author, Camera, Device, Document, ExifTool, Image, Location, Other,
@ -918,8 +1011,8 @@ rational64s, float, double, ifd, unicode, complex, int64u, int64s, ifd64</td></t
<td>ID-xxx (where xxx is the tag ID. Numerical ID's are given in hex with a
leading "0x" if the <a href="ExifTool.html#HexTagIDs">HexTagIDs API option</a>
is set, as are characters in non-numerical ID's which are not valid in a group
name. Note that unlike other group names, family 7 group names are case
sensitive.)</td></tr>
name. Either decimal or hexadecimal ID's may be used when writing. Note that
unlike other group names, family 7 group names are case sensitive.)</td></tr>
<tr><td><b>8&nbsp;(File&nbsp;Number)</b></td>
<td>File# (for files loaded via <code>-file<i>NUM</i></code> option)</td></tr>
</table></blockquote>
@ -1046,14 +1139,24 @@ for proper rendering of the image.</li>
<h2><font color='#cc6600'><a name="problems">Known Problems</a></font></h2>
<ul>
<li><span class=grn>[2024-12-16]</span>
<b>HEIC images with an HDR gain map</b> may not show the gain map image in
Apple Preview after being edited by ExifTool to add new XMP.
<i class=grn>[ExifTool 13.09 fixes this by adding the new XMP with an
item ID greater than existing items.]</i></li>
<li><span class=grn>[2024-08-01]</span>
<b>ExifTool for Windows</b> supports a maximum path length of 246 characters
for files. Longer path lengths give an "Error opening file" message.
<i class=grn>[ExifTool 13.07 implements the API WindowsLongPath option
by default to patch this problem.]</i></li>
<li><span class=red>[2023-10-02]</span>
<b>Panasonic PHOTOfunSTUDIO 9.5</b> has problems displaying some ExifTool-edited
FZ1000 RW2 images, although other software (such as Adobe Lightroom, Digikam and
Windows Explorer) have no problems with these.</li>
<li><span class=red>[2022-08-23]</span>
<!-- (repeat of 2018-09-27 issue) <li><span class=red>[2022-08-23]</span>
<b>Sony Imaging Edge Desktop</b> has problems displaying some ExifTool-edited ARW
images, although other software (such as Adobe utilites) have no problems with these.</li>
<li><span class=red>[2020-02-18]</span>
images, although other software (such as Adobe utilites) have no problems with these.</li> -->
<li><span class=grn>[2020-02-18]</span>
<b>Hasselblad Phocus</b> software will no longer update the small preview or
thumbnail images of <b>FFF files</b> edited by ExifTool. This is perhaps due to
some <a href="idiosyncracies.html#HasselbladFFF">unreferenced preview information</a>
@ -1073,7 +1176,7 @@ The <b>Sony Imaging Edge applications</b> give an error when trying to open
utilities including Sony IDC (Sony's older RAW image converter), Adobe
Photoshop, Lightroom and DNG Converter, Apple Preview, dcraw, Capture One,
Affinity Photo, and LibRaw's SonyPixelShift2DNG have no problems with these.</li>
<li><span class=red>[2016-08-03]</span>
<li><span class=grn>[2016-08-03]</span>
Some antivirus software has been known to cause problems for the <b>Windows</b>
version of ExifTool. <b>Norton Antivirus</b> may delete ExifTool when it is run,
<b>Windows Defender</b> may slow down launching of ExifTool or hang it altogether,
@ -1081,7 +1184,9 @@ and <b>Bitdefender Antivirus</b> may block ExifTool from writing files.
Presumably this is due to the way the ExifTool package for Windows works -- it
unpacks executable files into a temporary directory and runs from there, which
apparently may be seen as a threat by antivirus software. A work-around is to
add ExifTool to the exclusion list of the antivirus software.</li>
add ExifTool to the exclusion list of the antivirus software. <i class=grn>[This
shouldn't be a problem since the changes to the Windows EXE package in ExifTool
12.88]</i></li>
<li><span class=grn>[2016-05-27]</span>
<b>Adobe Camera Raw and DNG Converter 9.5.1</b> fail to recognize edited
<b>Samsung SRW</b> images from some models (NX30, NX300, NX2000 and EK-GN120).
@ -1104,11 +1209,13 @@ provides the PNGEarlyXMP API option to allow writing XMP before the IDAT chunk,
but there are caveats associated with its use. ExifTool 11.58 and later remove
this option and always write XMP before IDAT, and 11.63 and later write all
text chunks before IDAT.]</i></li>
<li><span class=red>[2013-04-21]</span>
<li><span class=grn>[2013-04-21]</span>
Memory available to ExifTool in the <b>Windows EXE version</b> is limited to
a few hundred MB. This limitation has been known to cause <b>unreasonably long
processing times</b> (almost 7 minutes) for some large EPS files (> 200 MB) which
are processed much faster by the Perl version (&lt; 6 seconds).</li>
are processed much faster by the Perl version (&lt; 6 seconds).
<i class=grn>[These memory issues are alleviated by the new Windows EXE package
of ExifTool 12.88 and later.]</i></li>
<li><span class=grn>[2010-01-12]</span>
There is a bug in a number of <b>Adobe</b> utilities which causes some
edited <b>Sony ARW</b> images to be displayed with the wrong tone curve. This
@ -1136,8 +1243,19 @@ secure the calling application must either place file names after the
"<code>--</code>" option, or ensure that input file names do not start with a
dash (U+002D) or a Unicode minus sign (U+2212). One way to accomplish this is
to prefix input file names with a known directory name, eg.)
<code>"./FILENAME"</code>.</p> <p>As well, untrusted window title strings should
not be used with the <code>-progress:TITLE</code> option.</p>
<code>"./FILENAME"</code>.</p>
<p>On startup, ExifTool executes user-defined code from the .ExifTool_config
file located in the ExifTool directory, the directory specified by the
EXIFTOOL_HOME, HOME or HOMEDRIVE+HOMEPATH environment variables, or the current
working directory. So care must be taken to make sure that any such file
contains only trusted code.</p>
<p>As well, untrusted window title strings should not be used with the
<code>-progress:TITLE</code> option.</p>
<p>Note that ExifTool NEVER makes an internet connection, so you can be
assured that your personal data never leaves your computer.</p>
<h2><a name="shift">Date/Time Shift Feature</a></h2>
@ -1237,7 +1355,9 @@ bypassed in processing so they are never even extracted -- specifying
<code>--XMP-crs:all</code> and <code>-XMP-crd:all</code> may speed processing
significantly by avoiding processing of bulky Adobe image-editing information.
The <a href="ExifTool.html#IgnoreTags">API IgnoreTags option</a> (added in
ExifTool 12.43) may also be used for significant speed benefits in some cases.</p>
ExifTool 12.43) may also be used for significant speed benefits in some cases,
especially when memory usage is significant because this may significantly
reduced the required memory.</p>
<p>The <code>-fast</code> option can significantly increase speed when
extracting information from JPEG images which are piped across a slow network
@ -1266,7 +1386,7 @@ to meta information. Here is an example of a very simple script that uses
Image::ExifTool to print out all recognized meta information in a file:</p>
<blockquote><table class=box><tr><td><pre class=blk>
<span class=com>#!/usr/bin/perl -w</span>
<span class=com>#!/usr/bin/env perl</span>
use Image::ExifTool ':Public';
my $file = shift or die "Please specify filename";
my $info = <a href="ExifTool.html#ImageInfo">ImageInfo</a>($file);
@ -1306,9 +1426,11 @@ binary data. The simple script above does not handle this case.</p>
<li><a href="https://exiftool.org/sample_images.html">JPEG Image Samples</a> (and
<a href="https://exiftool.org/makernote_types.html">Table of Makernote Types</a>)</li>
<li><a href="https://metacpan.org/release/Image-ExifTool">Image::ExifTool at MetaCPAN</a></li>
<li><a href="https://exiftool.org/forum/index.php?board=6.0">ExifTool Bug Reports</a> (ExifTool Forum -- the preferred method)</li>
<li><a href="https://github.com/exiftool/exiftool/issues">ExifTool Bug Reports</a> (Github)</li>
<li><a href="https://rt.cpan.org/Public/Dist/Display.html?Name=Image-ExifTool">ExifTool Bug Reports</a> (CPAN Request Tracker)</li>
<li><a href="http://www.cpantesters.org/distro/I/Image-ExifTool.html">ExifTool Test Reports</a> (CPAN Testers)</li>
<li><a href="http://matrix.cpantesters.org/?dist=Image-ExifTool;maxver=1">CPAN Testers Matrix</a> (max version with a PASS)</li>
<!-- Seems to be defunct <li><a href="http://www.cpantesters.org/distro/I/Image-ExifTool.html">ExifTool Test Reports</a> (CPAN Testers)</li> -->
<li><a href="http://matrix.cpantesters.org/?dist=Image-ExifTool;maxver=">CPAN Testers Matrix</a> (<a href="http://matrix.cpantesters.org/?dist=Image-ExifTool;maxver=1">max version with a PASS</a>)</li>
</ul>
<p><b><a name="user_docs">User-contributed Documentation</a></b></p>
@ -1330,7 +1452,7 @@ binary data. The simple script above does not handle this case.</p>
<li><a href="http://wxutils.com/wxeti.php">wxETI</a>: A wxWidgets-based Windows interface for Exiftool</li>
<li><a href="https://exiftool.org/gui/">ExifTool GUI for Windows</a>: [unsupported] GUI for viewing meta information with some editing features</li>
<li><a href="https://github.com/FrankBijnen/ExifToolGui/releases/">ExifTool GUI v6 for Windows</a>: Updated version of ExifTool GUI (<a href="https://github.com/FrankBijnen/ExifToolGui/">source</a>, <a href="https://htmlpreview.github.io/?https://github.com/FrankBijnen/ExifToolGui/blob/main/Docs/ExifToolGUI_V6.md">documentation</a>)</li>
<li><a href="https://www.logipole.com/metadata++-en.htm">Metadata++</a>: View, edit, extract, copy metadata metadata</li>
<li><a href="https://www.logipole.com/index.html">Metadata++</a>: View, edit, extract, copy metadata metadata</li>
<!-- dead <li><a href="http://www.thezeal.com/software/?Exif_Stats_Utility">Exif Stats Utility</a>: Analyzes images to tabulate apertures, exposure times, etc</li> -->
<li><a href="http://aeropic.free.fr/H&amp;B/AUTO_ISO_patcher/">Auto ISO Tool</a>: GUI front-end for ExifTool to patch Canon ISO information</li>
<!-- dead <li><a href="http://home.roadrunner.com/~dick/ExifAuto.htm">ExifAuto</a>: GUI front-end for ExifTool to perform simple operations</li> -->
@ -1352,9 +1474,10 @@ binary data. The simple script above does not handle this case.</p>
<li><a href="http://fhotolab.de/wp/?page_id=795">EXIFCopy</a>: Copy all EXIF information between files</li>
<li><a href="http://www.abscreensavers.com/random-photo-screensaver/">Random Photo Screensaver</a>: Photo screensaver with metadata display</li>
<li><a href="https://www.picageotag.com/en/">PicaGeoTag</a>: Geolocate your photos</li>
<li><a href="https://onedrive.live.com/?authkey=%21ACLDz87Pi7VH%5FWA&amp;id=6266D5E1E0FBB1B8%2193728&amp;cid=6266D5E1E0FBB1B8">PictureTools</a>: Tools for viewing pictures and editing EXIF data or renaming files</li>
<li><a href="https://1drv.ms/f/c/6266d5e1e0fbb1b8/Erix--Dh1WYggGIgbgEAAAAB_elzvUPLPb4apLn4JCaaqw?e=vDKf3q">PictureTools</a>: Tools to view and edit EXIF, screen saver and games (<a href="https://drive.google.com/drive/folders/1l19htceOmMjJvTWNyTA6E7DlFKnB_kUz?usp=sharing">alt link</a>)</li>
<li><a href="https://nordlien.github.io/PhotoTags-Synchronizer/">PhotoTags-Synchronizer</a>: Windows GUI for tagging and synchronizing metadata</li>
<li><a href="https://github.com/electro-logic/DngOpcodesEditor">DNG Opcodes Editor</a>: Change DNG opcodes and see the effect on the image in real-time</li>
<li><a href="https://phototoolbox.fotoblog-reiseberichte.de/index.php/en/welcome-to-the-photography-toolbox-homepage/">Photography Toolbox</a>: Organize your digital photographs</li>
</ul>
<p><b><a name="related_mac">MacOS</a></b></p>
@ -1423,11 +1546,20 @@ three droplets to extract information [exiftool must be installed] (thanks to Ro
<li><a href="https://bizgraphic.ch/Reader/">Digi-libris</a>: Metadata centric software for the automatic organization of your own catalogue</li>
<li><a href="http://ronmevissen.com/FreezeFrame">FreezeFrame</a>: Photo/video library manager (requires Java 8)</li>
<li><a href="https://github.com/JorgenMygindPilgaard/MemoryMate">MemoryMate</a>: Maintain photo and video metadata for family collections</li>
<li><a href="https://blog.mapillary.com/update/2023/09/07/Mapillary-Desktop-Uploader-4.0.html">Mapillary Desktop Uploader</a>: Upload street-level imagery to an open platform database</li>
<li><a href="https:/Digikam.org/">Digikam</a>: Open-source digital photo management</li>
</ul>
<p><b><a name="related_web">Web Browser</a></b></p>
<ul>
<li><a href="https://github.com/lucasgelfond/exiftool-web">ExifTool-web</a>: ExifTool implementation that runs in the client's web browser</li>
<li><a href="https://github.com/uswriting/exiftool">@uswriting/exiftool</a>: WebAssembly-based API for reading metadata in a web browser or Node.js</li>
<li><a href="https://github.com/vaibhavshirole/exiftool-write">exiftool-write</a>: Fork of @uswriting/exiftool with the ability to write metadata</li>
</ul>
<p><b><a name="related_online">Online</a></b></p>
<ul>
<li><a href="http://regex.info/exif.cgi">Jeffrey's Exif Viewer</a>: Web utility to view meta information in online images</li>
<!-- offline 2025-03-30 <li><a href="http://regex.info/exif.cgi">Jeffrey's Exif Viewer</a>: Web utility to view meta information in online images</li> -->
<li><a href="http://www.thexifer.net/">The eXif.er</a>: Web-based EXIF editor</li>
<li><a href="http://getiptcpmd.nitsvc.net">Get-IPTC-Photo-Metadata</a>: Web service showing all IPTC metadata of web and local images (<a href="https://github.com/nitmws/get-iptc-pmd">source code</a>)</li>
<!-- gone commercial <li><a href="http://www.exif-search.com/">exif Photo Search</a>: Search the internet for photos base on EXIF metadata</li> -->
@ -1471,6 +1603,7 @@ three droplets to extract information [exiftool must be installed] (thanks to Ro
<li><a href="https://exiftool.org/gui/articles/delphi01.html">How to call ExifTool from Delphi</a>, by Bogdan Hrastnik</li>
<li><a href="https://github.com/philvl/ZExifTool">Qt5 and Qt6 interface for ExifTool</a>, by Philippe Vianney-Liaud</li>
<li><a href="https://github.com/JoshOBrien/exiftoolr">exiftoolr</a>: ExifTool functionality from R</li>
<!-- <li><a href="https://github.com/jabberjabberjabber/LLavaImageTagger">LLavaImageTagger</a>: AI image processing generates metadata in images</li> -->
</ul>
<h3><a name="other_links">Other Links</a></h3>
@ -1519,6 +1652,7 @@ to the code:</p>
<li>Jens Duttke for his suggestions, bug reports and help decoding new tags</li>
<li>Dave Nicholson for decoding new tags in Pentax and Canon maker notes</li>
<li>Bogdan Hrastnik for his feedback, decoding efforts, user support and ExifTool GUI</li>
<li>Frank Bijnen for updating the ExifTool GUI, user support, and help with testing</li>
<li>Igal Milchtaich for decoding many Sony A100 tags</li>
<li>Laurent Cl&eacute;vy for his work analyzing Canon RAW images</li>
<li>Warren Hatch for decoding many Nikon tags</li>
@ -1566,7 +1700,7 @@ source-code and forum backups.)</i></p>
from his position at Queen's University where he worked with the Nobel-prize-winning
<a href="https://sno.phy.queensu.ca">Sudbury Neutrino Observatory</a> (SNO) team
and other SNOLab experiments from 1990 to 2020. For SNO he wrote the software
to aquire, format, store and display all of the hundreds of terabytes of data
to acquire, format, store and display all of the hundreds of terabytes of data
generated by the detector; software that continues to be used by
<a href="https://snoplus.phy.queensu.ca">SNO+</a> for their even greater data
volume.</p>
@ -1576,17 +1710,17 @@ images hosted on the SNO web site, but quickly expanded in scope as Phil got
involved with digital photography beginning in 2001. During retirement Phil
continues to enjoy digital photography, a hobby which he now applies to bird
watching. A selection of his birding pictures may be found in his recent
<a href="https://www.blurb.ca/b/11481065-birds-of-kingston">Birds of Kingston</a>
<a href="https://www.blurb.ca/b/12133429-birds-of-kingston">Birds of Kingston</a>
book.</p>
<h2><a name="contact">Contact Me</a></h2>
<p>If you have any comments, suggestions or questions, please post to the
<a href="https://exiftool.org/forum/">ExifTool Forum</a> so
other people may benefit from your experiences. (I check the forum at least as
often as my email.) Otherwise, if you must contact me directly, my e-mail
address is on the first line of the README file in the full distribution.
Thanks. &nbsp; - <i>Phil Harvey</i></p>
<a href="https://exiftool.org/forum/">ExifTool Forum</a> so other people may
benefit from your experiences. (I will respond in the forum more quickly than
by email.) Otherwise, if you must contact me directly, my e-mail address is on
the first line of the README file in the full distribution. Thanks. &nbsp; -
<i>Phil Harvey</i></p>
<div class=wide><table class=links><tr>
<th><a href="install.html" class=wt>&nbsp;Installing&nbsp;</a></th>

View File

@ -18,9 +18,9 @@ div.rt { float: right; clear: both }
to be installed</b> to run. Just download and extract either the full Perl
distribution on Mac/Linux, or the Windows EXE version on Windows, and run it
directly. <i class=lt>[But note that if you move the Perl "exiftool"
application, you must also move its "lib" directory to the same location. This
doesn't apply to the Windows version which unpacks the libraries into a
temporary directory.]</i><br><br>However, the benefits of installation are:
application you must also move its "lib" directory to the same location, and
if you move the Windows "exiftool(-k).exe" or "exiftool.exe" you must also move the
"exiftool_files" folder.]</i><br><br>However, the benefits of installation are:
<ul><li>Makes ExifTool available to all users.</li>
<li>Saves typing on the command line (by placing "exiftool" in your PATH).</li>
<li>Installs the ExifTool documentation and API libraries (full Perl version only).</li>
@ -44,34 +44,39 @@ ExifTool.</p>
<p>In Windows, there is a choice of two different versions of ExifTool to
install. The Perl distribution requires Perl to be installed on your system.
(A good, free Perl interpreter can be downloaded from
<a href="http://www.activestate.com/activeperl/">activeperl.com</a>.)</p>
<p>If you don't already have Perl, it is easier to install the stand-alone ExifTool
executable, but note that the stand-alone version doesn't include the HTML
<a href="https://www.activestate.com/products/perl/">activeperl.com</a> or
<a href="https://strawberryperl.com/">strawberryperl.com</a>.)</p>
<p>If you don't already have Perl, it is easier to install the ExifTool
executable version, but note that this version doesn't include the HTML
documentation or some other files of the full distribution.</p>
<h3>Stand-Alone Executable</h3>
<h3>Windows Executable</h3>
<ol>
<li><b>Download</b> the <b>Windows Executable</b> from the <a href="index.html">ExifTool home page</a>.
<br><span class=lt>(The file you download should be named "<code>exiftool-12.76.zip</code>".)</span></li>
<li><b>Extract "<code>exiftool(-k).exe</code>"</b> from the
"<code>.zip</code>" file, and place it <b>on your Desktop</b>.
<br><span class=lt>(Double-click on "<code>exiftool-12.76.zip</code>" to open
the archive, then drag "<code>exiftool(-k).exe</code>" to your Desktop.)</span></li>
<li><b>Download</b> the 32-bit or 64-bit <b>Windows Executable</b> from the <a href="index.html">ExifTool home page</a>.
<br><span class=lt>(The file you download should be named "<code>exiftool-13.30_32.zip</code>"
or "<code>exiftool-13.30_64.zip</code>".)</span></li>
<li><b>Extract the "<code>exiftool-13.30_xx</code>" folder</b> from
the "<code>.zip</code>" file, and place it <b>on your Desktop</b>.
<br><span class=lt>(Double-click on "<code>exiftool-13.30_xx.zip</code>" to open
the archive, then drag "<code>exiftool-13.30_xx</code>" folder to your Desktop.)</span></li>
<li>Open the "<code>exiftool-13.30_xx</code>" folder from your Desktop.</li>
</ol>
<p>You can now double-click on "<code>exiftool(-k).exe</code>" to read the
application documentation, or drag-and-drop files and folders to run exiftool on
<p>You can now double-click on "<code>exiftool(-k).exe</code>" in this folder to read
the application documentation, or drag-and-drop files and folders to run exiftool on
selected files. To install exiftool for <b>use from the command line</b>,
continue with the following steps:</p>
<ol start=3>
<ol start=4>
<li><b>Rename</b> "<code>exiftool(-k).exe</code>" to <b>"<code>exiftool.exe</code>"</b>.
<br><span class=lt>(or "<code>exiftool(-k)</code>" to "<code>exiftool</code>" if file name
extensions are hidden on your system)</span></li>
<li><b>Move "<code>exiftool.exe</code>"</b> to the "<code>C:\WINDOWS</code>" directory
(or any other directory in your PATH).</li>
<li><b>Move "<code>exiftool.exe</code>" and the "<code>exiftool_files</code>" folder</b>
to any directory in your PATH (or any other directory of your choosing).</li>
</ol>
<p>You can now run exiftool by typing "<code>exiftool</code>" at the command
prompt. (To get to the command prompt, select "Run..." from the Windows "Start"
menu, then type "<code>cmd</code>" and press Return.)</p>
prompt (or "<code>c:\path\to\exiftool</code>" if the directory isn't in your
PATH). <br><span class=lt>(To get to the command prompt, select "Run..." from
the Windows "Start" menu, then type "<code>cmd</code>" and press Return.)</span></p>
<!-- (I think that these notes probably applied only to the old self-extracting version)
<p><b>Notes:</b></p>
<ol type='a'>
<li>In Windows 7, running exiftool may require administrator privileges. If
@ -81,54 +86,38 @@ necessary, this may be enabled by right clicking on exiftool, then selecting
This may be due to Windows Defender blocking or slowing down exiftool. To solve
this, either disable Windows Defender or add an exclusion for exiftool (but note
that exiftool may still run more slowly if you just add an exclusion).</li>
<li>Occasionally users have reported that exiftool gives errors when running
this version for this first time. It is possible this may happen if the
installation process gets interrupted. In this case, follow the Uninstalling
instructions below then re-install exiftool. Be sure that you have sufficient
disk space in your TEMP directory for exiftool to unpack about 12 MB of
temporary files -- these are the Perl libraries used by the exiftool application
which are unpacked the first time exiftool is run.</li>
</ol>
</ol> -->
<p><a name="uninstall_Windows_exe"><b>Uninstalling:</b></a></p>
<ol type='i'>
<li>Drag "<code>exiftool(-k).exe</code>" (or "<code>C:\WINDOWS\exiftool.exe</code>")
into the Recycle bin.</li>
<li>Drag the directory "<code>par-XXX</code>" from your temporary directory to
the Recycle bin. Here "<code>XXX</code>" is your user name (in ASCII-hex for
ExifTool 10.21 or later) and the location of the temporary directory depends on
the value of the TEMP environment variable (typically
"<code>C:\Documents and Settings\USER\Local Settings\Temp</code>"
for Windows XP, or "<code>C:\Users\USER\AppData\Local\Temp</code>" for Windows 7
or later). Alternately, this command may be used to delete these files:
<blockquote><code>for /D %d in (%TEMP%\par-*) do rmdir /s /q %d</code></blockquote>
</li>
<li>Drag "<code>exiftool(-k).exe</code>" (or "<code>exiftool.exe</code>" if you renamed
it) and the "<code>exiftool_files</code>" folder into the Recycle bin.</li>
</ol>
<h3>Full Perl Distribution</h3>
<p>You must have Perl installed to use this version. (A free version of Perl
can be downloaded from
<a href="http://www.activestate.com/activeperl/">activeperl.com</a>.)</p>
<a href="http://www.activestate.com/activeperl/">activeperl.com</a> or
<a href="https://strawberryperl.com/">strawberryperl.com</a>.)</p>
<ol>
<li><b>Download</b> the <b>Image-ExifTool distribution</b> from the <a href="index.html">ExifTool home page</a>
<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-12.76.tar.gz</code>".)</span></li>
<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-13.30.tar.gz</code>".)</span></li>
<li><b>Extract the ExifTool files</b> from the archive.
<br><span class=lt>(The archive is a gzipped tar file, and can be opened with
various Windows utilities, including WinZip.)</span></li>
<li><b>Rename</b> "<code>exiftool</code>" to <b>"<code>exiftool.pl</code>"</b>
in the exiftool distribution.</li>
<li><b>Move "<code>exiftool.pl</code>"</b> and the <b>"<code>lib</code>"</b>
directory from the exiftool distribution to "<code>C:\WINDOWS</code>"
(or any other directory in your PATH).</li>
directory from the exiftool distribution to any directory in your PATH.</li>
</ol>
<p>Now, if you have made the proper Windows associations for the
"<code>.pl</code>" extension (an option in the ActivePerl installation), you
can run exiftool by typing "<code>exiftool.pl</code>" at the
"<code>cmd.exe</code>" prompt. Otherwise you should type
"<code>perl c:\windows\exiftool.pl</code>".</p>
"<code>perl c:\path\to\exiftool.pl</code>".</p>
<p><a name="uninstall_Windows_perl"><b>Uninstalling:</b></a></p>
<ol type='i'>
<li>Drag "<code>C:\WINDOWS\exiftool.pl</code>" and
"<code>C:\WINDOWS\lib</code>" into the Recycle bin. You should first confirm
that "<code>C:\WINDOWS\lib</code>" contains only the "<code>File</code>"
<li>Drag "<code>exiftool.pl</code>" and the
"<code>lib</code>" into the Recycle bin. You should first confirm
that "<code>lib</code>" contains only the "<code>File</code>"
and "<code>Image</code>" sub-directories. Do not delete it if it
contains anything else.</li>
</ol>
@ -151,9 +140,9 @@ in the MacOS package. Both versions run natively on PPC and Intel Macs.</p>
<h3>MacOS Package</h3>
<ol>
<li><b>Download</b> the <b>ExifTool MacOS Package</b> from the <a href="index.html">ExifTool home page</a>.
<br><span class=lt>(The file you download should be named "<code>ExifTool-12.76.dmg</code>".)</span></li>
<br><span class=lt>(The file you download should be named "<code>ExifTool-13.30.pkg</code>".)</span></li>
<li><b>Install</b> as a normal <b>MacOS package</b>.
<br><span class=lt>(Open the disk image, double-click on the install package, and follow the instructions.
<br><span class=lt>(Double-click on the install package, and follow the instructions.
See the second item in the Notes section below if you are stopped with an "unidentified developer" message.)
</span></li>
</ol>
@ -167,12 +156,12 @@ See the second item in the Notes section below if you are stopped with an "unide
<ol>
<li><b>Download</b> the <b>Image-ExifTool distribution</b> from the <a href="index.html">ExifTool home page</a>
to your Desktop.
<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-12.76.tar.gz</code>".)</span></li>
<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-13.30.tar.gz</code>".)</span></li>
<li><b>Launch</b> the <b>Terminal</b> application from the Utilities folder in your Applications folder.</li>
<li>In the Terminal window, <b>type the following</b>:
<pre class='code'> cd ~/Desktop
tar -xzf Image-ExifTool-12.76.tar.gz
cd Image-ExifTool-12.76
tar -xzf Image-ExifTool-13.30.tar.gz
cd Image-ExifTool-13.30
sudo cp -r exiftool lib /usr/local/bin
</pre>
<span class=lt>(Note: The last step above will require you to enter your
@ -188,14 +177,26 @@ your Perl version. If both sets of libraries exist, /usr/local/bin/lib takes
precedence for exiftool, but /Library/Perl/#.#.# is the default for any other
Perl scripts.</li>
<li>In MacOS 10.8 or later, you may see this message when you try to open the install package:
<blockquote class=red>"ExifTool-12.76.pkg" can't be opened because it is from an
unidentified developer.</blockquote> The solution is to control-click on the pkg
then select "Open" from the pop-up menu instead of just double-clicking. An alternative
is to lower the security settings by changing "Allow applications downloaded from" to
"Anywhere" in the General "Security &amp; Privacy" System Preferences.
<blockquote class=red>"ExifTool-13.30.pkg" can't be opened because it is from an
unidentified developer.</blockquote> The solution for MacOS 14 or earlier is
to control-click on the pkg then select "Open" from the pop-up menu instead
of just double-clicking. An alternative is to lower the security settings by
changing "Allow applications downloaded from" to "Anywhere" in the General
"Security &amp; Privacy" System Preferences.
(<a href="https://support.apple.com/en-us/HT202491">Read here</a> or
<a href="http://news.softpedia.com/news/Fix-OS-X-Error-Application-Can-t-Be-Opened-Because-it-Is-from-an-Unidentified-Developer-407375.shtml">here</a>
for a full description.)</li></ul>
for a full description.) For MacOS 15, open the "Privacy &amp; Security" settings
and find the "Open Anyway" button in the Security section.
<br><br>Another possibility if you already have another version of ExifTool installed
is to remove the quarantine flag by running this command in a Terminal window,
allowing the installer to be launched:
<blockquote><pre class=code>exiftool -XAttrQuarantine= ExifTool-13.30.pkg</pre></blockquote>
or if you don't already have ExifTool installed, you can do this:
<blockquote><pre class=code>xattr -d com.apple.quarantine ExifTool-13.30.pkg</pre></blockquote>
Note that you should "cd" into the directory containing the package file
before running either of the above commands, or specify the full path name of
the package file.
</li></ul>
<h3><a name="uninstall_MacOS">Uninstalling</a></h3>
<ol type='i'>
@ -215,11 +216,11 @@ have the wrong "<code>lib</code>" folder.</li>
<ol>
<li><b>Download</b> the <b>Image-ExifTool distribution</b> from the <a href="index.html">ExifTool home page</a>
<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-12.76.tar.gz</code>".)</span></li>
<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-13.30.tar.gz</code>".)</span></li>
<li><b>Unpack the distribution</b> and <b>make it your current directory</b> by typing:
<pre class='code'> cd <i>&lt;your download directory&gt;</i>
gzip -dc Image-ExifTool-12.76.tar.gz | tar -xf -
cd Image-ExifTool-12.76
gzip -dc Image-ExifTool-13.30.tar.gz | tar -xf -
cd Image-ExifTool-13.30
</pre>
<span class=lt>(At this point you may run exiftool by typing
"<code>./exiftool <i>&lt;image file name&gt;</i></code>".)</span></li>

60
html/markers.svg Normal file
View File

@ -0,0 +1,60 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="90" height="200"
preserveAspectRatio="xMidYMid meet" viewBox="0 0 90 200">
<title>ExifTool Plot Markers</title>
<defs>
<marker id='mark0' markerWidth='8' markerHeight='8' refX='4' refY='4'>
<circle cx="4" cy="4" r="2.667" stroke="red" fill="none"/>
</marker>
<marker id='mark1' markerWidth='8' markerHeight='8' refX='4' refY='4'>
<path stroke="green" fill="none" d="M1.667 1.667 l4.667 0 0 4.667 -4.667 0 z"/>
</marker>
<marker id='mark2' markerWidth='8' markerHeight='8' refX='4' refY='4'>
<path stroke="blue" fill="none" d="M4 0.8 l2.667 5.333 -5.333 0 z"/>
</marker>
<marker id='mark3' markerWidth='8' markerHeight='8' refX='4' refY='4'>
<path stroke="black" fill="none" d="M4 1 l3 3 -3 3 -3 -3 z"/>
</marker>
<marker id='mark4' markerWidth='8' markerHeight='8' refX='4' refY='4'>
<path stroke="orange" fill="none" d="M4 0.8 L5 2.625 7.043 3.011 5.617 4.525 5.881 6.589 4 5.7 2.119 6.589 2.383 4.525 0.957 3.011 3 2.625 z"/>
</marker>
<marker id='mark5' markerWidth='8' markerHeight='8' refX='4' refY='4'>
<path stroke="gray" fill="none" d="M2.75 1 l2.5 0 0 1.75 1.75 0 0 2.5 -1.75 0 0 1.75 -2.5 0 0 -1.75 -1.75 0 0 -2.5 1.75 0 z"/>
</marker>
<marker id='mark6' markerWidth='8' markerHeight='8' refX='4' refY='4'>
<path stroke="fuchsia" fill="none" d="M4 1 L6.853 3.073 5.763 6.427 2.237 6.427 1.147 3.073 z"/>
</marker>
<marker id='mark7' markerWidth='8' markerHeight='8' refX='4' refY='4'>
<path stroke="brown" fill="none" d="M0.8 4 l5.333 2.667 0 -5.333 z"/>
</marker>
<marker id='mark8' markerWidth='8' markerHeight='8' refX='4' refY='4'>
<path stroke="turquoise" fill="none" d="M4 7.2 l2.667 -5.333 -5.333 0 z"/>
</marker>
<marker id='mark9' markerWidth='8' markerHeight='8' refX='4' refY='4'>
<path stroke="gold" fill="none" d="M7.2 4 l-5.333 2.667 0 -5.333 z"/>
</marker>
</defs>
<g dominant-baseline='middle' text-anchor='start' stroke-width='1.5'>
<path marker-end='url(#mark0)' stroke='red' d='M20 10 m-7 -1 m-5 0'/>
<text x='20' y='10'>circle</text>
<path marker-end='url(#mark1)' stroke='green' d='M20 30 m-7 -1 m-5 0'/>
<text x='20' y='30'>square</text>
<path marker-end='url(#mark2)' stroke='blue' d='M20 50 m-7 -1 m-5 0'/>
<text x='20' y='50'>triangle</text>
<path marker-end='url(#mark3)' stroke='black' d='M20 70 m-7 -1 m-5 0'/>
<text x='20' y='70'>diamond</text>
<path marker-end='url(#mark4)' stroke='orange' d='M20 90 m-7 -1 m-5 0'/>
<text x='20' y='90'>star</text>
<path marker-end='url(#mark5)' stroke='gray' d='M20 110 m-7 -1 m-5 0'/>
<text x='20' y='110'>plus</text>
<path marker-end='url(#mark6)' stroke='fuchsia' d='M20 130 m-7 -1 m-5 0'/>
<text x='20' y='130'>pentagon</text>
<path marker-end='url(#mark7)' stroke='brown' d='M20 150 m-7 -1 m-5 0'/>
<text x='20' y='150'>left</text>
<path marker-end='url(#mark8)' stroke='turquoise' d='M20 170 m-7 -1 m-5 0'/>
<text x='20' y='170'>down</text>
<path marker-end='url(#mark9)' stroke='gold' d='M20 190 m-7 -1 m-5 0'/>
<text x='20' y='190'>right</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

273
html/plot.html Normal file
View File

@ -0,0 +1,273 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>ExifTool Plot Feature</title>
<link rel=stylesheet type='text/css' href='style.css' title='Style'>
<style type="text/css">
<!--
pre { color: #800; margin-left: 4em }
.nr { white-space: nowrap }
.prog { padding: 0.5em; border: 1px solid gray; background: #fee }
.indent { margin-left: 22% }
-->
</style>
</head>
<body>
<h1>The ExifTool Plot Feature</h1>
<p>The <code>-plot</code> option of the exiftool application is used to generate
SVG-format output plot files from the values of tags. This feature has many uses,
including plotting timed metadata when combined with the <code>-ee</code>
(ExtractEmbedded) option, and plotting values of one or more tags across a set of
images.</p>
<p>Any tag with a numerical value may be plotted, including strings and lists of numbers.
Up to 20 datasets (eg. tags) may be plotted together in the same plot, except for
histogram plots which are limited to only one (but the <code>Multi</code> setting may be
used to draw multiple plots at once). Attempting to plot too many tags at once will result
in a warning and the extra datasets will be ignored. The X and Y scales are common to
all datasets within each plot (ie. multiple datasets in a single plot all use the same
scales).</p>
<p>The plot may be viewed by opening the SVG file in your favourite web browser or
SVG-aware image viewer. Most modern web browsers support display of SVG images.</p>
<p>Three basic plot types are provided: Line, Scatter and Histogram. Examples of each
are given in the <a href="#examples">Examples section</a> below.</p>
<h2>Plot Settings</h2>
<p>Plot settings are changed via the <a href="ExifTool.html#Plot">API Plot option</a>.
Multiple options may be set at the same time either by stringing them together in a
comma-separated list, or through multiple API Plot options.</p>
<p>The syntax for each setting is <code><i>NAME</i>=<i>VALUE</i></code>. Case is not
significant for setting names. Using <code><i>NAME</i>=</code> without a value sets the
value to <i>undef</i>. Using <code><i>NAME</i></code> alone sets the value to 1. For
example, to set the plot title and color for the first data line, a command could be:</p>
<pre>exiftool -plot -api plot="title=some title,cols=pink" ...</pre>
<blockquote>
<table class='norm'>
<tr><th colspan=6 bgcolor='#dddddd'><font size='+1'>ExifTool Plot Settings</font></th></tr>
<tr><th>Name</th><th>Description</th><th colspan=2>Value</th><th colspan=2>Default</th></tr>
<tr><td>Type</td><td>Type of plot</td>
<td align=center colspan=2>'Line', 'Scatter' or 'Histogram'&nbsp;<sup>1</sup></td>
<td align=center colspan=2>'Line'</td></tr>
<tr><td>Style</td><td>Style of plot data points</td>
<td align=center colspan=2>String of names:&nbsp;<sup>2,3</sup> 'Line', 'Marker' and/or 'Fill'</td>
<td align=center colspan=2>'Line+Fill'&nbsp;for&nbsp;Histogram plots,&nbsp;or&nbsp;'Line'&nbsp;otherwise</td></tr>
<tr><td>Title</td><td>Title of the plot</td>
<td align=center colspan=2>Any string&nbsp;<sup>4</sup></td>
<td align=center colspan=2>'' (auto-generated)&nbsp;<sup>5</sup></td></tr>
<tr><td>XLabel</td><td>X-axis label string</td>
<td align=center colspan=2>Any string&nbsp;<sup>4</sup></td>
<td align=center colspan=2>'' (auto-generated)&nbsp;<sup>5</sup></td></tr>
<tr><td>YLabel</td><td>Y-axis label string</td>
<td align=center colspan=2>Any string&nbsp;<sup>4</sup></td>
<td align=center colspan=2>'' (auto-generated)&nbsp;<sup>5</sup></td></tr>
<tr><td>XMin, XMax</td><td>X-axis minimum and maximum for Scatter and Histogram plot types</td>
<td align=center colspan=2>A number</td>
<td align=center colspan=2><i>undef</i> (autoscaling)</td></tr>
<tr><td>YMin, YMax</td><td>Y-axis minimum and maximum (the YMin setting does not apply to Histogram plots)</td>
<td align=center colspan=2>A number</td>
<td align=center colspan=2><i>undef</i> (autoscaling)</td></tr>
<tr><td>NBins</td><td>Number of bins for histogram plot</td>
<td align=center colspan=2>A number</td>
<td align=center colspan=2>'20'</td></tr>
<tr><td>Multi</td><td>Flag to draw multiple plots, one for each dataset</td>
<td align=center colspan=2>Number of plots per row in output image&nbsp;<sup>6</sup></td>
<td align=center colspan=2><i>undef</i></td></tr>
<tr><td>Split</td><td>Split strings of numbers into separate datasets</td>
<td align=center colspan=2>Number of datasets, or 1 to split all&nbsp;<sup>7</sup></td>
<td align=center colspan=2><i>undef</i></td></tr>
<tr><td>Size</td><td>Width and height of output image</td>
<td align=center colspan=2>String of 2 numbers&nbsp;<sup>2</sup></td>
<td align=center colspan=2>'800 600'</td></tr>
<tr><td>Margin</td><td>Left, right, top, bottom margins around plotting area</td>
<td align=center colspan=2>String of 4 numbers&nbsp;<sup>2</sup></td>
<td align=center colspan=2>'60 15 15 30'</td></tr>
<tr><td>Legend</td><td>X and Y shift of legend from default location</td>
<td align=center colspan=2>String of 2 numbers&nbsp;<sup>2</sup></td>
<td align=center colspan=2>'0 0'</td></tr>
<tr><td>TxtPad</td><td>Padding between text and X/Y scales</td>
<td align=center colspan=2>String of 2 numbers&nbsp;<sup>2</sup></td>
<td align=center colspan=2>'10 10'</td></tr>
<tr><td>LineSpacing</td><td>Text line spacing</td>
<td align=center colspan=2>A number</td>
<td align=center colspan=2>'20'</td></tr>
<tr><td>Stroke</td><td>Scaling factor for plot stroke width and marker size</td>
<td align=center colspan=2>A number</td>
<td align=center colspan=2>'1'</td></tr>
<tr><td>Marks</td><td>Marker characteristics for each dataset</td>
<td align=center>String of marker names (or 'none') with optional fill style, color and opacity&nbsp;<sup>2,8</sup></td>
<td rowspan=2 colspan=2><img alt="markers" src="markers.svg" width=90 height=200></td>
<td align=center>'circle square triangle diamond star plus pentagon left down right'</td></tr>
<tr><td>Cols</td><td>Colors of plot lines/markers for each dataset</td>
<td align=center>String of SVG color codes or 'none' for no line or marker border&nbsp;<sup>2</sup></td>
<td align=center>'red green blue black orange gray fuchsia brown turquoise gold'</td></tr>
<tr><td>Grid</td><td>Grid color</td>
<td align=center colspan=2>SVG color code</td>
<td align=center colspan=2>'darkgray'</td></tr>
<tr><td>Text</td><td>Color of text and plot border</td>
<td align=center colspan=2>SVG color code</td>
<td align=center colspan=2>'black'</td></tr>
<tr><td>Bkg</td><td>Background color</td>
<td align=center colspan=2>SVG color code or <i>undef</i></td>
<td align=center colspan=2><i>undef</i> (transparent)</td></tr>
</table>
</blockquote>
<p>Notes:</p>
<blockquote><table class='clear'>
<tr><td valign=top><sup>1</sup></td><td>The scatter plot uses the first specified
tag as the X coordinate and the remaining tags as the datasets for the Y values.</td></tr>
<tr><td valign=top><sup>2</sup></td><td>Strings of names or numbers may use
whitespace, slash (<code>/</code>) or a plus sign (<code>+</code>) as a
delimiter. The numbers themselves should not contain a plus sign. Numbers
may also use '<code>x</code>' as a delimiter (eg. '<code>size=320x200</code>').</td></tr>
<tr><td valign=top><sup>3</sup></td><td>The <code>Fill</code>
style applies only for the <code>Histogram</code> plot style, or when <code>Marker</code>
style is also used. Without <code>Fill</code>, histogram bars and markers are hollow.
<code>Line</code> and <code>Marker</code> may also be used together (eg. '<code>Style=Line+Marker</code>').
For brevity, only the first letter of each setting is required (eg. '<code>Style=L+M</code>').</td></tr>
<tr><td valign=top><sup>4</sup></td><td>Commas in labels must be escaped as either '<code>&amp;#44;</code>'
or '<code>&amp;#x2c;</code>'. No other characters require escaping, but other XML numeric
character references may be used.</td></tr>
<tr><td valign=top><sup>5</sup></td><td>The auto-generation of labels applies only in limited
situations, and may be disabled with <code><i>NAME</i>=</code>.</td></tr>
<tr><td valign=top><sup>6</sup></td><td>Multiple plots are draw together in the same SVG
image with the specified number of columns within the width of the output image. The image
height is adjusted to fit the required number of rows. The X axes of all plots are the
same, but the Y axes are independent. May be followed by the number of datasets
for each plot, using any separator. For example, '<code>Multi=1.3.3</code>' draws
the plots in a single column, with 3 datasets each in the first and second plots.
<a href='#EX5'>Example 5</a> shows a simple usage.</td></tr>
<tr><td valign=top><sup>7</sup></td><td>For example, if a tag contains a set of N accelerometer
readings, each composed of 3 values (X, Y and Z directions), then these could be plotted
as 3 separate datasets by setting <code>Split=3</code>. See <a href='#EX4'>example 4</a>
for a demonstration of the <code>Split</code> setting.</td></tr>
<tr><td valign=top><sup>8</sup></td><td>A value of 'none' may be used to override the plot
<code>Style</code> <code>Marker</code> setting to disable marks for a specific dataset.
For brevity, only the first letter of the marker name is required, except for 'star',
'pentagon', and 'down' which require 2 letters to distinguish them from 'square', 'plus'
and 'diamond' respectively. An optional fill style, color and opacity may be appended to
the marker name, separated by dashes. The fill style overrides the plot
<code>Style</code> <code>Fill</code> setting for the specific dataset, and may be 'Fill'
(or just 'F') for filled markers, or 'none' for hollow markers. Filled markers may also
specify a fill color and opacity (ranging from 1 to 100 percent). For example, to use a
right-pointing triangle for dataset 1, and the default marker with solid black fill for
dataset 3: '<code>marks=r++-f-black-100</code>'. The default opacity for marker and
histogram fill is 20% if they have a border, or 50% otherwise.</td></tr>
</table></blockquote>
<a name="examples"></a>
<h2>Examples</h2>
<a name="EX1"></a>
<h3>Example 1 - Line Plot</h3>
<p>The first example plots AmbientTemperature and CameraTemperature from a set of
images in a directory. The <code>-fileOrder</code> option is used to order the
files (and hence the data points) chronologically. Here is the command that was used:</p>
<pre>exiftool C:/pics "-*temperature" -plot -fileorder createdate > plot1.svg
</pre>
<p>And this is the resulting SVG plot (plot1.svg):</p>
<blockquote><img src="plot1.svg" alt="SVG-format plot" width=800 height=600></blockquote>
<a name="EX2"></a>
<h3>Example 2 - Histogram Plot</h3>
<p>This example shows a histogram of the number of pictures taken at different
focal lengths for a set of images. It also demonstrates the use of the
<a href="ExifTool.html#Plot">API Plot option</a> to change various plot settings.
The <code>YMax</code> setting was used to limit the Y scale because otherwise the
effect of the autoscaling with the tall 20-25 mm bar would have made the other bars
too small. With this rescaling, the 20-25 mm bar extends off the top of the plot.</p>
<p>The default histogram plot <code>Style</code> is <code>Line+Fill</code>. The fill
is partially transparent, with a default 20% opacity if the <code>Line</code> style is
used, or 50% otherwise, but this may be changed with the <code>Marks</code> setting.</p>
<p>Unlike the other plot types, the histogram type supports plotting of only
a single dataset (ie. only the first tag specified on the command line is used
unless the <code>Multi</code> plot setting is used to generate multiple plots).</p>
<p>The <code>-w</code> option was used to write the output file
(plot2.svg) instead of using shell redirection. Note that when the <code>-plot</code>
option is used, the <code>-w</code> option takes a full file name instead of
just an extension.</p>
<pre>exiftool C:/my_trip -focallength35efl# -w plot2.svg \
-api plot="type=hist,nbins=40,ymax=50,cols=blue"</pre>
<blockquote><img src="plot2.svg" alt="SVG-format plot" width=800 height=600></blockquote>
<a name="EX3"></a>
<h3>Example 3 - Scatter Plot</h3>
<p>This example uses the same data set as example 1, but using the <code>Scatter</code>
plot type to show the correlation betweent CameraTemperature and AmbientTemperature.
The first tag specified on the command line is the independent variable (plotted
along the X axis), and the rest are the dependent variables (Y axis). Note that
the legend doesn't appear in this plot because there is only one dependent
variable, so instead the Y-axis is labelled with its name.</p>
<p>The plot <code>Style</code>
has been changed to <code>Marker</code> to show markers for the data points
instead of connecting them with lines, and <code>Fill</code> has been added to
show filled markers instead of outlines. The fill is partially transparent with a
default opacity of 20%, but this has been changed to 10% via the <code>Marks</code>
setting so points which occur few times in the dataset will show a noticably lighter
color.</p>
<pre>exiftool C:/pics -w plot3.svg "-*temperature" -plot \
-api plot="type=scatter,style=marker+fill,stroke=1.5,marks=---10"</pre>
<blockquote><img src="plot3.svg" alt="SVG-format plot" width=800 height=600></blockquote>
<a name="EX4"></a>
<h3>Example 4 - Splitting Values</h3>
<p>To plot timed accelerometer readings from a video where the Accelerometer values are
strings of numbers, the <code>Split</code> setting of the
<a href="ExifTool.html#Plot">API Plot option</a> must be used to split the values into
separate lines in the plot. Here is an example of the first Accelerometer value in the
file:</p>
<pre><span class='blk'>&gt; </span>exiftool test.mp4 -ee -accelerometer -s2 --a
<span class='blk'>Accelerometer: +0.12 +0.96 -0.09</span></pre>
<p>And this command was used to generate the following plot:</p>
<pre>exiftool test.mp4 -w plot4.svg -ee -accelerometer -plot -api plot="split,legend=30 107" \
-api plot="title=Accelerometer Readings,ylabel=G Force,xlabel=Sample Number"
</pre>
<blockquote><img src="plot4.svg" alt="SVG-format plot" width=800 height=600></blockquote>
<a name="EX5"></a>
<h3>Example 5 - Multi Plots</h3>
<p>This example demonstrates the <code>Multi</code> setting to draw multiple
<code>Histogram</code> plots in 2 columns. The <a href="ExifTool.html#Filter">API Filter</a>
option is used to convert shutter speed from a value like 1/640 to 640 so the denominator
of the value is plotted.</p>
<pre>exiftool C:\my_trip -w! plot5.svg -fnumber -focallength35efl# -shutterspeed -iso -plot \
-api filter="s(1/)()" -api plot="multi=2,type=hist,style=fill,cols=green,ylabel="</pre>
<blockquote><img src="plot5.svg" alt="SVG-format plot" width=800 height=600></blockquote>
<hr>
<i>Created Feb 19, 2025</i><br>
<i>Last revised Mar 1, 2025</i><br>
<p class='lf'><a href="index.html">&lt;-- Back to ExifTool home page</a></p>
</body>
</html>

103
html/plot1.svg Normal file
View File

@ -0,0 +1,103 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="800" height="600"
preserveAspectRatio="xMidYMid meet" viewBox="0 0 800 600">
<title>Plot by ExifTool 13.22</title>
<!-- Definitions -->
<defs>
<clipPath id='plot-area'><rect x='54' y='9' width='737' height='567'/></clipPath>
</defs>
<style>
text { fill: black }
</style>
<!-- X axis -->
<g dominant-baseline='hanging' text-anchor='middle'>
<text x='60' y='580'>0</text>
<text x='97.8' y='580'>5</text>
<text x='135.5' y='580'>10</text>
<text x='173.3' y='580'>15</text>
<text x='211' y='580'>20</text>
<text x='248.8' y='580'>25</text>
<text x='286.6' y='580'>30</text>
<text x='324.3' y='580'>35</text>
<text x='362.1' y='580'>40</text>
<text x='399.8' y='580'>45</text>
<text x='437.6' y='580'>50</text>
<text x='475.4' y='580'>55</text>
<text x='513.1' y='580'>60</text>
<text x='550.9' y='580'>65</text>
<text x='588.6' y='580'>70</text>
<text x='626.4' y='580'>75</text>
<text x='664.2' y='580'>80</text>
<text x='701.9' y='580'>85</text>
<text x='739.7' y='580'>90</text>
<text x='777.4' y='580'>95</text>
<path stroke='darkgray' stroke-width='0.5' d='
M60 15 v560 M97.8 15 v560 M135.5 15 v560 M173.3 15 v560 M211 15 v560 M248.8 15 v560
M286.6 15 v560 M324.3 15 v560 M362.1 15 v560 M399.8 15 v560 M437.6 15 v560 M475.4 15 v560
M513.1 15 v560 M550.9 15 v560 M588.6 15 v560 M626.4 15 v560 M664.2 15 v560 M701.9 15 v560
M739.7 15 v560 M777.4 15 v560 '/>
</g>
<!-- Y axis -->
<g dominant-baseline='middle' text-anchor='end'>
<text x='50' y='570'>11</text>
<text x='50' y='540.8'>12</text>
<text x='50' y='511.6'>13</text>
<text x='50' y='482.4'>14</text>
<text x='50' y='453.2'>15</text>
<text x='50' y='423.9'>16</text>
<text x='50' y='394.7'>17</text>
<text x='50' y='365.5'>18</text>
<text x='50' y='336.3'>19</text>
<text x='50' y='307.1'>20</text>
<text x='50' y='277.9'>21</text>
<text x='50' y='248.7'>22</text>
<text x='50' y='219.5'>23</text>
<text x='50' y='190.3'>24</text>
<text x='50' y='161.1'>25</text>
<text x='50' y='131.8'>26</text>
<text x='50' y='102.6'>27</text>
<text x='50' y='73.4'>28</text>
<text x='50' y='44.2'>29</text>
<text x='50' y='15'>30</text>
<path stroke='darkgray' stroke-width='0.5' d='
M55 570 h730 M55 540.8 h730 M55 511.6 h730 M55 482.4 h730 M55 453.2 h730 M55 423.9 h730
M55 394.7 h730 M55 365.5 h730 M55 336.3 h730 M55 307.1 h730 M55 277.9 h730 M55 248.7 h730
M55 219.5 h730 M55 190.3 h730 M55 161.1 h730 M55 131.8 h730 M55 102.6 h730 M55 73.4 h730
M55 44.2 h730 M55 15 h730 '/>
</g>
<!-- Plot box and legend -->
<g dominant-baseline='middle' text-anchor='start'>
<path stroke='black' fill='none' d='M60 15 l0 555 725 0 0 -555 z'/>
<path stroke-width='2' stroke='red' d='M610 40 m-7 -1 l-20 0'/>
<text x='610' y='40'>AmbientTemperature</text>
<path stroke-width='2' stroke='green' d='M610 60 m-7 -1 l-20 0'/>
<text x='610' y='60'>CameraTemperature</text>
</g>
<!-- Datasets -->
<g fill='none' clip-path='url(#plot-area)' stroke-linejoin='round' stroke-linecap='round' stroke-width='1.5'>
<!-- AmbientTemperature -->
<path stroke='red' d='M
60 540.8 67.6 540.8 75.1 540.8 82.7 511.6 90.2 511.6 97.8 482.4 105.3 482.4 112.9 482.4 120.4 482.4 128 482.4
135.5 482.4 143.1 482.4 150.6 453.2 158.2 453.2 165.7 394.7 173.3 394.7 180.8 394.7 188.4 394.7 195.9 307.1 203.5 307.1
211 277.9 218.6 131.8 226.1 131.8 233.7 131.8 241.3 131.8 248.8 161.1 256.4 161.1 263.9 161.1 271.5 131.8 279 131.8
286.6 131.8 294.1 131.8 301.7 161.1 309.2 190.3 316.8 190.3 324.3 190.3 331.9 190.3 339.4 190.3 347 190.3 354.5 161.1
362.1 161.1 369.6 161.1 377.2 161.1 384.7 131.8 392.3 131.8 399.8 131.8 407.4 131.8 414.9 131.8 422.5 102.6 430.1 131.8
437.6 131.8 445.2 131.8 452.7 131.8 460.3 131.8 467.8 131.8 475.4 248.7 482.9 248.7 490.5 248.7 498 248.7 505.6 277.9
513.1 277.9 520.7 277.9 528.2 277.9 535.8 277.9 543.3 277.9 550.9 277.9 558.4 277.9 566 277.9 573.5 277.9 581.1 277.9
588.6 307.1 596.2 307.1 603.8 307.1 611.3 307.1 618.9 307.1 626.4 307.1 634 277.9 641.5 277.9 649.1 277.9 656.6 277.9
664.2 277.9 671.7 248.7 679.3 248.7 686.8 248.7 694.4 248.7 701.9 248.7 709.5 248.7 717 248.7 724.6 248.7 732.1 248.7
739.7 248.7 747.2 248.7 754.8 219.5 762.3 248.7 769.9 219.5 777.4 248.7 785 248.7'/>
<!-- CameraTemperature -->
<path stroke='green' d='M
60 453.2 67.6 453.2 75.1 423.9 82.7 423.9 90.2 423.9 97.8 394.7 105.3 394.7 112.9 394.7 120.4 394.7 128 394.7
135.5 394.7 143.1 394.7 150.6 365.5 158.2 365.5 165.7 307.1 173.3 307.1 180.8 307.1 188.4 307.1 195.9 219.5 203.5 219.5
211 190.3 218.6 44.2 226.1 44.2 233.7 44.2 241.3 44.2 248.8 73.4 256.4 73.4 263.9 73.4 271.5 73.4 279 44.2
286.6 44.2 294.1 44.2 301.7 73.4 309.2 102.6 316.8 102.6 324.3 102.6 331.9 102.6 339.4 102.6 347 102.6 354.5 73.4
362.1 73.4 369.6 73.4 377.2 73.4 384.7 44.2 392.3 44.2 399.8 44.2 407.4 44.2 414.9 44.2 422.5 44.2 430.1 44.2
437.6 44.2 445.2 44.2 452.7 44.2 460.3 44.2 467.8 44.2 475.4 161.1 482.9 161.1 490.5 161.1 498 161.1 505.6 219.5
513.1 190.3 520.7 190.3 528.2 219.5 535.8 219.5 543.3 219.5 550.9 190.3 558.4 190.3 566 190.3 573.5 190.3 581.1 190.3
588.6 219.5 596.2 219.5 603.8 219.5 611.3 219.5 618.9 219.5 626.4 219.5 634 190.3 641.5 190.3 649.1 190.3 656.6 190.3
664.2 190.3 671.7 161.1 679.3 161.1 686.8 161.1 694.4 161.1 701.9 161.1 709.5 161.1 717 161.1 724.6 161.1 732.1 161.1
739.7 161.1 747.2 161.1 754.8 131.8 762.3 161.1 769.9 131.8 777.4 161.1 785 161.1'/>
</g></svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

78
html/plot2.svg Normal file
View File

@ -0,0 +1,78 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="800" height="600"
preserveAspectRatio="xMidYMid meet" viewBox="0 0 800 600">
<title>Plot by ExifTool 13.22</title>
<!-- Definitions -->
<defs>
<clipPath id='plot-area'><rect x='74' y='9' width='717' height='547'/></clipPath>
</defs>
<style>
text { fill: black }
</style>
<!-- X axis -->
<g dominant-baseline='hanging' text-anchor='middle'>
<text x='432.5' y='580'>FocalLength35efl</text>
<text x='10' y='282.5' transform='rotate(-90,10,282.5)'>Count</text>
<text x='80' y='560'>20</text>
<text x='119.2' y='560'>30</text>
<text x='158.3' y='560'>40</text>
<text x='197.5' y='560'>50</text>
<text x='236.7' y='560'>60</text>
<text x='275.8' y='560'>70</text>
<text x='315' y='560'>80</text>
<text x='354.2' y='560'>90</text>
<text x='393.3' y='560'>100</text>
<text x='432.5' y='560'>110</text>
<text x='471.7' y='560'>120</text>
<text x='510.8' y='560'>130</text>
<text x='550' y='560'>140</text>
<text x='589.2' y='560'>150</text>
<text x='628.3' y='560'>160</text>
<text x='667.5' y='560'>170</text>
<text x='706.7' y='560'>180</text>
<text x='745.8' y='560'>190</text>
<text x='785' y='560'>200</text>
<path stroke='darkgray' stroke-width='0.5' d='
M80 15 v540 M99.6 15 v535 M119.2 15 v540 M138.8 15 v535 M158.3 15 v540 M177.9 15 v535
M197.5 15 v540 M217.1 15 v535 M236.7 15 v540 M256.3 15 v535 M275.8 15 v540 M295.4 15 v535
M315 15 v540 M334.6 15 v535 M354.2 15 v540 M373.8 15 v535 M393.3 15 v540 M412.9 15 v535
M432.5 15 v540 M452.1 15 v535 M471.7 15 v540 M491.3 15 v535 M510.8 15 v540 M530.4 15 v535
M550 15 v540 M569.6 15 v535 M589.2 15 v540 M608.8 15 v535 M628.3 15 v540 M647.9 15 v535
M667.5 15 v540 M687.1 15 v535 M706.7 15 v540 M726.3 15 v535 M745.8 15 v540 M765.4 15 v535
M785 15 v540 '/>
</g>
<!-- Y axis -->
<g dominant-baseline='middle' text-anchor='end'>
<text x='70' y='550'>0</text>
<text x='70' y='496.5'>5</text>
<text x='70' y='443'>10</text>
<text x='70' y='389.5'>15</text>
<text x='70' y='336'>20</text>
<text x='70' y='282.5'>25</text>
<text x='70' y='229'>30</text>
<text x='70' y='175.5'>35</text>
<text x='70' y='122'>40</text>
<text x='70' y='68.5'>45</text>
<text x='70' y='15'>50</text>
<path stroke='darkgray' stroke-width='0.5' d='
M75 550 h710 M75 496.5 h710 M75 443 h710 M75 389.5 h710 M75 336 h710 M75 282.5 h710
M75 229 h710 M75 175.5 h710 M75 122 h710 M75 68.5 h710 M75 15 h710 '/>
</g>
<!-- Plot box and legend -->
<g dominant-baseline='middle' text-anchor='start'>
<path stroke='black' fill='none' d='M80 15 l0 535 705 0 0 -535 z'/>
</g>
<!-- Datasets -->
<g fill='none' clip-path='url(#plot-area)' stroke-linejoin='round' stroke-linecap='round' stroke-width='1.5'>
<!-- FocalLength35efl -->
<path fill='blue' style='fill-opacity: 20%' stroke='blue' d='M
80 -2777.6 h19.58 L 99.6 357.4 h19.58 L 119.2 475.1 h19.58 L 138.8 303.9 h19.58 L 158.3 421.6 h19.58 L
177.9 378.8 h19.58 L 197.5 539.3 h19.58 L 217.1 432.3 h19.58 L 236.7 432.3 h19.58 L 256.3 432.3 h19.58 L
275.8 507.2 h19.58 L 295.4 464.4 h19.58 L 315 485.8 h19.58 L 334.6 485.8 h19.58 L 354.2 539.3 h19.58 L
373.8 539.3 h19.58 L 393.3 517.9 h19.58 L 412.9 507.2 h19.58 L 432.5 528.6 h19.58 L 452.1 517.9 h19.58 L
471.7 496.5 h19.58 L 491.3 550 h19.58 L 510.8 539.3 h19.58 L 530.4 550 h19.58 L 550 528.6 h19.58 L
569.6 539.3 h19.58 L 589.2 539.3 h19.58 L 608.8 550 h19.58 L 628.3 550 h19.58 L 647.9 550 h19.58 L
667.5 539.3 h19.58 L 687.1 550 h19.58 L 706.7 550 h19.58 L 726.3 550 h19.58 L 745.8 539.3 h19.58 L
765.4 314.6 h19.58 V550 H80 z'/>
</g></svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

87
html/plot3.svg Normal file
View File

@ -0,0 +1,87 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="800" height="600"
preserveAspectRatio="xMidYMid meet" viewBox="0 0 800 600">
<title>Plot by ExifTool 13.23</title>
<!-- Definitions -->
<defs>
<clipPath id='plot-area'><rect x='71' y='36' width='723' height='523'/></clipPath>
<marker id='mark0' markerWidth='8' markerHeight='8' refX='4' refY='4'>
<circle cx="4" cy="4" r="2.667" fill="red" style="fill-opacity: 10%" stroke='red'/>
</marker>
</defs>
<style>
path.mark0 { marker: url(#mark0) }
text { fill: black }
</style>
<!-- X axis -->
<g dominant-baseline='hanging' text-anchor='middle'>
<text x='432.5' y='14' font-size='150%'>CameraTemperature vs AmbientTemperature</text>
<text x='432.5' y='580'>AmbientTemperature</text>
<text x='10' y='297.5' transform='rotate(-90,10,297.5)'>CameraTemperature</text>
<text x='80' y='560'>11</text>
<text x='121.5' y='560'>12</text>
<text x='162.9' y='560'>13</text>
<text x='204.4' y='560'>14</text>
<text x='245.9' y='560'>15</text>
<text x='287.4' y='560'>16</text>
<text x='328.8' y='560'>17</text>
<text x='370.3' y='560'>18</text>
<text x='411.8' y='560'>19</text>
<text x='453.2' y='560'>20</text>
<text x='494.7' y='560'>21</text>
<text x='536.2' y='560'>22</text>
<text x='577.6' y='560'>23</text>
<text x='619.1' y='560'>24</text>
<text x='660.6' y='560'>25</text>
<text x='702.1' y='560'>26</text>
<text x='743.5' y='560'>27</text>
<text x='785' y='560'>28</text>
<path stroke='darkgray' stroke-width='0.5' d='
M80 45 v510 M121.5 45 v510 M162.9 45 v510 M204.4 45 v510 M245.9 45 v510 M287.4 45 v510
M328.8 45 v510 M370.3 45 v510 M411.8 45 v510 M453.2 45 v510 M494.7 45 v510 M536.2 45 v510
M577.6 45 v510 M619.1 45 v510 M660.6 45 v510 M702.1 45 v510 M743.5 45 v510 M785 45 v510 '/>
</g>
<!-- Y axis -->
<g dominant-baseline='middle' text-anchor='end'>
<text x='70' y='550'>14</text>
<text x='70' y='518.4'>15</text>
<text x='70' y='486.9'>16</text>
<text x='70' y='455.3'>17</text>
<text x='70' y='423.8'>18</text>
<text x='70' y='392.2'>19</text>
<text x='70' y='360.6'>20</text>
<text x='70' y='329.1'>21</text>
<text x='70' y='297.5'>22</text>
<text x='70' y='265.9'>23</text>
<text x='70' y='234.4'>24</text>
<text x='70' y='202.8'>25</text>
<text x='70' y='171.3'>26</text>
<text x='70' y='139.7'>27</text>
<text x='70' y='108.1'>28</text>
<text x='70' y='76.6'>29</text>
<text x='70' y='45'>30</text>
<path stroke='darkgray' stroke-width='0.5' d='
M75 550 h710 M75 518.4 h710 M75 486.9 h710 M75 455.3 h710 M75 423.8 h710 M75 392.2 h710
M75 360.6 h710 M75 329.1 h710 M75 297.5 h710 M75 265.9 h710 M75 234.4 h710 M75 202.8 h710
M75 171.3 h710 M75 139.7 h710 M75 108.1 h710 M75 76.6 h710 M75 45 h710 '/>
</g>
<!-- Plot box and legend -->
<g dominant-baseline='middle' text-anchor='start'>
<path stroke='black' fill='none' d='M80 45 l0 505 705 0 0 -505 z'/>
</g>
<!-- Datasets -->
<g fill='none' clip-path='url(#plot-area)' stroke-linejoin='round' stroke-linecap='round' stroke-width='2.25'>
<!-- CameraTemperature -->
<path class='mark0' stroke='red' d=' M
536.2 202.8 M 121.5 486.9 M 536.2 202.8 M 536.2 202.8 M 121.5 518.4 M 121.5 518.4 M 536.2 202.8 M 536.2 202.8 M 536.2 202.8 M 536.2 202.8 M
536.2 202.8 M 577.6 171.3 M 536.2 202.8 M 536.2 202.8 M 494.7 234.4 M 619.1 139.7 M 702.1 76.6 M 162.9 486.9 M 328.8 360.6 M 660.6 108.1 M
660.6 108.1 M 328.8 360.6 M 204.4 455.3 M 702.1 76.6 M 619.1 139.7 M 494.7 234.4 M 453.2 265.9 M 536.2 202.8 M 453.2 265.9 M 743.5 76.6 M
619.1 139.7 M 328.8 360.6 M 204.4 455.3 M 328.8 360.6 M 619.1 139.7 M 536.2 202.8 M 453.2 265.9 M 494.7 234.4 M 702.1 76.6 M 660.6 108.1 M
245.9 423.8 M 204.4 455.3 M 204.4 455.3 M 702.1 76.6 M 494.7 234.4 M 494.7 234.4 M 494.7 234.4 M 453.2 265.9 M 660.6 108.1 M 702.1 76.6 M
619.1 139.7 M 245.9 423.8 M 204.4 455.3 M 619.1 139.7 M 702.1 76.6 M 660.6 108.1 M 453.2 265.9 M 494.7 234.4 M 494.7 234.4 M 494.7 234.4 M
702.1 76.6 M 494.7 234.4 M 494.7 234.4 M 660.6 108.1 M 204.4 455.3 M 204.4 455.3 M 702.1 76.6 M 453.2 265.9 M 453.2 265.9 M 702.1 76.6 M
494.7 265.9 M 536.2 202.8 M 494.7 234.4 M 702.1 76.6 M 702.1 76.6 M 660.6 108.1 M 494.7 234.4 M 536.2 202.8 M 494.7 265.9 M 494.7 265.9 M
702.1 76.6 M 702.1 76.6 M 702.1 76.6 M 702.1 76.6 M 702.1 76.6 M 536.2 202.8 M 494.7 265.9 M 536.2 202.8 M 702.1 76.6 M 660.6 108.1 M
702.1 108.1 M 702.1 76.6 M 453.2 265.9 M 536.2 202.8 M 536.2 202.8 M 577.6 171.3 M 162.9 486.9'/>
</g></svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

121
html/plot4.svg Normal file
View File

@ -0,0 +1,121 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="800" height="600"
preserveAspectRatio="xMidYMid meet" viewBox="0 0 800 600">
<title>Accelerometer Readings</title>
<!-- Definitions -->
<defs>
<clipPath id='plot-area'><rect x='74' y='39' width='717' height='517'/></clipPath>
</defs>
<style>
text { fill: black }
</style>
<!-- X axis -->
<g dominant-baseline='hanging' text-anchor='middle'>
<text x='432.5' y='14' font-size='150%'>Accelerometer Readings</text>
<text x='432.5' y='580'>Sample Number</text>
<text x='10' y='297.5' transform='rotate(-90,10,297.5)'>G Force</text>
<text x='80' y='560'>0</text>
<text x='136.9' y='560'>10</text>
<text x='193.7' y='560'>20</text>
<text x='250.6' y='560'>30</text>
<text x='307.4' y='560'>40</text>
<text x='364.3' y='560'>50</text>
<text x='421.1' y='560'>60</text>
<text x='478' y='560'>70</text>
<text x='534.8' y='560'>80</text>
<text x='591.7' y='560'>90</text>
<text x='648.5' y='560'>100</text>
<text x='705.4' y='560'>110</text>
<text x='762.3' y='560'>120</text>
<path stroke='darkgray' stroke-width='0.5' d='
M80 45 v510 M108.4 45 v505 M136.9 45 v510 M165.3 45 v505 M193.7 45 v510 M222.1 45 v505
M250.6 45 v510 M279 45 v505 M307.4 45 v510 M335.8 45 v505 M364.3 45 v510 M392.7 45 v505
M421.1 45 v510 M449.6 45 v505 M478 45 v510 M506.4 45 v505 M534.8 45 v510 M563.3 45 v505
M591.7 45 v510 M620.1 45 v505 M648.5 45 v510 M677 45 v505 M705.4 45 v510 M733.8 45 v505
M762.3 45 v510 '/>
</g>
<!-- Y axis -->
<g dominant-baseline='middle' text-anchor='end'>
<text x='70' y='550'>-0.5</text>
<text x='70' y='520.3'>-0.4</text>
<text x='70' y='490.6'>-0.3</text>
<text x='70' y='460.9'>-0.2</text>
<text x='70' y='431.2'>-0.1</text>
<text x='70' y='401.5'>0</text>
<text x='70' y='371.8'>0.1</text>
<text x='70' y='342.1'>0.2</text>
<text x='70' y='312.4'>0.3</text>
<text x='70' y='282.6'>0.4</text>
<text x='70' y='252.9'>0.5</text>
<text x='70' y='223.2'>0.6</text>
<text x='70' y='193.5'>0.7</text>
<text x='70' y='163.8'>0.8</text>
<text x='70' y='134.1'>0.9</text>
<text x='70' y='104.4'>1</text>
<text x='70' y='74.7'>1.1</text>
<text x='70' y='45'>1.2</text>
<path stroke='black' d='M80 401.470588235294 h705'/>
<path stroke='darkgray' stroke-width='0.5' d='
M75 550 h710 M75 520.3 h710 M75 490.6 h710 M75 460.9 h710 M75 431.2 h710 M75 401.5 h710
M75 371.8 h710 M75 342.1 h710 M75 312.4 h710 M75 282.6 h710 M75 252.9 h710 M75 223.2 h710
M75 193.5 h710 M75 163.8 h710 M75 134.1 h710 M75 104.4 h710 M75 74.7 h710 M75 45 h710 '/>
</g>
<!-- Plot box and legend -->
<g dominant-baseline='middle' text-anchor='start'>
<path stroke='black' fill='none' d='M80 45 l0 505 705 0 0 -505 z'/>
<path stroke-width='2' stroke='red' d='M630 177 m-7 -1 l-20 0'/>
<text x='630' y='177'>Accelerometer[0]</text>
<path stroke-width='2' stroke='green' d='M630 197 m-7 -1 l-20 0'/>
<text x='630' y='197'>Accelerometer[1]</text>
<path stroke-width='2' stroke='blue' d='M630 217 m-7 -1 l-20 0'/>
<text x='630' y='217'>Accelerometer[2]</text>
</g>
<!-- Datasets -->
<g fill='none' clip-path='url(#plot-area)' stroke-linejoin='round' stroke-linecap='round' stroke-width='1.5'>
<!-- Accelerometer[0] -->
<path stroke='red' d='M
80 365.8 85.7 359.9 91.4 371.8 97.1 371.8 102.7 356.9 108.4 348 114.1 351 119.8 365.8 125.5 356.9 131.2 356.9
136.9 365.8 142.5 380.7 148.2 348 153.9 365.8 159.6 365.8 165.3 380.7 171 371.8 176.7 410.4 182.3 428.2 188 475.7
193.7 493.6 199.4 454.9 205.1 463.9 210.8 431.2 216.5 422.3 222.1 371.8 227.8 371.8 233.5 359.9 239.2 359.9 244.9 359.9
250.6 356.9 256.3 356.9 261.9 359.9 267.6 356.9 273.3 356.9 279 356.9 284.7 365.8 290.4 389.6 296 422.3 301.7 422.3
307.4 422.3 313.1 452 318.8 520.3 324.5 282.6 330.2 460.9 335.8 410.4 341.5 389.6 347.2 398.5 352.9 356.9 358.6 383.6
364.3 374.7 370 371.8 375.6 351 381.3 374.7 387 371.8 392.7 371.8 398.4 383.6 404.1 371.8 409.8 365.8 415.4 365.8
421.1 359.9 426.8 365.8 432.5 389.6 438.2 371.8 443.9 389.6 449.6 383.6 455.2 374.7 460.9 380.7 466.6 371.8 472.3 383.6
478 371.8 483.7 383.6 489.4 383.6 495 392.6 500.7 374.7 506.4 389.6 512.1 351 517.8 374.7 523.5 371.8 529.2 356.9
534.8 371.8 540.5 380.7 546.2 380.7 551.9 359.9 557.6 348 563.3 348 569 359.9 574.6 356.9 580.3 374.7 586 359.9
591.7 351 597.4 359.9 603.1 324.2 608.8 252.9 614.4 306.4 620.1 315.3 625.8 267.8 631.5 324.2 637.2 339.1 642.9 365.8
648.5 413.4 654.2 401.5 659.9 413.4 665.6 428.2 671.3 422.3 677 422.3 682.7 460.9 688.3 371.8 694 404.4 699.7 383.6
705.4 383.6 711.1 392.6 716.8 401.5 722.5 389.6 728.1 398.5 733.8 392.6 739.5 398.5 745.2 389.6 750.9 401.5 756.6 398.5
762.3 398.5 767.9 398.5 773.6 398.5 779.3 398.5 785 398.5'/>
<!-- Accelerometer[1] -->
<path stroke='green' d='M
80 116.3 85.7 119.3 91.4 116.3 97.1 119.3 102.7 116.3 108.4 110.4 114.1 116.3 119.8 116.3 125.5 119.3 131.2 116.3
136.9 125.2 142.5 101.4 148.2 125.2 153.9 125.2 159.6 125.2 165.3 119.3 171 137.1 176.7 119.3 182.3 116.3 188 119.3
193.7 119.3 199.4 116.3 205.1 116.3 210.8 110.4 216.5 110.4 222.1 110.4 227.8 116.3 233.5 116.3 239.2 116.3 244.9 104.4
250.6 110.4 256.3 110.4 261.9 116.3 267.6 119.3 273.3 116.3 279 125.2 284.7 119.3 290.4 125.2 296 119.3 301.7 119.3
307.4 125.2 313.1 137.1 318.8 92.5 324.5 119.3 330.2 125.2 335.8 110.4 341.5 125.2 347.2 92.5 352.9 104.4 358.6 104.4
364.3 110.4 370 110.4 375.6 110.4 381.3 95.5 387 119.3 392.7 104.4 398.4 116.3 404.1 101.4 409.8 95.5 415.4 86.6
421.1 125.2 426.8 125.2 432.5 134.1 438.2 104.4 443.9 119.3 449.6 119.3 455.2 104.4 460.9 119.3 466.6 125.2 472.3 119.3
478 110.4 483.7 110.4 489.4 116.3 495 110.4 500.7 95.5 506.4 134.1 512.1 92.5 517.8 134.1 523.5 110.4 529.2 116.3
534.8 119.3 540.5 104.4 546.2 95.5 551.9 125.2 557.6 125.2 563.3 125.2 569 104.4 574.6 110.4 580.3 119.3 586 119.3
591.7 116.3 597.4 104.4 603.1 110.4 608.8 143 614.4 137.1 620.1 134.1 625.8 62.8 631.5 134.1 637.2 149 642.9 110.4
648.5 149 654.2 101.4 659.9 119.3 665.6 125.2 671.3 116.3 677 119.3 682.7 77.7 688.3 119.3 694 119.3 699.7 116.3
705.4 116.3 711.1 110.4 716.8 116.3 722.5 116.3 728.1 116.3 733.8 116.3 739.5 116.3 745.2 116.3 750.9 119.3 756.6 119.3
762.3 110.4 767.9 110.4 773.6 110.4 779.3 116.3 785 116.3'/>
<!-- Accelerometer[2] -->
<path stroke='blue' d='M
80 428.2 85.7 428.2 91.4 428.2 97.1 422.3 102.7 431.2 108.4 437.1 114.1 422.3 119.8 419.3 125.5 410.4 131.2 389.6
136.9 383.6 142.5 404.4 148.2 383.6 153.9 359.9 159.6 356.9 165.3 380.7 171 392.6 176.7 401.5 182.3 413.4 188 398.5
193.7 380.7 199.4 401.5 205.1 446 210.8 452 216.5 475.7 222.1 484.6 227.8 463.9 233.5 454.9 239.2 437.1 244.9 437.1
250.6 431.2 256.3 428.2 261.9 419.3 267.6 413.4 273.3 413.4 279 410.4 284.7 410.4 290.4 392.6 296 371.8 301.7 374.7
307.4 342.1 313.1 431.2 318.8 404.4 324.5 454.9 330.2 392.6 335.8 404.4 341.5 460.9 347.2 463.9 352.9 469.8 358.6 469.8
364.3 460.9 370 446 375.6 419.3 381.3 422.3 387 437.1 392.7 454.9 398.4 475.7 404.1 469.8 409.8 460.9 415.4 460.9
421.1 469.8 426.8 469.8 432.5 443.1 438.2 428.2 443.9 419.3 449.6 437.1 455.2 437.1 460.9 437.1 466.6 446 472.3 443.1
478 443.1 483.7 437.1 489.4 413.4 495 437.1 500.7 422.3 506.4 475.7 512.1 443.1 517.8 446 523.5 419.3 529.2 431.2
534.8 428.2 540.5 428.2 546.2 422.3 551.9 437.1 557.6 413.4 563.3 446 569 431.2 574.6 428.2 580.3 428.2 586 401.5
591.7 398.5 597.4 392.6 603.1 413.4 608.8 428.2 614.4 410.4 620.1 380.7 625.8 413.4 631.5 389.6 637.2 410.4 642.9 422.3
648.5 437.1 654.2 410.4 659.9 398.5 665.6 404.4 671.3 392.6 677 398.5 682.7 339.1 688.3 422.3 694 413.4 699.7 422.3
705.4 428.2 711.1 431.2 716.8 422.3 722.5 428.2 728.1 413.4 733.8 413.4 739.5 410.4 745.2 398.5 750.9 431.2 756.6 431.2
762.3 431.2 767.9 431.2 773.6 437.1 779.3 431.2 785 431.2'/>
</g></svg>

After

Width:  |  Height:  |  Size: 7.6 KiB

230
html/plot5.svg Normal file
View File

@ -0,0 +1,230 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="800" height="600"
preserveAspectRatio="xMidYMid meet" viewBox="0 0 800 600">
<title>Plot by ExifTool 13.28</title>
<g transform='translate(0,0)'>
<!-- Definitions -->
<defs>
<clipPath id='plot-area'><rect x='54' y='9' width='337' height='247'/></clipPath>
</defs>
<style>
text { fill: black }
</style>
<!-- X axis -->
<g dominant-baseline='hanging' text-anchor='middle'>
<text x='222.5' y='280'>FNumber</text>
<text x='77.1' y='260'>2</text>
<text x='111.3' y='260'>3</text>
<text x='145.5' y='260'>4</text>
<text x='179.7' y='260'>5</text>
<text x='213.9' y='260'>6</text>
<text x='248.2' y='260'>7</text>
<text x='282.4' y='260'>8</text>
<text x='316.6' y='260'>9</text>
<text x='350.8' y='260'>10</text>
<text x='385' y='260'>11</text>
<path stroke='darkgray' stroke-width='0.5' d='
M60 15 v235 M77.1 15 v240 M94.2 15 v235 M111.3 15 v240 M128.4 15 v235 M145.5 15 v240
M162.6 15 v235 M179.7 15 v240 M196.8 15 v235 M213.9 15 v240 M231.1 15 v235 M248.2 15 v240
M265.3 15 v235 M282.4 15 v240 M299.5 15 v235 M316.6 15 v240 M333.7 15 v235 M350.8 15 v240
M367.9 15 v235 M385 15 v240 '/>
</g>
<!-- Y axis -->
<g dominant-baseline='middle' text-anchor='end'>
<text x='50' y='250'>0</text>
<text x='50' y='220.6'>5</text>
<text x='50' y='191.3'>10</text>
<text x='50' y='161.9'>15</text>
<text x='50' y='132.5'>20</text>
<text x='50' y='103.1'>25</text>
<text x='50' y='73.8'>30</text>
<text x='50' y='44.4'>35</text>
<text x='50' y='15'>40</text>
<path stroke='darkgray' stroke-width='0.5' d='
M55 250 h330 M55 220.6 h330 M55 191.3 h330 M55 161.9 h330 M55 132.5 h330 M55 103.1 h330
M55 73.8 h330 M55 44.4 h330 M55 15 h330 '/>
</g>
<!-- Plot box and legend -->
<g dominant-baseline='middle' text-anchor='start'>
<path stroke='black' fill='none' d='M60 15 l0 235 325 0 0 -235 z'/>
</g>
<!-- Datasets -->
<g fill='none' clip-path='url(#plot-area)' stroke-linejoin='round' stroke-linecap='round' stroke-width='1.5'>
<!-- FNumber -->
<path fill='green' style='fill-opacity: 50%' stroke='none' d=' M
60 85.5 h17.11 L 77.1 232.4 h17.11 L 94.2 79.6 h17.11 L 111.3 226.5 h17.11 L 128.4 220.6 h17.11 L
145.5 38.5 h17.11 L 162.6 214.8 h17.11 L 179.7 232.4 h17.11 L 196.8 238.3 h17.11 L 213.9 203 h17.11 L
231.1 250 h17.11 L 248.2 220.6 h17.11 L 265.3 250 h17.11 L 282.4 244.1 h17.11 L 299.5 250 h17.11 L
316.6 250 h17.11 L 333.7 250 h17.11 L 350.8 250 h17.11 L 367.9 244.1 h17.11 V250 H60 z'/>
</g>
</g>
<g transform='translate(400,0)'>
<!-- Definitions -->
<defs>
<clipPath id='plot-area'><rect x='54' y='9' width='337' height='247'/></clipPath>
</defs>
<style>
text { fill: black }
</style>
<!-- X axis -->
<g dominant-baseline='hanging' text-anchor='middle'>
<text x='222.5' y='280'>FocalLength35efl</text>
<text x='77.1' y='260'>20</text>
<text x='111.3' y='260'>40</text>
<text x='145.5' y='260'>60</text>
<text x='179.7' y='260'>80</text>
<text x='213.9' y='260'>100</text>
<text x='248.2' y='260'>120</text>
<text x='282.4' y='260'>140</text>
<text x='316.6' y='260'>160</text>
<text x='350.8' y='260'>180</text>
<text x='385' y='260'>200</text>
<path stroke='darkgray' stroke-width='0.5' d='
M60 15 v235 M77.1 15 v240 M94.2 15 v235 M111.3 15 v240 M128.4 15 v235 M145.5 15 v240
M162.6 15 v235 M179.7 15 v240 M196.8 15 v235 M213.9 15 v240 M231.1 15 v235 M248.2 15 v240
M265.3 15 v235 M282.4 15 v240 M299.5 15 v235 M316.6 15 v240 M333.7 15 v235 M350.8 15 v240
M367.9 15 v235 M385 15 v240 '/>
</g>
<!-- Y axis -->
<g dominant-baseline='middle' text-anchor='end'>
<text x='50' y='250'>0</text>
<text x='50' y='226.5'>10</text>
<text x='50' y='203'>20</text>
<text x='50' y='179.5'>30</text>
<text x='50' y='156'>40</text>
<text x='50' y='132.5'>50</text>
<text x='50' y='109'>60</text>
<text x='50' y='85.5'>70</text>
<text x='50' y='62'>80</text>
<text x='50' y='38.5'>90</text>
<text x='50' y='15'>100</text>
<path stroke='darkgray' stroke-width='0.5' d='
M55 250 h330 M55 226.5 h330 M55 203 h330 M55 179.5 h330 M55 156 h330 M55 132.5 h330
M55 109 h330 M55 85.5 h330 M55 62 h330 M55 38.5 h330 M55 15 h330 '/>
</g>
<!-- Plot box and legend -->
<g dominant-baseline='middle' text-anchor='start'>
<path stroke='black' fill='none' d='M60 15 l0 235 325 0 0 -235 z'/>
</g>
<!-- Datasets -->
<g fill='none' clip-path='url(#plot-area)' stroke-linejoin='round' stroke-linecap='round' stroke-width='1.5'>
<!-- FocalLength35efl -->
<path fill='green' style='fill-opacity: 50%' stroke='none' d=' M
60 245.3 h17.11 L 77.1 26.8 h17.11 L 94.2 231.2 h17.11 L 111.3 240.6 h17.11 L 128.4 240.6 h17.11 L
145.5 240.6 h17.11 L 162.6 247.7 h17.11 L 179.7 243 h17.11 L 196.8 243 h17.11 L 213.9 247.7 h17.11 L
231.1 247.7 h17.11 L 248.2 247.7 h17.11 L 265.3 250 h17.11 L 282.4 247.7 h17.11 L 299.5 250 h17.11 L
316.6 250 h17.11 L 333.7 250 h17.11 L 350.8 250 h17.11 L 367.9 243 h17.11 V250 H60 z'/>
</g>
</g>
<g transform='translate(0,300)'>
<!-- Definitions -->
<defs>
<clipPath id='plot-area'><rect x='54' y='9' width='337' height='247'/></clipPath>
</defs>
<style>
text { fill: black }
</style>
<!-- X axis -->
<g dominant-baseline='hanging' text-anchor='middle'>
<text x='222.5' y='280'>ShutterSpeed</text>
<text x='60' y='260'>0</text>
<text x='110.8' y='260'>500</text>
<text x='161.6' y='260'>1000</text>
<text x='212.3' y='260'>1500</text>
<text x='263.1' y='260'>2000</text>
<text x='313.9' y='260'>2500</text>
<text x='364.7' y='260'>3000</text>
<path stroke='darkgray' stroke-width='0.5' d='
M60 15 v240 M70.2 15 v235 M80.3 15 v235 M90.5 15 v235 M100.6 15 v235 M110.8 15 v240
M120.9 15 v235 M131.1 15 v235 M141.3 15 v235 M151.4 15 v235 M161.6 15 v240 M171.7 15 v235
M181.9 15 v235 M192 15 v235 M202.2 15 v235 M212.3 15 v240 M222.5 15 v235 M232.7 15 v235
M242.8 15 v235 M253 15 v235 M263.1 15 v240 M273.3 15 v235 M283.4 15 v235 M293.6 15 v235
M303.8 15 v235 M313.9 15 v240 M324.1 15 v235 M334.2 15 v235 M344.4 15 v235 M354.5 15 v235
M364.7 15 v240 M374.8 15 v235 M385 15 v235 '/>
</g>
<!-- Y axis -->
<g dominant-baseline='middle' text-anchor='end'>
<text x='50' y='250'>0</text>
<text x='50' y='216.4'>5</text>
<text x='50' y='182.9'>10</text>
<text x='50' y='149.3'>15</text>
<text x='50' y='115.7'>20</text>
<text x='50' y='82.1'>25</text>
<text x='50' y='48.6'>30</text>
<text x='50' y='15'>35</text>
<path stroke='darkgray' stroke-width='0.5' d='
M55 250 h330 M55 216.4 h330 M55 182.9 h330 M55 149.3 h330 M55 115.7 h330 M55 82.1 h330
M55 48.6 h330 M55 15 h330 '/>
</g>
<!-- Plot box and legend -->
<g dominant-baseline='middle' text-anchor='start'>
<path stroke='black' fill='none' d='M60 15 l0 235 325 0 0 -235 z'/>
</g>
<!-- Datasets -->
<g fill='none' clip-path='url(#plot-area)' stroke-linejoin='round' stroke-linecap='round' stroke-width='1.5'>
<!-- ShutterSpeed -->
<path fill='green' style='fill-opacity: 50%' stroke='none' d=' M
60 41.9 h10.16 L 70.2 75.4 h10.16 L 80.3 95.6 h10.16 L 90.5 203 h10.16 L 100.6 209.7 h10.16 L
110.8 209.7 h10.16 L 120.9 223.1 h10.16 L 131.1 236.6 h10.16 L 141.3 216.4 h10.16 L 151.4 229.9 h10.16 L
161.6 176.1 h10.16 L 171.7 243.3 h10.16 L 181.9 236.6 h10.16 L 192 243.3 h10.16 L 202.2 250 h10.16 L
212.3 250 h10.16 L 222.5 243.3 h10.16 L 232.7 250 h10.16 L 242.8 250 h10.16 L 253 250 h10.16 L
263.1 250 h10.16 L 273.3 250 h10.16 L 283.4 250 h10.16 L 293.6 243.3 h10.16 L 303.8 250 h10.16 L
313.9 250 h10.16 L 324.1 250 h10.16 L 334.2 250 h10.16 L 344.4 250 h10.16 L 354.5 250 h10.16 L
364.7 250 h10.16 L 374.8 243.3 h10.16 V250 H60 z'/>
</g>
</g>
<g transform='translate(400,300)'>
<!-- Definitions -->
<defs>
<clipPath id='plot-area'><rect x='54' y='9' width='337' height='247'/></clipPath>
</defs>
<style>
text { fill: black }
</style>
<!-- X axis -->
<g dominant-baseline='hanging' text-anchor='middle'>
<text x='222.5' y='280'>ISO</text>
<text x='60' y='260'>0</text>
<text x='125' y='260'>500</text>
<text x='190' y='260'>1000</text>
<text x='255' y='260'>1500</text>
<text x='320' y='260'>2000</text>
<text x='385' y='260'>2500</text>
<path stroke='darkgray' stroke-width='0.5' d='
M60 15 v240 M73 15 v235 M86 15 v235 M99 15 v235 M112 15 v235 M125 15 v240 M138 15 v235
M151 15 v235 M164 15 v235 M177 15 v235 M190 15 v240 M203 15 v235 M216 15 v235 M229 15 v235
M242 15 v235 M255 15 v240 M268 15 v235 M281 15 v235 M294 15 v235 M307 15 v235 M320 15 v240
M333 15 v235 M346 15 v235 M359 15 v235 M372 15 v235 M385 15 v240 '/>
</g>
<!-- Y axis -->
<g dominant-baseline='middle' text-anchor='end'>
<text x='50' y='250'>0</text>
<text x='50' y='223.9'>10</text>
<text x='50' y='197.8'>20</text>
<text x='50' y='171.7'>30</text>
<text x='50' y='145.6'>40</text>
<text x='50' y='119.4'>50</text>
<text x='50' y='93.3'>60</text>
<text x='50' y='67.2'>70</text>
<text x='50' y='41.1'>80</text>
<text x='50' y='15'>90</text>
<path stroke='darkgray' stroke-width='0.5' d='
M55 250 h330 M55 223.9 h330 M55 197.8 h330 M55 171.7 h330 M55 145.6 h330 M55 119.4 h330
M55 93.3 h330 M55 67.2 h330 M55 41.1 h330 M55 15 h330 '/>
</g>
<!-- Plot box and legend -->
<g dominant-baseline='middle' text-anchor='start'>
<path stroke='black' fill='none' d='M60 15 l0 235 325 0 0 -235 z'/>
</g>
<!-- Datasets -->
<g fill='none' clip-path='url(#plot-area)' stroke-linejoin='round' stroke-linecap='round' stroke-width='1.5'>
<!-- ISO -->
<path fill='green' style='fill-opacity: 50%' stroke='none' d=' M
60 184.7 h13 L 73 17.6 h13 L 86 236.9 h13 L 99 244.8 h13 L 112 247.4 h13 L
125 247.4 h13 L 138 244.8 h13 L 151 250 h13 L 164 250 h13 L 177 250 h13 L
190 242.2 h13 L 203 250 h13 L 216 250 h13 L 229 250 h13 L 242 250 h13 L
255 250 h13 L 268 247.4 h13 L 281 250 h13 L 294 250 h13 L 307 250 h13 L
320 247.4 h13 L 333 250 h13 L 346 250 h13 L 359 250 h13 L 372 247.4 h13 V250 H60 z'/>
</g>
</g></svg>

After

Width:  |  Height:  |  Size: 9.6 KiB

Some files were not shown because too many files have changed in this diff Show More