exiftool-vendored.exe 12.72.0 → 12.76.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 (202) hide show
  1. package/bin/exiftool_files/Changes +64 -1
  2. package/bin/exiftool_files/README +47 -46
  3. package/bin/exiftool_files/exiftool.pl +121 -90
  4. package/bin/exiftool_files/lib/File/RandomAccess.pm +32 -6
  5. package/bin/exiftool_files/lib/File/RandomAccess.pod +6 -6
  6. package/bin/exiftool_files/lib/Image/ExifTool/7Z.pm +3 -3
  7. package/bin/exiftool_files/lib/Image/ExifTool/AAC.pm +8 -6
  8. package/bin/exiftool_files/lib/Image/ExifTool/AES.pm +1 -1
  9. package/bin/exiftool_files/lib/Image/ExifTool/AFCP.pm +3 -3
  10. package/bin/exiftool_files/lib/Image/ExifTool/AIFF.pm +1 -1
  11. package/bin/exiftool_files/lib/Image/ExifTool/APE.pm +1 -1
  12. package/bin/exiftool_files/lib/Image/ExifTool/APP12.pm +1 -1
  13. package/bin/exiftool_files/lib/Image/ExifTool/ASF.pm +1 -1
  14. package/bin/exiftool_files/lib/Image/ExifTool/Apple.pm +1 -1
  15. package/bin/exiftool_files/lib/Image/ExifTool/Audible.pm +1 -1
  16. package/bin/exiftool_files/lib/Image/ExifTool/BMP.pm +1 -1
  17. package/bin/exiftool_files/lib/Image/ExifTool/BPG.pm +1 -1
  18. package/bin/exiftool_files/lib/Image/ExifTool/BZZ.pm +3 -3
  19. package/bin/exiftool_files/lib/Image/ExifTool/BigTIFF.pm +1 -1
  20. package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +9 -9
  21. package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +1 -1
  22. package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +7 -6
  23. package/bin/exiftool_files/lib/Image/ExifTool/CanonCustom.pm +1 -1
  24. package/bin/exiftool_files/lib/Image/ExifTool/CanonRaw.pm +1 -1
  25. package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +3 -3
  26. package/bin/exiftool_files/lib/Image/ExifTool/CaptureOne.pm +1 -1
  27. package/bin/exiftool_files/lib/Image/ExifTool/Casio.pm +1 -1
  28. package/bin/exiftool_files/lib/Image/ExifTool/Charset.pm +1 -1
  29. package/bin/exiftool_files/lib/Image/ExifTool/DICOM.pm +3 -3
  30. package/bin/exiftool_files/lib/Image/ExifTool/DJI.pm +1 -1
  31. package/bin/exiftool_files/lib/Image/ExifTool/DNG.pm +5 -5
  32. package/bin/exiftool_files/lib/Image/ExifTool/DPX.pm +1 -1
  33. package/bin/exiftool_files/lib/Image/ExifTool/DV.pm +1 -1
  34. package/bin/exiftool_files/lib/Image/ExifTool/DarwinCore.pm +1 -1
  35. package/bin/exiftool_files/lib/Image/ExifTool/DjVu.pm +1 -1
  36. package/bin/exiftool_files/lib/Image/ExifTool/EXE.pm +1 -1
  37. package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +4 -3
  38. package/bin/exiftool_files/lib/Image/ExifTool/FITS.pm +1 -1
  39. package/bin/exiftool_files/lib/Image/ExifTool/FLAC.pm +1 -1
  40. package/bin/exiftool_files/lib/Image/ExifTool/FLIF.pm +1 -1
  41. package/bin/exiftool_files/lib/Image/ExifTool/FLIR.pm +3 -3
  42. package/bin/exiftool_files/lib/Image/ExifTool/Fixup.pm +4 -4
  43. package/bin/exiftool_files/lib/Image/ExifTool/Flash.pm +1 -1
  44. package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +61 -8
  45. package/bin/exiftool_files/lib/Image/ExifTool/Font.pm +1 -1
  46. package/bin/exiftool_files/lib/Image/ExifTool/FotoStation.pm +1 -1
  47. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +9 -4
  48. package/bin/exiftool_files/lib/Image/ExifTool/GE.pm +1 -1
  49. package/bin/exiftool_files/lib/Image/ExifTool/GIF.pm +1 -1
  50. package/bin/exiftool_files/lib/Image/ExifTool/GIMP.pm +1 -1
  51. package/bin/exiftool_files/lib/Image/ExifTool/GPS.pm +1 -1
  52. package/bin/exiftool_files/lib/Image/ExifTool/GeoTiff.pm +1 -1
  53. package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +4 -4
  54. package/bin/exiftool_files/lib/Image/ExifTool/GoPro.pm +1 -1
  55. package/bin/exiftool_files/lib/Image/ExifTool/H264.pm +1 -1
  56. package/bin/exiftool_files/lib/Image/ExifTool/HP.pm +1 -1
  57. package/bin/exiftool_files/lib/Image/ExifTool/HTML.pm +1 -1
  58. package/bin/exiftool_files/lib/Image/ExifTool/HtmlDump.pm +7 -5
  59. package/bin/exiftool_files/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  60. package/bin/exiftool_files/lib/Image/ExifTool/ICO.pm +1 -1
  61. package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +3 -3
  62. package/bin/exiftool_files/lib/Image/ExifTool/IPTC.pm +1 -1
  63. package/bin/exiftool_files/lib/Image/ExifTool/ISO.pm +1 -1
  64. package/bin/exiftool_files/lib/Image/ExifTool/ITC.pm +1 -1
  65. package/bin/exiftool_files/lib/Image/ExifTool/Import.pm +6 -6
  66. package/bin/exiftool_files/lib/Image/ExifTool/InDesign.pm +1 -1
  67. package/bin/exiftool_files/lib/Image/ExifTool/InfiRay.pm +1 -1
  68. package/bin/exiftool_files/lib/Image/ExifTool/JPEG.pm +5 -2
  69. package/bin/exiftool_files/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  70. package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +3 -3
  71. package/bin/exiftool_files/lib/Image/ExifTool/JVC.pm +3 -3
  72. package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +67 -17
  73. package/bin/exiftool_files/lib/Image/ExifTool/Kodak.pm +1 -1
  74. package/bin/exiftool_files/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  75. package/bin/exiftool_files/lib/Image/ExifTool/LIF.pm +1 -1
  76. package/bin/exiftool_files/lib/Image/ExifTool/LNK.pm +1 -1
  77. package/bin/exiftool_files/lib/Image/ExifTool/Lang/cs.pm +1 -1
  78. package/bin/exiftool_files/lib/Image/ExifTool/Lang/de.pm +1 -1
  79. package/bin/exiftool_files/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  80. package/bin/exiftool_files/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  81. package/bin/exiftool_files/lib/Image/ExifTool/Lang/es.pm +4 -4
  82. package/bin/exiftool_files/lib/Image/ExifTool/Lang/fi.pm +1 -1
  83. package/bin/exiftool_files/lib/Image/ExifTool/Lang/fr.pm +4 -5
  84. package/bin/exiftool_files/lib/Image/ExifTool/Lang/it.pm +3 -3
  85. package/bin/exiftool_files/lib/Image/ExifTool/Lang/ja.pm +1 -1
  86. package/bin/exiftool_files/lib/Image/ExifTool/Lang/ko.pm +1 -1
  87. package/bin/exiftool_files/lib/Image/ExifTool/Lang/nl.pm +1 -1
  88. package/bin/exiftool_files/lib/Image/ExifTool/Lang/pl.pm +1 -1
  89. package/bin/exiftool_files/lib/Image/ExifTool/Lang/ru.pm +1 -1
  90. package/bin/exiftool_files/lib/Image/ExifTool/Lang/sk.pm +1 -1
  91. package/bin/exiftool_files/lib/Image/ExifTool/Lang/sv.pm +1 -1
  92. package/bin/exiftool_files/lib/Image/ExifTool/Lang/tr.pm +1 -1
  93. package/bin/exiftool_files/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  94. package/bin/exiftool_files/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  95. package/bin/exiftool_files/lib/Image/ExifTool/Leaf.pm +3 -3
  96. package/bin/exiftool_files/lib/Image/ExifTool/Lytro.pm +1 -1
  97. package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +1 -1
  98. package/bin/exiftool_files/lib/Image/ExifTool/MIE.pm +5 -5
  99. package/bin/exiftool_files/lib/Image/ExifTool/MIEUnits.pod +1 -1
  100. package/bin/exiftool_files/lib/Image/ExifTool/MIFF.pm +1 -1
  101. package/bin/exiftool_files/lib/Image/ExifTool/MISB.pm +1 -1
  102. package/bin/exiftool_files/lib/Image/ExifTool/MNG.pm +1 -1
  103. package/bin/exiftool_files/lib/Image/ExifTool/MOI.pm +1 -1
  104. package/bin/exiftool_files/lib/Image/ExifTool/MPC.pm +1 -1
  105. package/bin/exiftool_files/lib/Image/ExifTool/MPEG.pm +1 -1
  106. package/bin/exiftool_files/lib/Image/ExifTool/MPF.pm +1 -1
  107. package/bin/exiftool_files/lib/Image/ExifTool/MRC.pm +1 -1
  108. package/bin/exiftool_files/lib/Image/ExifTool/MWG.pm +1 -1
  109. package/bin/exiftool_files/lib/Image/ExifTool/MXF.pm +1 -1
  110. package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +1 -1
  111. package/bin/exiftool_files/lib/Image/ExifTool/MakerNotes.pm +1 -1
  112. package/bin/exiftool_files/lib/Image/ExifTool/Matroska.pm +1 -1
  113. package/bin/exiftool_files/lib/Image/ExifTool/Microsoft.pm +1 -1
  114. package/bin/exiftool_files/lib/Image/ExifTool/Minolta.pm +1 -1
  115. package/bin/exiftool_files/lib/Image/ExifTool/MinoltaRaw.pm +3 -3
  116. package/bin/exiftool_files/lib/Image/ExifTool/Motorola.pm +1 -1
  117. package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +11 -8
  118. package/bin/exiftool_files/lib/Image/ExifTool/NikonCapture.pm +1 -1
  119. package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +4 -4
  120. package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +1 -1
  121. package/bin/exiftool_files/lib/Image/ExifTool/Nintendo.pm +1 -1
  122. package/bin/exiftool_files/lib/Image/ExifTool/OOXML.pm +1 -1
  123. package/bin/exiftool_files/lib/Image/ExifTool/Ogg.pm +3 -3
  124. package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +1 -1
  125. package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +1 -1
  126. package/bin/exiftool_files/lib/Image/ExifTool/Opus.pm +1 -1
  127. package/bin/exiftool_files/lib/Image/ExifTool/Other.pm +1 -1
  128. package/bin/exiftool_files/lib/Image/ExifTool/PCX.pm +1 -1
  129. package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +55 -5
  130. package/bin/exiftool_files/lib/Image/ExifTool/PGF.pm +1 -1
  131. package/bin/exiftool_files/lib/Image/ExifTool/PICT.pm +1 -1
  132. package/bin/exiftool_files/lib/Image/ExifTool/PLIST.pm +4 -4
  133. package/bin/exiftool_files/lib/Image/ExifTool/PLUS.pm +1 -1
  134. package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +24 -2
  135. package/bin/exiftool_files/lib/Image/ExifTool/PPM.pm +1 -1
  136. package/bin/exiftool_files/lib/Image/ExifTool/PSP.pm +1 -1
  137. package/bin/exiftool_files/lib/Image/ExifTool/Palm.pm +1 -1
  138. package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +27 -2
  139. package/bin/exiftool_files/lib/Image/ExifTool/PanasonicRaw.pm +4 -4
  140. package/bin/exiftool_files/lib/Image/ExifTool/Parrot.pm +1 -1
  141. package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +32 -11
  142. package/bin/exiftool_files/lib/Image/ExifTool/PhaseOne.pm +6 -6
  143. package/bin/exiftool_files/lib/Image/ExifTool/PhotoCD.pm +1 -1
  144. package/bin/exiftool_files/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  145. package/bin/exiftool_files/lib/Image/ExifTool/Photoshop.pm +4 -4
  146. package/bin/exiftool_files/lib/Image/ExifTool/PostScript.pm +3 -3
  147. package/bin/exiftool_files/lib/Image/ExifTool/PrintIM.pm +1 -1
  148. package/bin/exiftool_files/lib/Image/ExifTool/Qualcomm.pm +1 -1
  149. package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +55 -101
  150. package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +97 -7
  151. package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +1 -1
  152. package/bin/exiftool_files/lib/Image/ExifTool/RSRC.pm +3 -3
  153. package/bin/exiftool_files/lib/Image/ExifTool/RTF.pm +1 -1
  154. package/bin/exiftool_files/lib/Image/ExifTool/Radiance.pm +1 -1
  155. package/bin/exiftool_files/lib/Image/ExifTool/Rawzor.pm +1 -1
  156. package/bin/exiftool_files/lib/Image/ExifTool/Real.pm +1 -1
  157. package/bin/exiftool_files/lib/Image/ExifTool/Reconyx.pm +1 -1
  158. package/bin/exiftool_files/lib/Image/ExifTool/Red.pm +1 -1
  159. package/bin/exiftool_files/lib/Image/ExifTool/Ricoh.pm +3 -3
  160. package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +5 -5
  161. package/bin/exiftool_files/lib/Image/ExifTool/Sanyo.pm +1 -1
  162. package/bin/exiftool_files/lib/Image/ExifTool/Scalado.pm +1 -1
  163. package/bin/exiftool_files/lib/Image/ExifTool/Shift.pl +2 -3
  164. package/bin/exiftool_files/lib/Image/ExifTool/Shortcuts.pm +1 -1
  165. package/bin/exiftool_files/lib/Image/ExifTool/Sigma.pm +1 -1
  166. package/bin/exiftool_files/lib/Image/ExifTool/SigmaRaw.pm +4 -4
  167. package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +5 -5
  168. package/bin/exiftool_files/lib/Image/ExifTool/SonyIDC.pm +1 -1
  169. package/bin/exiftool_files/lib/Image/ExifTool/Stim.pm +1 -1
  170. package/bin/exiftool_files/lib/Image/ExifTool/TagInfoXML.pm +4 -4
  171. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +3879 -3862
  172. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +11439 -11374
  173. package/bin/exiftool_files/lib/Image/ExifTool/Text.pm +1 -1
  174. package/bin/exiftool_files/lib/Image/ExifTool/Theora.pm +1 -1
  175. package/bin/exiftool_files/lib/Image/ExifTool/Torrent.pm +1 -1
  176. package/bin/exiftool_files/lib/Image/ExifTool/Unknown.pm +1 -1
  177. package/bin/exiftool_files/lib/Image/ExifTool/VCard.pm +1 -1
  178. package/bin/exiftool_files/lib/Image/ExifTool/Validate.pm +1 -1
  179. package/bin/exiftool_files/lib/Image/ExifTool/Vorbis.pm +1 -1
  180. package/bin/exiftool_files/lib/Image/ExifTool/WPG.pm +1 -1
  181. package/bin/exiftool_files/lib/Image/ExifTool/WTV.pm +1 -1
  182. package/bin/exiftool_files/lib/Image/ExifTool/WriteCanonRaw.pl +2 -2
  183. package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +27 -24
  184. package/bin/exiftool_files/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  185. package/bin/exiftool_files/lib/Image/ExifTool/WritePDF.pl +2 -2
  186. package/bin/exiftool_files/lib/Image/ExifTool/WritePNG.pl +1 -1
  187. package/bin/exiftool_files/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  188. package/bin/exiftool_files/lib/Image/ExifTool/WritePostScript.pl +1 -1
  189. package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +5 -2
  190. package/bin/exiftool_files/lib/Image/ExifTool/WriteRIFF.pl +1 -1
  191. package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +9 -5
  192. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +74 -45
  193. package/bin/exiftool_files/lib/Image/ExifTool/XISF.pm +1 -1
  194. package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +20 -3
  195. package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +10 -1
  196. package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +1 -1
  197. package/bin/exiftool_files/lib/Image/ExifTool/ZIP.pm +7 -7
  198. package/bin/exiftool_files/lib/Image/ExifTool/ZISRAW.pm +1 -1
  199. package/bin/exiftool_files/lib/Image/ExifTool/iWork.pm +1 -1
  200. package/bin/exiftool_files/lib/Image/ExifTool.pm +59 -28
  201. package/bin/exiftool_files/lib/Image/ExifTool.pod +81 -68
  202. package/package.json +6 -6
