exiftool_vendored 12.16.0 → 12.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/Changes +137 -1
- data/bin/MANIFEST +12 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +44 -43
- data/bin/config_files/acdsee.config +193 -6
- data/bin/config_files/cuepointlist.config +70 -0
- data/bin/config_files/example.config +1 -8
- data/bin/exiftool +139 -98
- data/bin/fmt_files/gpx.fmt +1 -1
- data/bin/fmt_files/gpx_wpt.fmt +1 -1
- data/bin/fmt_files/kml.fmt +1 -1
- data/bin/fmt_files/kml_track.fmt +1 -1
- data/bin/lib/Image/ExifTool.pm +158 -49
- data/bin/lib/Image/ExifTool.pod +94 -75
- data/bin/lib/Image/ExifTool/Apple.pm +3 -2
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +25 -14
- data/bin/lib/Image/ExifTool/Canon.pm +28 -3
- data/bin/lib/Image/ExifTool/CanonCustom.pm +19 -1
- data/bin/lib/Image/ExifTool/DJI.pm +6 -6
- data/bin/lib/Image/ExifTool/DjVu.pm +6 -5
- data/bin/lib/Image/ExifTool/Exif.pm +50 -22
- data/bin/lib/Image/ExifTool/FITS.pm +13 -2
- data/bin/lib/Image/ExifTool/FujiFilm.pm +19 -8
- data/bin/lib/Image/ExifTool/GPS.pm +24 -13
- data/bin/lib/Image/ExifTool/H264.pm +20 -5
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +2 -2
- data/bin/lib/Image/ExifTool/JPEG.pm +6 -2
- data/bin/lib/Image/ExifTool/JSON.pm +24 -3
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +361 -16
- data/bin/lib/Image/ExifTool/M2TS.pm +40 -4
- data/bin/lib/Image/ExifTool/MIE.pm +2 -2
- data/bin/lib/Image/ExifTool/MRC.pm +341 -0
- data/bin/lib/Image/ExifTool/MWG.pm +3 -3
- data/bin/lib/Image/ExifTool/MXF.pm +1 -1
- data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
- data/bin/lib/Image/ExifTool/Microsoft.pm +298 -82
- data/bin/lib/Image/ExifTool/Nikon.pm +5 -5
- data/bin/lib/Image/ExifTool/NikonSettings.pm +25 -16
- data/bin/lib/Image/ExifTool/Olympus.pm +2 -2
- data/bin/lib/Image/ExifTool/PNG.pm +2 -2
- data/bin/lib/Image/ExifTool/Panasonic.pm +14 -1
- data/bin/lib/Image/ExifTool/PhaseOne.pm +4 -3
- data/bin/lib/Image/ExifTool/QuickTime.pm +148 -68
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +94 -34
- data/bin/lib/Image/ExifTool/README +5 -4
- data/bin/lib/Image/ExifTool/RIFF.pm +84 -12
- data/bin/lib/Image/ExifTool/Samsung.pm +2 -1
- data/bin/lib/Image/ExifTool/Shortcuts.pm +9 -0
- data/bin/lib/Image/ExifTool/Sony.pm +157 -49
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +1 -0
- data/bin/lib/Image/ExifTool/TagLookup.pm +4079 -3987
- data/bin/lib/Image/ExifTool/TagNames.pod +642 -273
- data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -0
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +44 -17
- data/bin/lib/Image/ExifTool/WriteXMP.pl +15 -8
- data/bin/lib/Image/ExifTool/Writer.pl +50 -14
- data/bin/lib/Image/ExifTool/XMP.pm +50 -11
- data/bin/perl-Image-ExifTool.spec +42 -42
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +52 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04f93501e7bd28d806651831606ad1d1822fd9fc430e73f47c54a8c6be3fd025
|
4
|
+
data.tar.gz: 2be10f782f703d5880106603936d5f00a508db219958a50d7dc66f29102c7ba3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 232066a679e6b866faad15144b640b047cf8cb9bfe67f3b5954f72c015b9b57f59662b0bb4e336f9ef2edaedf449012d4e8ab066e39a181e7c3bdb04b1f16b3f
|
7
|
+
data.tar.gz: '0585582d9a4c8a050982bec0e3e11cfaf7b702f733eff2338dbbdca3f49f73c5cccf73084c6cac300791d43baaccd7cdbcd3e5fa4bfa143facdd3a8e000e9c69'
|
data/bin/Changes
CHANGED
@@ -7,6 +7,140 @@ RSS feed: https://exiftool.org/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 12.16. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
9
9
|
|
10
|
+
Apr. 22, 2021 - Version 12.25
|
11
|
+
|
12
|
+
- JPEG XL support is now official
|
13
|
+
- Added read support for Medical Research Council (MRC) image files
|
14
|
+
- Added ability to write a number of 3gp tags in video files
|
15
|
+
- Added a new Sony PictureProfile value (thanks Jos Roost)
|
16
|
+
- Added a new Sony LensType (thanks LibRaw)
|
17
|
+
- Added a new Nikon LensID (thanks Niels Kristian Bech Jensen)
|
18
|
+
- Added a new Canon LensType
|
19
|
+
- Decode more GPS information from Blackvue dashcam videos
|
20
|
+
- Decode a couple of new NikonSettings tags (thanks Warren Hatch)
|
21
|
+
- Decode a few new RIFF tags
|
22
|
+
- Improved Validate option to add minor warning if standard XMP is missing
|
23
|
+
xpacket wrapper
|
24
|
+
- Avoid decoding some large arrays in DNG images to improve performance unless
|
25
|
+
the -m option is used
|
26
|
+
- Patched bug that could give runtime warning when trying to write an empty
|
27
|
+
XMP structure
|
28
|
+
- Fixed decoding of ImageWidth/Height for JPEG XL images
|
29
|
+
- Fixed problem were Microsoft Xtra tags couldn't be deleted
|
30
|
+
|
31
|
+
Apr. 13, 2021 - Version 12.24
|
32
|
+
|
33
|
+
- Added a new PhaseOne RawFormat value (thanks LibRaw)
|
34
|
+
- Decode a new Sony tag (thanks Jos Roost)
|
35
|
+
- Decode a few new Panasonic and FujiFilm tags (thanks LibRaw and Greybeard)
|
36
|
+
- Patched security vulnerability in DjVu reader
|
37
|
+
- Updated acdsee.config in distribution (thanks StarGeek)
|
38
|
+
- Recognize AutoCAD DXF files
|
39
|
+
- More work on experimental JUMBF read support
|
40
|
+
- More work on experimental JPEG XL read/write support
|
41
|
+
|
42
|
+
Apr. 1, 2021 - Version 12.23
|
43
|
+
|
44
|
+
- Added support for Olympus ORI files
|
45
|
+
- Added experimental read/write support for JPEG XL images
|
46
|
+
- Added experimental read support for JUMBF metadata in JPEG and Jpeg2000
|
47
|
+
images
|
48
|
+
- Added built-in support for parsing GPS track from Denver ACG-8050 videos
|
49
|
+
with the -ee option
|
50
|
+
- Added a some new Sony lenses (thanks Jos Roost and LibRaw)
|
51
|
+
- Changed priority of Samsung trailer tags so the first DepthMapImage takes
|
52
|
+
precedence when -a is not used
|
53
|
+
- Improved identification of M4A audio files
|
54
|
+
- Patched to avoid escaping ',' in "Binary data" message when -struct is used
|
55
|
+
- Removed Unknown flag from MXF VideoCodingSchemeID tag
|
56
|
+
- Fixed -forcewrite=EXIF to apply to EXIF in binary header of EPS files
|
57
|
+
- API Changes:
|
58
|
+
- Added BlockExtract option
|
59
|
+
|
60
|
+
Mar. 17, 2021 - Version 12.22
|
61
|
+
|
62
|
+
- Added a few new Sony LensTypes and a new SonyModelID (thanks Jos Roost and
|
63
|
+
LibRaw)
|
64
|
+
- Added Extra BaseName tag
|
65
|
+
- Added a new CanonModelID (thanks LibRaw)
|
66
|
+
- Decode timed GPS from unlisted programs in M2TS videos with the -ee3 option
|
67
|
+
- Decode more Sony rtmd tags
|
68
|
+
- Decode some tags for the Sony ILME-FX3 (thanks Jos Roost)
|
69
|
+
- Allow negative values to be written to XMP-aux:LensID
|
70
|
+
- Recognize HEVC video program in M2TS files
|
71
|
+
- Enhanced -b option so --b suppresses tags with binary data
|
72
|
+
- Improved flexibility when writing GPS coordinates:
|
73
|
+
- Now pulls latitude and longitude from a combined GPSCoordinates string
|
74
|
+
- Recognizes the full word "South" and "West" to write negative coordinates
|
75
|
+
- Improved warning when trying to write an integer QuickTime date/time tag and
|
76
|
+
Time::Local is not available
|
77
|
+
- Convert GPSSpeed from mph to km/h in timed GPS from Garmin MP4 videos
|
78
|
+
|
79
|
+
Feb. 24, 2021 - Version 12.21
|
80
|
+
|
81
|
+
- Added a few new iOS QuickTime tags
|
82
|
+
- Decode a couple more Sony rtmd tags
|
83
|
+
- Patch to avoid possible "Use of uninitialized value" warning when attempting
|
84
|
+
to write QuickTime date/time tags with an invalid value
|
85
|
+
- Fixed problem writing Microsoft Xtra tags
|
86
|
+
- Fixed Windows daylight savings time patch for file times that was broken in
|
87
|
+
12.19 (however directory times will not yet handle DST properly)
|
88
|
+
|
89
|
+
Feb. 23, 2021 - Version 12.20
|
90
|
+
|
91
|
+
- Added ability to write some Microsoft Xtra tags in MOV/MP4 videos
|
92
|
+
- Added two new Canon LensType values (thanks Norbert Wasser)
|
93
|
+
- Added a new Nikon LensID
|
94
|
+
- Fixed problem reading FITS comments that start before column 11
|
95
|
+
|
96
|
+
Feb. 18, 2021 - Version 12.19
|
97
|
+
|
98
|
+
- Added -list_dir option
|
99
|
+
- Added the "ls-l" Shortcut tag
|
100
|
+
- Extract Comment and History from FITS files
|
101
|
+
- Enhanced FilePermissions to include device type (similar to "ls -l")
|
102
|
+
- Changed the name of Apple ContentIdentifier tag to MediaGroupUUID
|
103
|
+
(thanks Neal Krawetz)
|
104
|
+
- Fixed a potential "substr outside of string" runtime error when reading
|
105
|
+
corrupted EXIF
|
106
|
+
- Fixed edge case where NikonScanIFD may not be copied properly when copying
|
107
|
+
MakerNotes to another file
|
108
|
+
- API Changes:
|
109
|
+
- Added ability to read/write System tags of directories
|
110
|
+
- Enhanced GetAllGroups() to support family 7 and take optional ExifTool
|
111
|
+
reference
|
112
|
+
- Changed QuickTimeHandler option default to 1
|
113
|
+
|
114
|
+
Feb. 9, 2021 - Version 12.18
|
115
|
+
|
116
|
+
- Added a new SonyModelID
|
117
|
+
- Decode a number of Sony tags for the ILCE-1 (thanks Jos Roost)
|
118
|
+
- Decode a couple of new Canon tags (thanks LibRaw)
|
119
|
+
- Patched to read differently formatted UserData:Keywords as written by iPhone
|
120
|
+
- Patched to tolerate out-of-order Nikon MakerNote IFD entries when obtaining
|
121
|
+
tags necessary for decryption
|
122
|
+
- Fixed a few possible Condition warnings for some NikonSettings tags
|
123
|
+
|
124
|
+
Feb. 3, 2021 - Version 12.17
|
125
|
+
|
126
|
+
- Added a new Canon FocusMode value
|
127
|
+
- Added a new FujiFilm FilmMode value
|
128
|
+
- Added a number of new XMP-crs tags (thanks Herb)
|
129
|
+
- Decode a new H264 MDPM tag
|
130
|
+
- Allow non-conforming lower-case XMP boolean "true" and "false" values to be
|
131
|
+
written, but only when print conversion is disabled
|
132
|
+
- Improved Validate option to warn about non-capitalized boolean XMP values
|
133
|
+
- Improved logic for setting GPSLatitude/LongitudeRef values when writing
|
134
|
+
- Changed -json and -php options so the -a option is implied even without the
|
135
|
+
-g option
|
136
|
+
- Avoid extracting audio/video data from AVI videos when -ee -u is used
|
137
|
+
- Patched decoding of Canon ContinuousShootingSpeed for newer firmware
|
138
|
+
versions of the EOS-1DXmkIII
|
139
|
+
- Re-worked LensID patch of version 12.00 (github issue #51)
|
140
|
+
- Fixed a few typos in newly-added NikonSettings tags (thanks Herb)
|
141
|
+
- Fixed problem where group could not be specified for PNG-pHYs tags when
|
142
|
+
writing
|
143
|
+
|
10
144
|
Jan. 21, 2021 - Version 12.16 (production release)
|
11
145
|
|
12
146
|
- Extract another form of video subtitle text
|
@@ -14,6 +148,8 @@ Jan. 21, 2021 - Version 12.16 (production release)
|
|
14
148
|
stream in MP4 files
|
15
149
|
- Changed a Nikon FlashMode value
|
16
150
|
- Fixed problem that caused a failed DPX test on Strawberry Perl
|
151
|
+
- API Changes:
|
152
|
+
- Enhanced ExtractEmbedded option
|
17
153
|
|
18
154
|
Jan. 18, 2021 - Version 12.15 (production release)
|
19
155
|
|
@@ -220,7 +356,7 @@ July 27, 2020 - Version 12.02
|
|
220
356
|
- Improved decoding of some Canon EOS 1DXmkIII custom functions
|
221
357
|
- Allow integer QuickTime TrackNumber and DiskNumber values
|
222
358
|
- Relax validity check of QuickTime:ContentCreateDate when writing with -n
|
223
|
-
- Removed "Com" from the start of some unknown ItemList tag names
|
359
|
+
- Removed "Com" from the start of some unknown QuickTime ItemList tag names
|
224
360
|
- Patched CanonCustom decoding for bug in Canon EOS-1DX firmware
|
225
361
|
- Changed QuickTime CleanAperture tags decode as signed rationals
|
226
362
|
|
data/bin/MANIFEST
CHANGED
@@ -19,6 +19,7 @@ config_files/acdsee.config
|
|
19
19
|
config_files/age.config
|
20
20
|
config_files/bibble.config
|
21
21
|
config_files/convert_regions.config
|
22
|
+
config_files/cuepointlist.config
|
22
23
|
config_files/depthmap.config
|
23
24
|
config_files/example.config
|
24
25
|
config_files/fotoware.config
|
@@ -104,6 +105,7 @@ html/TagNames/MOI.html
|
|
104
105
|
html/TagNames/MPC.html
|
105
106
|
html/TagNames/MPEG.html
|
106
107
|
html/TagNames/MPF.html
|
108
|
+
html/TagNames/MRC.html
|
107
109
|
html/TagNames/MWG.html
|
108
110
|
html/TagNames/MXF.html
|
109
111
|
html/TagNames/MacOS.html
|
@@ -326,6 +328,7 @@ lib/Image/ExifTool/MOI.pm
|
|
326
328
|
lib/Image/ExifTool/MPC.pm
|
327
329
|
lib/Image/ExifTool/MPEG.pm
|
328
330
|
lib/Image/ExifTool/MPF.pm
|
331
|
+
lib/Image/ExifTool/MRC.pm
|
329
332
|
lib/Image/ExifTool/MWG.pm
|
330
333
|
lib/Image/ExifTool/MXF.pm
|
331
334
|
lib/Image/ExifTool/MacOS.pm
|
@@ -601,6 +604,9 @@ t/JSON_2.out
|
|
601
604
|
t/JVC.t
|
602
605
|
t/JVC_2.out
|
603
606
|
t/JVC_3.out
|
607
|
+
t/JXL.t
|
608
|
+
t/JXL_2.out
|
609
|
+
t/JXL_3.out
|
604
610
|
t/Jpeg2000.t
|
605
611
|
t/Jpeg2000_2.out
|
606
612
|
t/Jpeg2000_3.out
|
@@ -647,6 +653,8 @@ t/MOI.t
|
|
647
653
|
t/MOI_2.out
|
648
654
|
t/MP3.t
|
649
655
|
t/MP3_2.out
|
656
|
+
t/MRC.t
|
657
|
+
t/MRC_2.out
|
650
658
|
t/MWG.t
|
651
659
|
t/MWG_2.out
|
652
660
|
t/MWG_3.out
|
@@ -759,6 +767,8 @@ t/QuickTime_12.out
|
|
759
767
|
t/QuickTime_13.out
|
760
768
|
t/QuickTime_14.out
|
761
769
|
t/QuickTime_15.out
|
770
|
+
t/QuickTime_16.out
|
771
|
+
t/QuickTime_17.out
|
762
772
|
t/QuickTime_2.out
|
763
773
|
t/QuickTime_3.out
|
764
774
|
t/QuickTime_4.out
|
@@ -1001,6 +1011,7 @@ t/images/InDesign.indd
|
|
1001
1011
|
t/images/JSON.json
|
1002
1012
|
t/images/JVC.jpg
|
1003
1013
|
t/images/JVC2.jpg
|
1014
|
+
t/images/JXL.jxl
|
1004
1015
|
t/images/Jpeg2000.j2c
|
1005
1016
|
t/images/Jpeg2000.jp2
|
1006
1017
|
t/images/Kodak.jpg
|
@@ -1012,6 +1023,7 @@ t/images/MIE.mie
|
|
1012
1023
|
t/images/MIFF.miff
|
1013
1024
|
t/images/MOI.moi
|
1014
1025
|
t/images/MP3.mp3
|
1026
|
+
t/images/MRC.mrc
|
1015
1027
|
t/images/MWG.jpg
|
1016
1028
|
t/images/MXF.mxf
|
1017
1029
|
t/images/MacOS.macos
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -14,47 +14,47 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
14
14
|
|
15
15
|
File Types
|
16
16
|
------------+-------------+-------------+-------------+------------
|
17
|
-
360 r/w | DPX r | ITC r |
|
18
|
-
3FR r | DR4 r/w/c | J2C r |
|
19
|
-
3G2 r/w | DSS r | JNG r/w |
|
20
|
-
3GP r/w | DV r | JP2 r/w |
|
21
|
-
A r | DVB r/w | JPEG r/w |
|
22
|
-
AA r | DVR-MS r | JSON r |
|
23
|
-
AAE r | DYLIB r |
|
24
|
-
AAX r/w | EIP r |
|
25
|
-
ACR r | EPS r/w |
|
26
|
-
AFM r | EPUB r |
|
27
|
-
AI r/w | ERF r/w |
|
28
|
-
AIFF r | EXE r |
|
29
|
-
APE r | EXIF r/w/c |
|
30
|
-
ARQ r/w | EXR r |
|
31
|
-
ARW r/w | EXV r/w/c |
|
32
|
-
ASF r | F4A/V r/w |
|
33
|
-
AVI r | FFF r/w |
|
34
|
-
AVIF r/w | FITS r |
|
35
|
-
AZW r | FLA r |
|
36
|
-
BMP r | FLAC r |
|
37
|
-
BPG r | FLIF r/w |
|
38
|
-
BTF r | FLV r |
|
39
|
-
CHM r | FPF r |
|
40
|
-
COS r | FPX r |
|
41
|
-
CR2 r/w | GIF r/w |
|
42
|
-
CR3 r/w | GPR r/w |
|
43
|
-
CRM r/w | GZ r |
|
44
|
-
CRW r/w | HDP r/w |
|
45
|
-
CS1 r/w | HDR r |
|
46
|
-
CSV r | HEIC r/w |
|
47
|
-
CZI r | HEIF r/w |
|
48
|
-
DCM r | HTML r |
|
49
|
-
DCP r/w | ICC r/w/c |
|
50
|
-
DCR r | ICS r |
|
51
|
-
DFONT r | IDML r |
|
52
|
-
DIVX r | IIQ r/w |
|
53
|
-
DJVU r | IND r/w |
|
54
|
-
DLL r | INSP r/w |
|
55
|
-
DNG r/w | INSV r |
|
56
|
-
DOC r | INX r |
|
57
|
-
DOCX r | ISO r |
|
17
|
+
360 r/w | DPX r | ITC r | NUMBERS r | RAM r
|
18
|
+
3FR r | DR4 r/w/c | J2C r | O r | RAR r
|
19
|
+
3G2 r/w | DSS r | JNG r/w | ODP r | RAW r/w
|
20
|
+
3GP r/w | DV r | JP2 r/w | ODS r | RIFF r
|
21
|
+
A r | DVB r/w | JPEG r/w | ODT r | RSRC r
|
22
|
+
AA r | DVR-MS r | JSON r | OFR r | RTF r
|
23
|
+
AAE r | DYLIB r | JXL r | OGG r | RW2 r/w
|
24
|
+
AAX r/w | EIP r | K25 r | OGV r | RWL r/w
|
25
|
+
ACR r | EPS r/w | KDC r | ONP r | RWZ r
|
26
|
+
AFM r | EPUB r | KEY r | OPUS r | RM r
|
27
|
+
AI r/w | ERF r/w | LA r | ORF r/w | SEQ r
|
28
|
+
AIFF r | EXE r | LFP r | ORI r/w | SKETCH r
|
29
|
+
APE r | EXIF r/w/c | LNK r | OTF r | SO r
|
30
|
+
ARQ r/w | EXR r | LRV r/w | PAC r | SR2 r/w
|
31
|
+
ARW r/w | EXV r/w/c | M2TS r | PAGES r | SRF r
|
32
|
+
ASF r | F4A/V r/w | M4A/V r/w | PBM r/w | SRW r/w
|
33
|
+
AVI r | FFF r/w | MACOS r | PCD r | SVG r
|
34
|
+
AVIF r/w | FITS r | MAX r | PCX r | SWF r
|
35
|
+
AZW r | FLA r | MEF r/w | PDB r | THM r/w
|
36
|
+
BMP r | FLAC r | MIE r/w/c | PDF r/w | TIFF r/w
|
37
|
+
BPG r | FLIF r/w | MIFF r | PEF r/w | TORRENT r
|
38
|
+
BTF r | FLV r | MKA r | PFA r | TTC r
|
39
|
+
CHM r | FPF r | MKS r | PFB r | TTF r
|
40
|
+
COS r | FPX r | MKV r | PFM r | TXT r
|
41
|
+
CR2 r/w | GIF r/w | MNG r/w | PGF r | VCF r
|
42
|
+
CR3 r/w | GPR r/w | MOBI r | PGM r/w | VRD r/w/c
|
43
|
+
CRM r/w | GZ r | MODD r | PLIST r | VSD r
|
44
|
+
CRW r/w | HDP r/w | MOI r | PICT r | WAV r
|
45
|
+
CS1 r/w | HDR r | MOS r/w | PMP r | WDP r/w
|
46
|
+
CSV r | HEIC r/w | MOV r/w | PNG r/w | WEBP r
|
47
|
+
CZI r | HEIF r/w | MP3 r | PPM r/w | WEBM r
|
48
|
+
DCM r | HTML r | MP4 r/w | PPT r | WMA r
|
49
|
+
DCP r/w | ICC r/w/c | MPC r | PPTX r | WMV r
|
50
|
+
DCR r | ICS r | MPG r | PS r/w | WTV r
|
51
|
+
DFONT r | IDML r | MPO r/w | PSB r/w | WV r
|
52
|
+
DIVX r | IIQ r/w | MQV r/w | PSD r/w | X3F r/w
|
53
|
+
DJVU r | IND r/w | MRC r | PSP r | XCF r
|
54
|
+
DLL r | INSP r/w | MRW r/w | QTIF r/w | XLS r
|
55
|
+
DNG r/w | INSV r | MXF r | R3D r | XLSX r
|
56
|
+
DOC r | INX r | NEF r/w | RA r | XMP r/w/c
|
57
|
+
DOCX r | ISO r | NRW r/w | RAF r/w | ZIP r
|
58
58
|
|
59
59
|
Meta Information
|
60
60
|
----------------------+----------------------+---------------------
|
@@ -106,8 +106,8 @@ your home directory, then you would type the following commands in a
|
|
106
106
|
terminal window to extract and run ExifTool:
|
107
107
|
|
108
108
|
cd ~/Desktop
|
109
|
-
gzip -dc Image-ExifTool-12.
|
110
|
-
cd Image-ExifTool-12.
|
109
|
+
gzip -dc Image-ExifTool-12.25.tar.gz | tar -xf -
|
110
|
+
cd Image-ExifTool-12.25
|
111
111
|
./exiftool t/images/ExifTool.jpg
|
112
112
|
|
113
113
|
Note: These commands extract meta information from one of the test images.
|
@@ -194,6 +194,7 @@ distribution package:
|
|
194
194
|
age.config - Calculate Age of person in photo
|
195
195
|
bibble.config - Definitions for writing Bibble XMP tags
|
196
196
|
convert_regions.config - Convert between MWG, MP and IPTC regions
|
197
|
+
cuepointlist.config - Extract cue points and labels as a list
|
197
198
|
depthmap.config - Extract Google DepthMap images
|
198
199
|
example.config - General example showing config features
|
199
200
|
fotoware.config - Definitions for writing Fotoware XMP tags
|
@@ -2,20 +2,76 @@
|
|
2
2
|
# File: acdsee.config
|
3
3
|
#
|
4
4
|
# Description: This config file defines ACDSee XMP region tags for writing.
|
5
|
+
# The following tags are created in the XMP-acdsee-rs group
|
5
6
|
#
|
6
|
-
#
|
7
|
+
# RegionInfoACDSee : The structured tag for the ACDSee regions
|
8
|
+
# (similar to XMP-mwg-rs:RegionInfo)
|
9
|
+
#
|
10
|
+
# The following tags are the width, height, and unit of the
|
11
|
+
# image at the time of processing when storing image region
|
12
|
+
# metadata. They are similar to the AppliedToDimensions tags
|
13
|
+
# of the MWG regions.
|
14
|
+
# ACDSeeRegionAppliedToDimensionsH : Height of the image
|
15
|
+
# ACDSeeRegionAppliedToDimensionsUnit : Unit of the image
|
16
|
+
# ACDSeeRegionAppliedToDimensionsW : Width of the image
|
17
|
+
#
|
18
|
+
# Actual region data, stored in an array. These flattened tags
|
19
|
+
# are treated as List Type tags. There are two region types,
|
20
|
+
# the ALYArea and the DLYArea. The ALYArea tags tags assigned
|
21
|
+
# by ACDSee and are usually square in dimensions. The DLYArea
|
22
|
+
# tags are both the tags assigned by ACDSee (but possibly
|
23
|
+
# rectangular instead of square) as well as any manual
|
24
|
+
# assigned tags. They are similar to the area tags of the MWG
|
25
|
+
# regions.
|
26
|
+
# ACDSeeRegionDLYAreaH : Height of DLY region
|
27
|
+
# ACDSeeRegionDLYAreaW : Width of DLY region
|
28
|
+
# ACDSeeRegionDLYAreaX : X centerpoint of DLY region
|
29
|
+
# ACDSeeRegionDLYAreaY : Y centerpoint of DLY region
|
30
|
+
# ACDSeeRegionALYAreaH : Height of ALY region
|
31
|
+
# ACDSeeRegionALYAreaW : Width of ALY region
|
32
|
+
# ACDSeeRegionALYAreaX : X centerpoint of ALY region
|
33
|
+
# ACDSeeRegionALYAreaY : Y centerpoint of ALY region
|
34
|
+
# ACDSeeRegionName : Name of region
|
35
|
+
# ACDSeeRegionType : Type of region
|
36
|
+
# ACDSeeRegionNameAssignType : How the type was assigned.
|
37
|
+
# "Manual" is the only known
|
38
|
+
# entry at this time
|
39
|
+
#
|
40
|
+
# Conversion tags. These tags can be used to convert other region
|
41
|
+
# type tags to ACDSee regions.
|
42
|
+
# MPRegion2ACDSeeRegion : Converts a Microsoft RegionInfoMP
|
43
|
+
# IPTCRegion2ACDSeeRegion : Converts an IPTC ImageRegion
|
44
|
+
# MWGRegion2ACDSeeRegion : Converts a MWG RegionInfo
|
45
|
+
#
|
46
|
+
# Usage: To set individual tags
|
47
|
+
# exiftool -config acdsee.config -ACDSEETAG=VALUE FILE ...
|
48
|
+
#
|
49
|
+
# To convert Microsoft Regions to ACDSee regions
|
50
|
+
# exiftool -config acdsee.config "-RegionInfoACDSee<MPRegion2ACDSeeRegion" File ...
|
51
|
+
# To convert IPTC regions to ACDSee regions
|
52
|
+
# exiftool -config acdsee.config "-RegionInfoACDSee<IPTCRegion2ACDSeeRegion" File ...
|
53
|
+
# To convert MWG Regions to ACDSee regions
|
54
|
+
# exiftool -config acdsee.config "-RegionInfoACDSee<MWGRegion2ACDSeeRegion" File ...
|
7
55
|
#
|
8
56
|
# Requires: ExifTool version 10.28 or later
|
9
57
|
#
|
10
58
|
# Revisions: 2020/01/28 - Bryan K. Williams (aka StarGeek) Created
|
59
|
+
# 2021/04/08 - BKW Added tags to convert from Microsoft, IPTC,
|
60
|
+
# and MWG regions to ACDSee regions based upon
|
61
|
+
# convert_regions.config. Expanded docs.
|
62
|
+
# Shortened ADCSee tag names and added shortcuts
|
63
|
+
# from original names to new names, for example
|
64
|
+
# "RegionInfoACDSeeAppliedToDimensions*" -> "ACDSeeRegionAppliedToDimensions*"
|
65
|
+
# "RegionInfoACDSeeRegionList* -> "ACDSeeRegion*"
|
11
66
|
#------------------------------------------------------------------------------
|
67
|
+
use Data::Dumper;
|
12
68
|
|
13
69
|
my %sACDSeeDimensions = (
|
14
70
|
STRUCT_NAME => 'ACDSee Dimensions',
|
15
71
|
NAMESPACE => {'acdsee-stDim' => 'http://ns.acdsee.com/sType/Dimensions#'},
|
16
|
-
'w'
|
17
|
-
'h'
|
18
|
-
'unit'
|
72
|
+
'w' => { Writable => 'real' },
|
73
|
+
'h' => { Writable => 'real' },
|
74
|
+
'unit' => { },
|
19
75
|
);
|
20
76
|
|
21
77
|
my %sACDSeeArea = (
|
@@ -38,7 +94,7 @@ my %sACDSeeRegionStruct = (
|
|
38
94
|
);
|
39
95
|
|
40
96
|
%Image::ExifTool::UserDefined = (
|
41
|
-
# new XMP namespaces
|
97
|
+
# new XMP namespaces for ACDSee regions
|
42
98
|
'Image::ExifTool::XMP::Main' => {
|
43
99
|
'acdsee-rs' => { # <-- must be the same as the NAMESPACE prefix
|
44
100
|
SubDirectory => {
|
@@ -46,6 +102,112 @@ my %sACDSeeRegionStruct = (
|
|
46
102
|
},
|
47
103
|
},
|
48
104
|
},
|
105
|
+
'Image::ExifTool::Composite' => {
|
106
|
+
# create an ACDSee RegionInfo structure from a Microsoft RegionInfoMP structure
|
107
|
+
MPRegion2ACDSeeRegion => {
|
108
|
+
Require => {
|
109
|
+
0 => 'RegionInfoMP',
|
110
|
+
1 => 'ImageWidth',
|
111
|
+
2 => 'ImageHeight',
|
112
|
+
},
|
113
|
+
ValueConv => q{
|
114
|
+
my ($rgn, @newRgns);
|
115
|
+
foreach $rgn (@{$val[0]{Regions}}) {
|
116
|
+
my $name = $$rgn{PersonDisplayName};
|
117
|
+
next unless $$rgn{Rectangle} or defined $name;
|
118
|
+
my %newRgn = ( Type => 'Face' );
|
119
|
+
if (defined $name) {
|
120
|
+
# don't add ignored faces
|
121
|
+
next if $name eq 'ffffffffffffffff';
|
122
|
+
$newRgn{Name} = $name;
|
123
|
+
}
|
124
|
+
if ($$rgn{Rectangle}) {
|
125
|
+
my @rect = split /\s*,\s*/, $$rgn{Rectangle};
|
126
|
+
$newRgn{DLYArea} = {
|
127
|
+
X => $rect[0] + $rect[2]/2,
|
128
|
+
Y => $rect[1] + $rect[3]/2,
|
129
|
+
W => $rect[2],
|
130
|
+
H => $rect[3],
|
131
|
+
} if @rect == 4;
|
132
|
+
}
|
133
|
+
push @newRgns, \%newRgn;
|
134
|
+
}
|
135
|
+
return {
|
136
|
+
AppliedToDimensions => { W => $val[1], H => $val[2], Unit => 'pixel' },
|
137
|
+
RegionList => \@newRgns,
|
138
|
+
};
|
139
|
+
},
|
140
|
+
},
|
141
|
+
# create an ACDSee RegionInfo structure from an IPTC ImageRegion list
|
142
|
+
IPTCRegion2ACDSeeRegion => {
|
143
|
+
Require => {
|
144
|
+
0 => 'ImageRegion',
|
145
|
+
1 => 'ImageWidth',
|
146
|
+
2 => 'ImageHeight',
|
147
|
+
},
|
148
|
+
ValueConv => q{
|
149
|
+
my ($rgn, @newRgns);
|
150
|
+
my $rgns = ref $val[0] eq 'ARRAY' ? $val[0] : [ $val[0] ];
|
151
|
+
foreach $rgn (@$rgns) {
|
152
|
+
my %newRgn = ( Type => 'Face' );
|
153
|
+
if ($$rgn{RegionBoundary} and $$rgn{RegionBoundary}{RbShape} eq 'rectangle') {
|
154
|
+
my @rect = @{$$rgn{RegionBoundary}}{'RbX','RbY','RbW','RbH'};
|
155
|
+
if ($$rgn{RegionBoundary}{RbUnit} eq 'pixel') {
|
156
|
+
$rect[0] /= $val[1], $rect[2] /= $val[1];
|
157
|
+
$rect[1] /= $val[2]; $rect[3] /= $val[2];
|
158
|
+
}
|
159
|
+
$newRgn{'DLYArea'} = {
|
160
|
+
X => $rect[0] + $rect[2]/2,
|
161
|
+
Y => $rect[1] + $rect[3]/2,
|
162
|
+
W => $rect[2],
|
163
|
+
H => $rect[3],
|
164
|
+
};
|
165
|
+
} else {
|
166
|
+
next unless defined $$rgn{Name};
|
167
|
+
}
|
168
|
+
$newRgn{Name} = $$rgn{Name} if defined $$rgn{Name};
|
169
|
+
push @newRgns, \%newRgn;
|
170
|
+
}
|
171
|
+
return {
|
172
|
+
AppliedToDimensions => { 'W' => $val[1], 'H' => $val[2], 'Unit' => 'pixel' },
|
173
|
+
RegionList => \@newRgns,
|
174
|
+
};
|
175
|
+
},
|
176
|
+
},
|
177
|
+
|
178
|
+
# create an MWG RegionInfo structure from an IPTC ImageRegion list
|
179
|
+
MWGRegion2ACDSeeRegion => {
|
180
|
+
Require => {
|
181
|
+
0 => 'RegionInfo',
|
182
|
+
1 => 'ImageWidth',
|
183
|
+
2 => 'ImageHeight',
|
184
|
+
},
|
185
|
+
ValueConv => q{
|
186
|
+
my ($rgn, @newRgns);
|
187
|
+
my %newRgn;
|
188
|
+
foreach $rgn (@{$val[0]{RegionList}}) {
|
189
|
+
next unless $$rgn{Area} or defined $$rgn{Name};
|
190
|
+
my %newRgn;
|
191
|
+
if ($$rgn{Area}) {
|
192
|
+
$newRgn{'DLYArea'} = {
|
193
|
+
'X' => $$rgn{Area}{'X'},
|
194
|
+
'Y' => $$rgn{Area}{'Y'},
|
195
|
+
'W' => $$rgn{Area}{'W'},
|
196
|
+
'H' => $$rgn{Area}{'H'},
|
197
|
+
};
|
198
|
+
};
|
199
|
+
$newRgn{Name} = $$rgn{Name} if defined $$rgn{Name};
|
200
|
+
$newRgn{'Type'} = $$rgn{'Type'} if defined $$rgn{'Type'};
|
201
|
+
push @newRgns, \%newRgn;
|
202
|
+
}
|
203
|
+
return {
|
204
|
+
'AppliedToDimensions' => $val[0]{'AppliedToDimensions'},
|
205
|
+
RegionList => \@newRgns,
|
206
|
+
}
|
207
|
+
},
|
208
|
+
},
|
209
|
+
####
|
210
|
+
},
|
49
211
|
);
|
50
212
|
|
51
213
|
%Image::ExifTool::UserDefined::ACDSeeRegions = (
|
@@ -54,18 +216,43 @@ my %sACDSeeRegionStruct = (
|
|
54
216
|
WRITABLE => 'string', # (default to string-type tags)
|
55
217
|
Regions => {
|
56
218
|
Name => 'RegionInfoACDSee',
|
219
|
+
FlatName => 'ACDSee',
|
57
220
|
# the "Struct" entry defines the structure fields
|
58
221
|
Struct => {
|
59
222
|
# optional structure name (used for warning messages only)
|
60
223
|
STRUCT_NAME => 'ACDSee RegionInfo',
|
61
224
|
RegionList => {
|
225
|
+
FlatName => 'Region',
|
62
226
|
Struct => \%sACDSeeRegionStruct,
|
63
227
|
List => 'Bag',
|
64
228
|
},
|
65
|
-
AppliedToDimensions => {
|
229
|
+
AppliedToDimensions => {
|
230
|
+
FlatName => 'RegionAppliedToDimensions',Struct => \%sACDSeeDimensions },
|
66
231
|
},
|
67
232
|
},
|
68
233
|
);
|
69
234
|
|
235
|
+
# Shortcuts to old names added so as not to break previously used commands
|
236
|
+
%Image::ExifTool::UserDefined::Shortcuts = (
|
237
|
+
RegionInfoACDSeeAppliedToDimensionsH => 'ACDSeeRegionAppliedToDimensionsH',
|
238
|
+
RegionInfoACDSeeAppliedToDimensionsUnit => 'ACDSeeRegionAppliedToDimensionsUnit',
|
239
|
+
RegionInfoACDSeeAppliedToDimensionsW => 'ACDSeeRegionAppliedToDimensionsW',
|
240
|
+
RegionInfoACDSeeRegionListDLYAreaH => 'ACDSeeRegionDLYAreaH',
|
241
|
+
RegionInfoACDSeeRegionListDLYAreaW => 'ACDSeeRegionDLYAreaW',
|
242
|
+
RegionInfoACDSeeRegionListDLYAreaX => 'ACDSeeRegionDLYAreaX',
|
243
|
+
RegionInfoACDSeeRegionListDLYAreaY => 'ACDSeeRegionDLYAreaY',
|
244
|
+
RegionInfoACDSeeRegionListALGAreaH => 'ACDSeeRegionALGAreaH',
|
245
|
+
RegionInfoACDSeeRegionListALGAreaW => 'ACDSeeRegionALGAreaW',
|
246
|
+
RegionInfoACDSeeRegionListALGAreaX => 'ACDSeeRegionALGAreaX',
|
247
|
+
RegionInfoACDSeeRegionListALGAreaY => 'ACDSeeRegionALGAreaY',
|
248
|
+
RegionInfoACDSeeRegionListName => 'ACDSeeRegionName',
|
249
|
+
RegionInfoACDSeeRegionListType => 'ACDSeeRegionType',
|
250
|
+
RegionInfoACDSeeRegionListNameAssignType => 'ACDSeeRegionNameAssignType',
|
251
|
+
);
|
252
|
+
|
253
|
+
# Forced -struct option during debugging
|
254
|
+
#%Image::ExifTool::UserDefined::Options = (
|
255
|
+
# Struct => 1,
|
256
|
+
#);
|
70
257
|
#------------------------------------------------------------------------------
|
71
258
|
1; #end
|