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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +137 -1
  3. data/bin/MANIFEST +12 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +44 -43
  7. data/bin/config_files/acdsee.config +193 -6
  8. data/bin/config_files/cuepointlist.config +70 -0
  9. data/bin/config_files/example.config +1 -8
  10. data/bin/exiftool +139 -98
  11. data/bin/fmt_files/gpx.fmt +1 -1
  12. data/bin/fmt_files/gpx_wpt.fmt +1 -1
  13. data/bin/fmt_files/kml.fmt +1 -1
  14. data/bin/fmt_files/kml_track.fmt +1 -1
  15. data/bin/lib/Image/ExifTool.pm +158 -49
  16. data/bin/lib/Image/ExifTool.pod +94 -75
  17. data/bin/lib/Image/ExifTool/Apple.pm +3 -2
  18. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +25 -14
  19. data/bin/lib/Image/ExifTool/Canon.pm +28 -3
  20. data/bin/lib/Image/ExifTool/CanonCustom.pm +19 -1
  21. data/bin/lib/Image/ExifTool/DJI.pm +6 -6
  22. data/bin/lib/Image/ExifTool/DjVu.pm +6 -5
  23. data/bin/lib/Image/ExifTool/Exif.pm +50 -22
  24. data/bin/lib/Image/ExifTool/FITS.pm +13 -2
  25. data/bin/lib/Image/ExifTool/FujiFilm.pm +19 -8
  26. data/bin/lib/Image/ExifTool/GPS.pm +24 -13
  27. data/bin/lib/Image/ExifTool/H264.pm +20 -5
  28. data/bin/lib/Image/ExifTool/ICC_Profile.pm +2 -2
  29. data/bin/lib/Image/ExifTool/JPEG.pm +6 -2
  30. data/bin/lib/Image/ExifTool/JSON.pm +24 -3
  31. data/bin/lib/Image/ExifTool/Jpeg2000.pm +361 -16
  32. data/bin/lib/Image/ExifTool/M2TS.pm +40 -4
  33. data/bin/lib/Image/ExifTool/MIE.pm +2 -2
  34. data/bin/lib/Image/ExifTool/MRC.pm +341 -0
  35. data/bin/lib/Image/ExifTool/MWG.pm +3 -3
  36. data/bin/lib/Image/ExifTool/MXF.pm +1 -1
  37. data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  38. data/bin/lib/Image/ExifTool/Microsoft.pm +298 -82
  39. data/bin/lib/Image/ExifTool/Nikon.pm +5 -5
  40. data/bin/lib/Image/ExifTool/NikonSettings.pm +25 -16
  41. data/bin/lib/Image/ExifTool/Olympus.pm +2 -2
  42. data/bin/lib/Image/ExifTool/PNG.pm +2 -2
  43. data/bin/lib/Image/ExifTool/Panasonic.pm +14 -1
  44. data/bin/lib/Image/ExifTool/PhaseOne.pm +4 -3
  45. data/bin/lib/Image/ExifTool/QuickTime.pm +148 -68
  46. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +94 -34
  47. data/bin/lib/Image/ExifTool/README +5 -4
  48. data/bin/lib/Image/ExifTool/RIFF.pm +84 -12
  49. data/bin/lib/Image/ExifTool/Samsung.pm +2 -1
  50. data/bin/lib/Image/ExifTool/Shortcuts.pm +9 -0
  51. data/bin/lib/Image/ExifTool/Sony.pm +157 -49
  52. data/bin/lib/Image/ExifTool/TagInfoXML.pm +1 -0
  53. data/bin/lib/Image/ExifTool/TagLookup.pm +4079 -3987
  54. data/bin/lib/Image/ExifTool/TagNames.pod +642 -273
  55. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  56. data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -0
  57. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +44 -17
  58. data/bin/lib/Image/ExifTool/WriteXMP.pl +15 -8
  59. data/bin/lib/Image/ExifTool/Writer.pl +50 -14
  60. data/bin/lib/Image/ExifTool/XMP.pm +50 -11
  61. data/bin/perl-Image-ExifTool.spec +42 -42
  62. data/lib/exiftool_vendored/version.rb +1 -1
  63. metadata +52 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6e5f50165965c391eee5f2088b8220f437030d2c6f03f3f1af04df861f962f24
4
- data.tar.gz: e9c7f8127928dfc92efcbe0e851dffeea05f6a97282497ff7a1e456c4802c9b6
3
+ metadata.gz: 04f93501e7bd28d806651831606ad1d1822fd9fc430e73f47c54a8c6be3fd025
4
+ data.tar.gz: 2be10f782f703d5880106603936d5f00a508db219958a50d7dc66f29102c7ba3
5
5
  SHA512:
6
- metadata.gz: 54b390d7d5dd0b4e8420b747301442137dba8efea7fb6fb3b509634560ac1f5845f5d8dfae09b35c8ce6793a13cdd88e8620068464437d97632f19fb567da837
7
- data.tar.gz: c2f4c386d46378f95d080c67e9a06d8c0b4a8e48038aff3dda4dc3da32cfa280dd79f39ac85c15174dd6186a24e8093157ec2529944a72d19312f4a569806f77
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
@@ -47,5 +47,5 @@
47
47
  }
48
48
  },
49
49
  "release_status" : "stable",
50
- "version" : "12.16"
50
+ "version" : "12.25"
51
51
  }
data/bin/META.yml CHANGED
@@ -28,4 +28,4 @@ recommends:
28
28
  Time::HiRes: 0
29
29
  requires:
30
30
  perl: 5.004
31
- version: 12.16
31
+ version: 12.25
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 | ODP r | RIFF r
18
- 3FR r | DR4 r/w/c | J2C r | ODS r | RSRC r
19
- 3G2 r/w | DSS r | JNG r/w | ODT r | RTF r
20
- 3GP r/w | DV r | JP2 r/w | OFR r | RW2 r/w
21
- A r | DVB r/w | JPEG r/w | OGG r | RWL r/w
22
- AA r | DVR-MS r | JSON r | OGV r | RWZ r
23
- AAE r | DYLIB r | K25 r | ONP r | RM r
24
- AAX r/w | EIP r | KDC r | OPUS r | SEQ r
25
- ACR r | EPS r/w | KEY r | ORF r/w | SKETCH r
26
- AFM r | EPUB r | LA r | OTF r | SO r
27
- AI r/w | ERF r/w | LFP r | PAC r | SR2 r/w
28
- AIFF r | EXE r | LNK r | PAGES r | SRF r
29
- APE r | EXIF r/w/c | LRV r/w | PBM r/w | SRW r/w
30
- ARQ r/w | EXR r | M2TS r | PCD r | SVG r
31
- ARW r/w | EXV r/w/c | M4A/V r/w | PCX r | SWF r
32
- ASF r | F4A/V r/w | MACOS r | PDB r | THM r/w
33
- AVI r | FFF r/w | MAX r | PDF r/w | TIFF r/w
34
- AVIF r/w | FITS r | MEF r/w | PEF r/w | TORRENT r
35
- AZW r | FLA r | MIE r/w/c | PFA r | TTC r
36
- BMP r | FLAC r | MIFF r | PFB r | TTF r
37
- BPG r | FLIF r/w | MKA r | PFM r | TXT r
38
- BTF r | FLV r | MKS r | PGF r | VCF r
39
- CHM r | FPF r | MKV r | PGM r/w | VRD r/w/c
40
- COS r | FPX r | MNG r/w | PLIST r | VSD r
41
- CR2 r/w | GIF r/w | MOBI r | PICT r | WAV r
42
- CR3 r/w | GPR r/w | MODD r | PMP r | WDP r/w
43
- CRM r/w | GZ r | MOI r | PNG r/w | WEBP r
44
- CRW r/w | HDP r/w | MOS r/w | PPM r/w | WEBM r
45
- CS1 r/w | HDR r | MOV r/w | PPT r | WMA r
46
- CSV r | HEIC r/w | MP3 r | PPTX r | WMV r
47
- CZI r | HEIF r/w | MP4 r/w | PS r/w | WTV r
48
- DCM r | HTML r | MPC r | PSB r/w | WV r
49
- DCP r/w | ICC r/w/c | MPG r | PSD r/w | X3F r/w
50
- DCR r | ICS r | MPO r/w | PSP r | XCF r
51
- DFONT r | IDML r | MQV r/w | QTIF r/w | XLS r
52
- DIVX r | IIQ r/w | MRW r/w | R3D r | XLSX r
53
- DJVU r | IND r/w | MXF r | RA r | XMP r/w/c
54
- DLL r | INSP r/w | NEF r/w | RAF r/w | ZIP r
55
- DNG r/w | INSV r | NRW r/w | RAM r |
56
- DOC r | INX r | NUMBERS r | RAR r |
57
- DOCX r | ISO r | O r | RAW r/w |
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.16.tar.gz | tar -xf -
110
- cd Image-ExifTool-12.16
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
- # Usage: exiftool -config acdsee.config -ACDSEETAG=VALUE FILE ...
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' => { Writable => 'real' },
17
- 'h' => { Writable => 'real' },
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 (eg. xxx) must be added to the Main XMP table:
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 => { Struct => \%sACDSeeDimensions },
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