@@ -21,7 +21,7 @@ use vars qw($VERSION $AUTOLOAD $lastFetched);
21
21
  use Image::ExifTool qw(:DataAccess :Utils);
22
22
  require Exporter;
23
23
 
24
- $VERSION = '1.57';
24
+ $VERSION = '1.58';
25
25
 
26
26
  sub FetchObject($$$$);
27
27
  sub ExtractObject($$;$$);
@@ -178,6 +178,9 @@ my %supportedFilter = (
178
178
  AcroForm => {
179
179
  SubDirectory => { TagTable => 'Image::ExifTool::PDF::AcroForm' },
180
180
  },
181
+ AF => {
182
+ SubDirectory => { TagTable => 'Image::ExifTool::PDF::AF' },
183
+ },
181
184
  Lang => 'Language',
182
185
  PageLayout => { },
183
186
  PageMode => { },
@@ -251,6 +254,37 @@ my %supportedFilter = (
251
254
  },
252
255
  );
253
256
 
257
+ # tags extracted from AF dictionary
258
+ %Image::ExifTool::PDF::AF = (
259
+ PROCESS_PROC => \&ProcessAF,
260
+ NOTES => 'Processed only for C2PA information if AFRelationship is "/C2PA_Manifest".',
261
+ EF => {
262
+ SubDirectory => { TagTable => 'Image::ExifTool::PDF::EF' },
263
+ },
264
+ );
265
+
266
+ # tags extracted from EF dictionary
267
+ %Image::ExifTool::PDF::EF = (
268
+ F => {
269
+ Name => 'F_', # (don't want single-letter tag names)
270
+ SubDirectory => { TagTable => 'Image::ExifTool::PDF::F' },
271
+ },
272
+ );
273
+
274
+ # tags extracted from F dictionary
275
+ %Image::ExifTool::PDF::F = (
276
+ NOTES => 'C2PA JUMBF metadata extracted from "/C2PA_Manifest" file.',
277
+ _stream => {
278
+ Name => 'JUMBF',
279
+ Condition => '$$self{AFRelationship} eq "/C2PA_Manifest"',
280
+ SubDirectory => {
281
+ TagTable => 'Image::ExifTool::Jpeg2000::Main',
282
+ DirName => 'JUMBF',
283
+ ByteOrder => 'BigEndian',
284
+ },
285
+ },
286
+ );
287
+
254
288
  # tags in PDF Kids dictionary
255
289
  %Image::ExifTool::PDF::Kids = (
256
290
  Metadata => {
@@ -1739,6 +1773,19 @@ sub ProcessAcroForm($$$$;$$)
1739
1773
  {
1740
1774
  my ($et, $tagTablePtr, $dict, $xref, $nesting, $type) = @_;
1741
1775
  $et->HandleTag($tagTablePtr, '_has_xfa', $$dict{XFA} ? 'true' : 'false');
1776
+ return 1 unless $et->Options('Verbose');
1777
+ return ProcessDict($et, $tagTablePtr, $dict, $xref, $nesting, $type);
1778
+ }
1779
+
1780
+ #------------------------------------------------------------------------------
1781
+ # Process AF dictionary to extract C2PA manifest
1782
+ # Inputs: Same as ProcessDict
1783
+ sub ProcessAF($$$$;$$)
1784
+ {
1785
+ my ($et, $tagTablePtr, $dict, $xref, $nesting, $type) = @_;
1786
+ $$et{AFRelationship} = $$dict{AFRelationship} || '';
1787
+ # go no further unless Verbose or this is the C2PA_Manifest item
1788
+ return 1 unless $et->Options('Verbose') or $$et{AFRelationship} eq '/C2PA_Manifest';
1742
1789
  return ProcessDict($et, $tagTablePtr, $dict, $xref, $nesting, $type);
1743
1790
  }
1744
1791
 
@@ -1987,7 +2034,8 @@ sub ProcessDict($$$$;$$)
1987
2034
  $$et{INDENT} .= '| ';
1988
2035
  $$et{DIR_NAME} = $tag;
1989
2036
  $et->VerboseDir($tag, scalar(@{$$subDict{_tags}}));
1990
- ProcessDict($et, $subTablePtr, $subDict, $xref, $nesting);
2037
+ my $proc = $$subTablePtr{PROCESS_PROC} || \&ProcessDict;
2038
+ &$proc($et, $subTablePtr, $subDict, $xref, $nesting);
1991
2039
  $$et{INDENT} = $oldIndent;
1992
2040
  $$et{DIR_NAME} = $oldDir;
1993
2041
  }
@@ -2087,7 +2135,8 @@ sub ProcessDict($$$$;$$)
2087
2135
  ($tag = $$dict{Subtype} . $tag) =~ s/^\/// if $$dict{Subtype};
2088
2136
  last unless $$tagTablePtr{$tag};
2089
2137
  my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag) or last;
2090
- unless ($$tagInfo{SubDirectory}) {
2138
+ my $subdir = $$tagInfo{SubDirectory};
2139
+ unless ($subdir) {
2091
2140
  # don't build filter lists across different images
2092
2141
  delete $$et{LIST_TAGS}{$$tagTablePtr{Filter}};
2093
2142
  # we arrive here only when extracting embedded images
@@ -2120,8 +2169,9 @@ sub ProcessDict($$$$;$$)
2120
2169
  DirStart => 0,
2121
2170
  DirLen => length $$dict{_stream},
2122
2171
  Parent => 'PDF',
2172
+ DirName => $$subdir{DirName},
2123
2173
  );
2124
- my $subTablePtr = GetTagTable($tagInfo->{SubDirectory}->{TagTable});
2174
+ my $subTablePtr = GetTagTable($$subdir{TagTable});
2125
2175
  unless ($et->ProcessDirectory(\%dirInfo, $subTablePtr)) {
2126
2176
  $et->Warn("Error processing $$tagInfo{Name} information");
2127
2177
  }
@@ -2416,7 +2466,7 @@ and AESV3 (AES-256).
2416
2466
 
2417
2467
  =head1 AUTHOR
2418
2468
 
2419
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
2469
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
2420
2470
 
2421
2471
  This library is free software; you can redistribute it and/or modify it
2422
2472
  under the same terms as Perl itself.
@@ -119,7 +119,7 @@ information from Progressive Graphics File (PGF) images.
119
119
 
120
120
  =head1 AUTHOR
121
121
 
122
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
122
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
123
123
 
124
124
  This library is free software; you can redistribute it and/or modify it
125
125
  under the same terms as Perl itself.
@@ -1236,7 +1236,7 @@ Verbose or the Unknown option.
1236
1236
 
1237
1237
  =head1 AUTHOR
1238
1238
 
1239
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1239
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1240
1240
 
1241
1241
  This library is free software; you can redistribute it and/or modify it
1242
1242
  under the same terms as Perl itself.
@@ -21,7 +21,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
21
21
  use Image::ExifTool::XMP;
22
22
  use Image::ExifTool::GPS;
23
23
 
24
- $VERSION = '1.11';
24
+ $VERSION = '1.12';
25
25
 
26
26
  sub ExtractObject($$;$);
27
27
  sub Get24u($$);
@@ -351,9 +351,9 @@ sub ProcessBinaryPLIST($$;$)
351
351
  my $start = $$dirInfo{DirStart};
352
352
  if ($start or ($$dirInfo{DirLen} and $$dirInfo{DirLen} != length $$dataPt)) {
353
353
  my $buf2 = substr($$dataPt, $start || 0, $$dirInfo{DirLen});
354
- $$dirInfo{RAF} = new File::RandomAccess(\$buf2);
354
+ $$dirInfo{RAF} = File::RandomAccess->new(\$buf2);
355
355
  } else {
356
- $$dirInfo{RAF} = new File::RandomAccess($dataPt);
356
+ $$dirInfo{RAF} = File::RandomAccess->new($dataPt);
357
357
  }
358
358
  my $strt = $$dirInfo{DirStart} || 0;
359
359
  }
@@ -450,7 +450,7 @@ This module decodes both the binary and XML-based PLIST format.
450
450
 
451
451
  =head1 AUTHOR
452
452
 
453
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
453
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
454
454
 
455
455
  This library is free software; you can redistribute it and/or modify it
456
456
  under the same terms as Perl itself.
@@ -2601,7 +2601,7 @@ Definitions for PLUS (Picture Licensing Universal System) tags.
2601
2601
 
2602
2602
  =head1 AUTHOR
2603
2603
 
2604
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
2604
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
2605
2605
 
2606
2606
  This library is free software; you can redistribute it and/or modify it
2607
2607
  under the same terms as Perl itself.
@@ -36,7 +36,7 @@ use strict;
36
36
  use vars qw($VERSION $AUTOLOAD %stdCase);
37
37
  use Image::ExifTool qw(:DataAccess :Utils);
38
38
 
39
- $VERSION = '1.65';
39
+ $VERSION = '1.66';
40
40
 
41
41
  sub ProcessPNG_tEXt($$$);
42
42
  sub ProcessPNG_iTXt($$$);
@@ -351,6 +351,27 @@ my %noLeapFrog = ( SAVE => 1, SEEK => 1, IHDR => 1, JHDR => 1, IEND => 1, MEND =
351
351
  TagTable => 'Image::ExifTool::PNG::CICodePoints',
352
352
  },
353
353
  },
354
+ cpIp => { # OLE information found in PNG Plus images written by Picture It!
355
+ Name => 'OLEInfo',
356
+ Condition => q{
357
+ # set FileType to "PNG Plus"
358
+ if ($$self{VALUE}{FileType} and $$self{VALUE}{FileType} eq "PNG") {
359
+ $$self{VALUE}{FileType} = 'PNG Plus';
360
+ }
361
+ return 1;
362
+ },
363
+ SubDirectory => {
364
+ TagTable => 'Image::ExifTool::FlashPix::Main',
365
+ ProcessProc => 'Image::ExifTool::FlashPix::ProcessFPX',
366
+ },
367
+ },
368
+ meTa => { # XML in UTF-16 BOM format written by Picture It!
369
+ SubDirectory => {
370
+ TagTable => 'Image::ExifTool::XMP::XML',
371
+ IgnoreProp => { meta => 1 }, # ignore 'meta' container
372
+ },
373
+ },
374
+ # mkBF,mkTS,mkBS,mkBT ? - written by Adobe FireWorks
354
375
  );
355
376
 
356
377
  # PNG IHDR chunk
@@ -970,6 +991,7 @@ sub FoundPNG($$$$;$$$$)
970
991
  TagInfo => $tagInfo,
971
992
  ReadOnly => 1, # (used only by WriteXMP)
972
993
  OutBuff => $outBuff,
994
+ IgnoreProp => $$subdir{IgnoreProp}, # (XML hack for meTa chunk)
973
995
  );
974
996
  # no need to re-decompress if already done
975
997
  undef $processProc if $wasCompressed and $processProc and $processProc eq \&ProcessPNG_Compressed;
@@ -1656,7 +1678,7 @@ and JNG (JPEG Network Graphics) images.
1656
1678
 
1657
1679
  =head1 AUTHOR
1658
1680
 
1659
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1681
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1660
1682
 
1661
1683
  This library is free software; you can redistribute it and/or modify it
1662
1684
  under the same terms as Perl itself.
@@ -143,7 +143,7 @@ BitMap) images.
143
143
 
144
144
  =head1 AUTHOR
145
145
 
146
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
146
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
147
147
 
148
148
  This library is free software; you can redistribute it and/or modify it
149
149
  under the same terms as Perl itself.
@@ -284,7 +284,7 @@ information from Paint Shop Pro images.
284
284
 
285
285
  =head1 AUTHOR
286
286
 
287
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
287
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
288
288
 
289
289
  This library is free software; you can redistribute it and/or modify it
290
290
  under the same terms as Perl itself.
@@ -379,7 +379,7 @@ KF7 and KF8 books (AZW and AZW3).
379
379
 
380
380
  =head1 AUTHOR
381
381
 
382
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
382
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
383
383
 
384
384
  This library is free software; you can redistribute it and/or modify it
385
385
  under the same terms as Perl itself.
@@ -37,7 +37,7 @@ use vars qw($VERSION %leicaLensTypes);
37
37
  use Image::ExifTool qw(:DataAccess :Utils);
38
38
  use Image::ExifTool::Exif;
39
39
 
40
- $VERSION = '2.21';
40
+ $VERSION = '2.22';
41
41
 
42
42
  sub ProcessLeicaLEIC($$$);
43
43
  sub WhiteBalanceConv($;$$);
@@ -2186,6 +2186,10 @@ my %shootingMode = (
2186
2186
  Writable => 'rational64u',
2187
2187
  Count => 2,
2188
2188
  },
2189
+ 0x0370 => { #forum15440
2190
+ Name => 'LensProfileName',
2191
+ Writable => 'string',
2192
+ },
2189
2193
  );
2190
2194
 
2191
2195
  # Type 2 tags (ref PH)
@@ -2509,6 +2513,27 @@ my %shootingMode = (
2509
2513
  },
2510
2514
  );
2511
2515
 
2516
+ # Leica XMP Digital Shift Assistant tags
2517
+ %Image::ExifTool::Panasonic::DSA = (
2518
+ GROUPS => { 0 => 'XMP', 1 => 'XMP-xmpDSA', 2 => 'Image' },
2519
+ PROCESS_PROC => 'Image::ExifTool::XMP::ProcessXMP',
2520
+ NAMESPACE => 'xmpDSA',
2521
+ WRITABLE => 'string',
2522
+ AVOID => 1,
2523
+ VARS => { NO_ID => 1 },
2524
+ NOTES => 'XMP Digital Shift Assistant tags written by some Leica cameras.',
2525
+ Version => { }, # eg. "1.0.0"
2526
+ CorrectionAlreadyApplied => { Writable => 'boolean' },
2527
+ PitchAngle => { Writable => 'real' },
2528
+ RollAngle => { Writable => 'real' },
2529
+ FocalLength35mm => { Writable => 'real' },
2530
+ TargetAspectRatio => { Writable => 'real' },
2531
+ ScalingFactorHeight => { Writable => 'real' },
2532
+ ValidCropCorners => { Writable => 'boolean' },
2533
+ ApplyAutomatically => { Writable => 'boolean' },
2534
+ NormalizedCropCorners => { Writable => 'real', List => 'Seq' },
2535
+ );
2536
+
2512
2537
  # Panasonic Composite tags
2513
2538
  %Image::ExifTool::Panasonic::Composite = (
2514
2539
  GROUPS => { 2 => 'Camera' },
@@ -2876,7 +2901,7 @@ Panasonic and Leica maker notes in EXIF information.
2876
2901
 
2877
2902
  =head1 AUTHOR
2878
2903
 
2879
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
2904
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
2880
2905
 
2881
2906
  This library is free software; you can redistribute it and/or modify it
2882
2907
  under the same terms as Perl itself.
@@ -21,7 +21,7 @@ use vars qw($VERSION);
21
21
  use Image::ExifTool qw(:DataAccess :Utils);
22
22
  use Image::ExifTool::Exif;
23
23
 
24
- $VERSION = '1.28';
24
+ $VERSION = '1.29';
25
25
 
26
26
  sub ProcessJpgFromRaw($$$);
27
27
  sub WriteJpgFromRaw($$$);
@@ -839,7 +839,7 @@ sub WriteJpgFromRaw($$$)
839
839
  my $buff = substr($$dataPt, $dirStart, $dirLen);
840
840
  $dataPt = \$buff;
841
841
  }
842
- my $raf = new File::RandomAccess($dataPt);
842
+ my $raf = File::RandomAccess->new($dataPt);
843
843
  my $outbuff;
844
844
  my %dirInfo = (
845
845
  RAF => $raf,
@@ -890,7 +890,7 @@ sub ProcessJpgFromRaw($$$)
890
890
  # extract information from embedded JPEG
891
891
  my %dirInfo = (
892
892
  Parent => 'RAF',
893
- RAF => new File::RandomAccess($dataPt),
893
+ RAF => File::RandomAccess->new($dataPt),
894
894
  );
895
895
  if ($verbose) {
896
896
  my $indent = $$et{INDENT};
@@ -934,7 +934,7 @@ write meta information in Panasonic/Leica RAW, RW2 and RWL images.
934
934
 
935
935
  =head1 AUTHOR
936
936
 
937
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
937
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
938
938
 
939
939
  This library is free software; you can redistribute it and/or modify it
940
940
  under the same terms as Perl itself.
@@ -825,7 +825,7 @@ timed metadata from the 'mett' frame found in Parrot drone MP4 videos.
825
825
 
826
826
  =head1 AUTHOR
827
827
 
828
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
828
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
829
829
 
830
830
  This library is free software; you can redistribute it and/or modify it
831
831
  under the same terms as Perl itself.
@@ -58,7 +58,7 @@ use Image::ExifTool::Exif;
58
58
  use Image::ExifTool::GPS;
59
59
  use Image::ExifTool::HP;
60
60
 
61
- $VERSION = '3.45';
61
+ $VERSION = '3.46';
62
62
 
63
63
  sub CryptShutterCount($$);
64
64
  sub PrintFilter($$$);
@@ -1571,6 +1571,7 @@ my %binaryDataAttrs = (
1571
1571
  0 => 'Multi-segment',
1572
1572
  1 => 'Center-weighted average',
1573
1573
  2 => 'Spot',
1574
+ 6 => 'Highlight', # (GR III)
1574
1575
  # have seen value of 16 for E70
1575
1576
  },
1576
1577
  },
@@ -2135,7 +2136,7 @@ my %binaryDataAttrs = (
2135
2136
  PrintConvInv => [ 'Image::ExifTool::Exif::ConvertFraction($val)' ],
2136
2137
  }],
2137
2138
  0x004f => { #PH
2138
- Name => 'ImageTone', # (Called CustomImageMode in K20D manual)
2139
+ Name => 'ImageTone', # (Called CustomImageMode for K20D and ImageControlMode for GR III)
2139
2140
  Writable => 'int16u',
2140
2141
  PrintConvColumns => 2,
2141
2142
  PrintConv => {
@@ -2151,6 +2152,19 @@ my %binaryDataAttrs = (
2151
2152
  9 => 'Radiant', # (Q)
2152
2153
  10 => 'Cross Processing', #31 (K-70)
2153
2154
  11 => 'Flat', #31 (K-70)
2155
+ # the following values from GR III
2156
+ 256 => 'Standard',
2157
+ 257 => 'Vivid',
2158
+ 258 => 'Monotone',
2159
+ 259 => 'Soft Monotone',
2160
+ 260 => 'Hard Monotone',
2161
+ 261 => 'Hi-contrast B&W',
2162
+ 262 => 'Positive Film',
2163
+ 263 => 'Bleach Bypass 2',
2164
+ 264 => 'Retro',
2165
+ 265 => 'HDR Tone',
2166
+ 266 => 'Cross Processing 2',
2167
+ 267 => 'Negative Film',
2154
2168
  # 256 - seen for GR III
2155
2169
  # 257 - seen for GR III
2156
2170
  # 262 - seen for GR III
@@ -2466,16 +2480,23 @@ my %binaryDataAttrs = (
2466
2480
  },
2467
2481
  },
2468
2482
  0x007a => { #PH
2469
- Name => 'ISOAutoParameters',
2483
+ Name => 'ISOAutoMinSpeed',
2470
2484
  Writable => 'int8u',
2471
2485
  Count => 2,
2472
- PrintConv => {
2473
- '1 0' => 'Slow',
2474
- '2 0' => 'Standard',
2475
- '3 0' => 'Fast',
2476
- # '1 108' - seen for GR III
2477
- # '3 84' - seen for K-3III
2478
- },
2486
+ # From the K-3III menus for the "ISO Auto with Min. Speed" setting: 'Fast' = "Increases
2487
+ # the sensitivity from a shutter speed faster than the standard setting in ISO Auto"
2488
+ ValueConv => [ undef, '$val ? exp(-Image::ExifTool::Pentax::PentaxEv($val-68)*log(2)) : 0' ],
2489
+ ValueConvInv => [ undef, '$val ? Image::ExifTool::Pentax::PentaxEvInv(-log($val)/log(2))+68 : 0' ],
2490
+ PrintConv => [
2491
+ {
2492
+ 1 => 'Shutter Speed Control',
2493
+ 2 => 'Auto Slow',
2494
+ 3 => 'Auto Standard',
2495
+ 4 => 'Auto Fast',
2496
+ },
2497
+ 'Image::ExifTool::Exif::PrintExposureTime($val)',
2498
+ ],
2499
+ PrintConvInv => [ undef, 'Image::ExifTool::Exif::ConvertFraction($val)' ],
2479
2500
  },
2480
2501
  0x007b => { #PH (K-5)
2481
2502
  Name => 'CrossProcess',
@@ -6339,7 +6360,7 @@ tags, and everyone who helped contribute to the LensType values.
6339
6360
 
6340
6361
  =head1 AUTHOR
6341
6362
 
6342
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
6363
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
6343
6364
 
6344
6365
  This library is free software; you can redistribute it and/or modify it
6345
6366
  under the same terms as Perl itself.
@@ -15,7 +15,7 @@ use vars qw($VERSION);
15
15
  use Image::ExifTool qw(:DataAccess :Utils);
16
16
  use Image::ExifTool::Exif;
17
17
 
18
- $VERSION = '1.09';
18
+ $VERSION = '1.10';
19
19
 
20
20
  sub WritePhaseOne($$$);
21
21
  sub ProcessPhaseOne($$$);
@@ -153,7 +153,7 @@ my @formatName = ( undef, 'string', 'int16s', undef, 'int32s' );
153
153
  Format => 'int16s',
154
154
  Count => -1,
155
155
  Flags => ['Unknown','Hidden'],
156
- PrintConv => 'length($val) > 60 ? substr($val,0,55) . "[...]" : $val',
156
+ PrintConv => \&Image::ExifTool::LimitLongValues,
157
157
  },
158
158
  0x0226 => {
159
159
  Name => 'ColorMatrix2',
@@ -184,13 +184,13 @@ my @formatName = ( undef, 'string', 'int16s', undef, 'int32s' );
184
184
  Name => 'PhaseOne_0x0258',
185
185
  Format => 'int16s',
186
186
  Flags => ['Unknown','Hidden'],
187
- PrintConv => 'length($val) > 60 ? substr($val,0,55) . "[...]" : $val',
187
+ PrintConv => \&Image::ExifTool::LimitLongValues,
188
188
  },
189
189
  0x025a => { #PH
190
190
  Name => 'PhaseOne_0x025a',
191
191
  Format => 'int16s',
192
192
  Flags => ['Unknown','Hidden'],
193
- PrintConv => 'length($val) > 60 ? substr($val,0,55) . "[...]" : $val',
193
+ PrintConv => \&Image::ExifTool::LimitLongValues,
194
194
  },
195
195
  # 0x0300 - int32u: 100,101,102
196
196
  0x0301 => { Name => 'FirmwareVersions', Format => 'string' },
@@ -473,7 +473,7 @@ sub WritePhaseOne($$$)
473
473
  return undef if $numEntries < 2 or $numEntries > 300 or $ifdEnd > $dirLen;
474
474
  my $hdrBuff = $hdr;
475
475
  my $valBuff = ''; # buffer for value data
476
- my $fixup = new Image::ExifTool::Fixup;
476
+ my $fixup = Image::ExifTool::Fixup->new;
477
477
  my $index;
478
478
  for ($index=0; $index<$numEntries; ++$index) {
479
479
  my $entry = $dirStart + $ifdStart + 8 + $entrySize * $index;
@@ -725,7 +725,7 @@ One maker notes.
725
725
 
726
726
  =head1 AUTHOR
727
727
 
728
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
728
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
729
729
 
730
730
  This library is free software; you can redistribute it and/or modify it
731
731
  under the same terms as Perl itself.
@@ -484,7 +484,7 @@ information from Kodak Photo CD Image Pac (PCD) files.
484
484
 
485
485
  =head1 AUTHOR
486
486
 
487
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
487
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
488
488
 
489
489
  This library is free software; you can redistribute it and/or modify it
490
490
  under the same terms as Perl itself.
@@ -237,7 +237,7 @@ write information written by the Camera Bits Photo Mechanic software.
237
237
 
238
238
  =head1 AUTHOR
239
239
 
240
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
240
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
241
241
 
242
242
  This library is free software; you can redistribute it and/or modify it
243
243
  under the same terms as Perl itself.
@@ -28,7 +28,7 @@ use strict;
28
28
  use vars qw($VERSION $AUTOLOAD $iptcDigestInfo %printFlags);
29
29
  use Image::ExifTool qw(:DataAccess :Utils);
30
30
 
31
- $VERSION = '1.69';
31
+ $VERSION = '1.70';
32
32
 
33
33
  sub ProcessPhotoshop($$$);
34
34
  sub WritePhotoshop($$$);
@@ -70,7 +70,7 @@ my %thumbnailInfo = (
70
70
  Protected => 1,
71
71
  RawConv => 'my $img=substr($val,0x1c); $self->ValidateImage(\$img,$tag)',
72
72
  ValueConvInv => q{
73
- my $et = new Image::ExifTool;
73
+ my $et = Image::ExifTool->new;
74
74
  my @tags = qw{ImageWidth ImageHeight FileType};
75
75
  my $info = $et->ImageInfo(\$val, @tags);
76
76
  my ($w, $h, $type) = @$info{@tags};
@@ -892,7 +892,7 @@ sub ProcessDocumentData($$$)
892
892
  unless ($raf) {
893
893
  my $dataPt = $$dirInfo{DataPt};
894
894
  my $start = $$dirInfo{DirStart} || 0;
895
- $raf = new File::RandomAccess($dataPt);
895
+ $raf = File::RandomAccess->new($dataPt);
896
896
  $raf->Seek($start, 0) if $start;
897
897
  $dirLen = length $$dataPt - $start unless defined $dirLen;
898
898
  $et->VerboseDump($dataPt, Start => $start, Len => $dirLen, Base => $$dirInfo{Base});
@@ -1201,7 +1201,7 @@ be preserved when copying Photoshop information via user-defined tags.
1201
1201
 
1202
1202
  =head1 AUTHOR
1203
1203
 
1204
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1204
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1205
1205
 
1206
1206
  This library is free software; you can redistribute it and/or modify it
1207
1207
  under the same terms as Perl itself.
@@ -16,7 +16,7 @@ use strict;
16
16
  use vars qw($VERSION $AUTOLOAD);
17
17
  use Image::ExifTool qw(:DataAccess :Utils);
18
18
 
19
- $VERSION = '1.44';
19
+ $VERSION = '1.45';
20
20
 
21
21
  sub WritePS($$);
22
22
  sub ProcessPS($$;$);
@@ -430,7 +430,7 @@ sub ProcessPS($$;$)
430
430
 
431
431
  # allow read from data
432
432
  unless ($raf) {
433
- $raf = new File::RandomAccess($$dirInfo{DataPt});
433
+ $raf = File::RandomAccess->new($$dirInfo{DataPt});
434
434
  $et->VerboseDir('PostScript');
435
435
  }
436
436
  #
@@ -777,7 +777,7 @@ This code reads meta information from EPS (Encapsulated PostScript), PS
777
777
 
778
778
  =head1 AUTHOR
779
779
 
780
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
780
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
781
781
 
782
782
  This library is free software; you can redistribute it and/or modify it
783
783
  under the same terms as Perl itself.
@@ -112,7 +112,7 @@ Print Image Matching meta information.
112
112
 
113
113
  =head1 AUTHOR
114
114
 
115
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
115
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
116
116
 
117
117
  This library is free software; you can redistribute it and/or modify it
118
118
  under the same terms as Perl itself.
@@ -1331,7 +1331,7 @@ information from the APP7 Qualcomm segment in JPEG images.
1331
1331
 
1332
1332
  =head1 AUTHOR
1333
1333
 
1334
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1334
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1335
1335
 
1336
1336
  This library is free software; you can redistribute it and/or modify it
1337
1337
  under the same terms as Perl itself.