exiftool-vendored.exe 12.76.0 → 12.80.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 (55) hide show
  1. package/bin/exiftool_files/Changes +79 -4
  2. package/bin/exiftool_files/README +3 -3
  3. package/bin/exiftool_files/config_files/acdsee.config +37 -57
  4. package/bin/exiftool_files/config_files/example.config +16 -2
  5. package/bin/exiftool_files/exiftool.pl +87 -29
  6. package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +12 -9
  7. package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +7 -1
  8. package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +52 -4
  9. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +3 -0
  10. package/bin/exiftool_files/lib/Image/ExifTool/GPS.pm +5 -3
  11. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/cs.pm +978 -0
  12. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/de.pm +1975 -0
  13. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/en_ca.pm +44 -0
  14. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/en_gb.pm +124 -0
  15. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/es.pm +2921 -0
  16. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/fi.pm +1116 -0
  17. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/fr.pm +3171 -0
  18. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/it.pm +2750 -0
  19. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/ja.pm +10256 -0
  20. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/ko.pm +4499 -0
  21. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/nl.pm +1270 -0
  22. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/pl.pm +3019 -0
  23. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/ru.pm +18220 -0
  24. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/sk.pm +441 -0
  25. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/sv.pm +714 -0
  26. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/tr.pm +452 -0
  27. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/zh_cn.pm +2225 -0
  28. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/zh_tw.pm +72 -0
  29. package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.dat +0 -0
  30. package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.pm +775 -0
  31. package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +8 -1
  32. package/bin/exiftool_files/lib/Image/ExifTool/HtmlDump.pm +2 -1
  33. package/bin/exiftool_files/lib/Image/ExifTool/Import.pm +5 -2
  34. package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +15 -10
  35. package/bin/exiftool_files/lib/Image/ExifTool/MWG.pm +1 -0
  36. package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +19 -4
  37. package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +2 -2
  38. package/bin/exiftool_files/lib/Image/ExifTool/Ogg.pm +3 -2
  39. package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +3 -1
  40. package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +17 -17
  41. package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +5 -5
  42. package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +1 -1
  43. package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +183 -11
  44. package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +253 -237
  45. package/bin/exiftool_files/lib/Image/ExifTool/README +6 -5
  46. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +2624 -2520
  47. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +184 -4
  48. package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +15 -1
  49. package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +1 -1
  50. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +59 -8
  51. package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +17 -2
  52. package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +64 -0
  53. package/bin/exiftool_files/lib/Image/ExifTool.pm +249 -47
  54. package/bin/exiftool_files/lib/Image/ExifTool.pod +57 -25
  55. package/package.json +3 -3
@@ -23,7 +23,7 @@ use vars qw($VERSION);
23
23
  use Image::ExifTool qw(:DataAccess :Utils);
24
24
  use Image::ExifTool::Canon;
25
25
 
26
- $VERSION = '1.37';
26
+ $VERSION = '1.38';
27
27
 
28
28
  sub ProcessCanonVRD($$;$);
29
29
  sub WriteCanonVRD($$;$);
@@ -51,6 +51,7 @@ my %vrdFormat = (
51
51
  8 => 'int32u',
52
52
  9 => 'int32s',
53
53
  13 => 'double',
54
+ 24 => 'int32s', # (rectangle coordinates)
54
55
  33 => 'int32u', # (array)
55
56
  38 => 'double', # (array)
56
57
  # 254 => 'undef', ?
@@ -1226,6 +1227,11 @@ my $blankFooter = "CANON OPTIONAL DATA\0" . ("\0" x 42) . "\xff\xd9";
1226
1227
  # 0x20a08 - (unknown picture style settings)
1227
1228
  # 0x20a09 - Custom picture style settings
1228
1229
  # 0x20a20 - Fine Detail picture style settings
1230
+ 0x20b10 => 'DPRAWMicroadjustBackFront', #forum15660
1231
+ 0x20b12 => 'DPRAWMicroadjustStrength', #forum15660
1232
+ 0x20b20 => 'DPRAWBokehShift', #forum15660
1233
+ 0x20b21 => 'DPRAWBokehShiftArea', #PH
1234
+ 0x20b30 => 'DPRAWGhostingReductionArea', #forum15660
1229
1235
  0x30101 => {
1230
1236
  Name => 'CropAspectRatio',
1231
1237
  PrintConv => {
@@ -57,7 +57,7 @@ use vars qw($VERSION $AUTOLOAD @formatSize @formatName %formatNumber %intFormat
57
57
  use Image::ExifTool qw(:DataAccess :Utils);
58
58
  use Image::ExifTool::MakerNotes;
59
59
 
60
- $VERSION = '4.50';
60
+ $VERSION = '4.51';
61
61
 
62
62
  sub ProcessExif($$$);
63
63
  sub WriteExif($$$);
@@ -593,6 +593,14 @@ my %opcodeInfo = (
593
593
  OffsetPair => 0x117, # point to associated byte counts
594
594
  DataTag => 'OtherImage',
595
595
  },
596
+ {
597
+ Condition => '$$self{Compression} and $$self{Compression} eq "52546"', # DNG 1.7 Jpeg XL
598
+ Name => 'PreviewJXLStart',
599
+ IsOffset => 1,
600
+ IsImageData => 1,
601
+ OffsetPair => 0x117, # point to associated byte counts
602
+ DataTag => 'PreviewJXL',
603
+ },
596
604
  {
597
605
  # (APP1 IFD2 is for Leica JPEG preview)
598
606
  Condition => q[
@@ -687,6 +695,12 @@ my %opcodeInfo = (
687
695
  OffsetPair => 0x111, # point to associated offset
688
696
  DataTag => 'OtherImage',
689
697
  },
698
+ {
699
+ Condition => '$$self{Compression} and $$self{Compression} eq "52546"', # DNG 1.7 Jpeg XL
700
+ Name => 'PreviewJXLLength',
701
+ OffsetPair => 0x111, # point to associated offset
702
+ DataTag => 'PreviewJXL',
703
+ },
690
704
  {
691
705
  # (APP1 IFD2 is for Leica JPEG preview)
692
706
  Condition => q[
@@ -2421,7 +2435,7 @@ my %opcodeInfo = (
2421
2435
  Count => -1, # 2, 3 or 4 values
2422
2436
  },
2423
2437
  0x9215 => 'ExposureIndex', #12
2424
- 0x9216 => 'TIFF-EPStandardID', #12
2438
+ 0x9216 => { Name => 'TIFF-EPStandardID', PrintConv => '$val =~ tr/ /./; $val' }, #12
2425
2439
  0x9217 => { #12
2426
2440
  Name => 'SensingMethod',
2427
2441
  Groups => { 2 => 'Camera' },
@@ -2711,7 +2725,7 @@ my %opcodeInfo = (
2711
2725
  Count => 2,
2712
2726
  },
2713
2727
  0xa215 => { Name => 'ExposureIndex', Writable => 'rational64u' },
2714
- 0xa216 => 'TIFF-EPStandardID',
2728
+ 0xa216 => { Name => 'TIFF-EPStandardID', PrintConv => '$val =~ tr/ /./; $val' },
2715
2729
  0xa217 => {
2716
2730
  Name => 'SensingMethod',
2717
2731
  Groups => { 2 => 'Camera' },
@@ -4971,6 +4985,39 @@ my %subSecConv = (
4971
4985
  Image::ExifTool::Exif::ExtractImage($self,$val[0],$val[1],"OtherImage");
4972
4986
  },
4973
4987
  },
4988
+ PreviewJXL => {
4989
+ Groups => { 0 => 'EXIF', 1 => 'SubIFD', 2 => 'Preview' },
4990
+ Require => {
4991
+ 0 => 'PreviewJXLStart',
4992
+ 1 => 'PreviewJXLLength',
4993
+ },
4994
+ Desire => {
4995
+ 2 => 'PreviewJXLStart (1)',
4996
+ 3 => 'PreviewJXLLength (1)',
4997
+ },
4998
+ # retrieve all other JXL images
4999
+ RawConv => q{
5000
+ if ($val[2] and $val[3]) {
5001
+ my $i = 1;
5002
+ for (;;) {
5003
+ my %val = ( 0 => $$val{2}, 1 => $$val{3} );
5004
+ $self->FoundTag($tagInfo, \%val);
5005
+ ++$i;
5006
+ $$val{2} = "$$val{0} ($i)";
5007
+ last unless defined $$self{VALUE}{$$val{2}};
5008
+ $$val{3} = "$$val{1} ($i)";
5009
+ last unless defined $$self{VALUE}{$$val{3}};
5010
+ }
5011
+ }
5012
+ @grps = $self->GetGroup($$val{0});
5013
+ my $image = $self->ExtractBinary($val[0], $val[1], 'PreviewJXL');
5014
+ unless ($image =~ /^(Binary data|\xff\x0a|\0\0\0\x0cJXL \x0d\x0a......ftypjxl )/s) {
5015
+ $self->Warn("$tag is not a valid JXL image",1);
5016
+ return undef;
5017
+ }
5018
+ return \$image;
5019
+ },
5020
+ },
4974
5021
  PreviewImageSize => {
4975
5022
  Require => {
4976
5023
  0 => 'PreviewImageWidth',
@@ -5096,7 +5143,8 @@ my %subSecConv = (
5096
5143
  GPSLongitudeRef => '(defined $val and $val =~ / (-?)/) ? ($1 ? "W" : "E") : undef',
5097
5144
  },
5098
5145
  PrintConvInv => q{
5099
- return undef unless $val =~ /(.*? ?[NS]?), ?(.*? ?[EW]?)$/;
5146
+ return undef unless $val =~ /(.*? ?[NS]?), ?(.*? ?[EW]?)$/ or
5147
+ $val =~ /^\s*(-?\d+(?:\.\d+)?)\s*(-?\d+(?:\.\d+)?)\s*$/;
5100
5148
  my ($lat, $lon) = ($1, $2);
5101
5149
  require Image::ExifTool::GPS;
5102
5150
  $lat = Image::ExifTool::GPS::ToDegrees($lat, 1, "lat");
@@ -528,6 +528,7 @@ my %faceCategories = (
528
528
  1 => 'Full-frame on GFX', #IB
529
529
  2 => 'Sports Finder Mode', # (mechanical shutter)
530
530
  4 => 'Electronic Shutter 1.25x Crop', # (continuous high)
531
+ 8 => 'Digital Tele-Conv', #forum15784
531
532
  },
532
533
  },
533
534
  0x104e => { #forum10800 (X-Pro3)
@@ -549,6 +550,8 @@ my %faceCategories = (
549
550
  3 => 'Electronic Front Curtain', #10
550
551
  },
551
552
  },
553
+ 0x1051 => { Name => 'CropTopLeft', Writable => 'int32u' }, #forum15784
554
+ 0x1052 => { Name => 'CropCenter', Writable => 'int32u' }, #forum15784
552
555
  # 0x1100 - This may not work well for newer cameras (ref forum12682)
553
556
  0x1100 => [{
554
557
  Name => 'AutoBracketing',
@@ -12,7 +12,7 @@ use strict;
12
12
  use vars qw($VERSION);
13
13
  use Image::ExifTool::Exif;
14
14
 
15
- $VERSION = '1.55';
15
+ $VERSION = '1.56';
16
16
 
17
17
  my %coordConv = (
18
18
  ValueConv => 'Image::ExifTool::GPS::ToDegrees($val)',
@@ -491,7 +491,7 @@ sub PrintTimeStamp($)
491
491
  sub ToDMS($$;$$)
492
492
  {
493
493
  my ($et, $val, $doPrintConv, $ref) = @_;
494
- my ($fmt, @fmt, $num, $sign, $rtnVal, $neg);
494
+ my ($fmt, @fmt, $num, $sign, $minus, $rtnVal, $neg);
495
495
 
496
496
  unless (length $val) {
497
497
  # don't convert an empty value
@@ -503,8 +503,10 @@ sub ToDMS($$;$$)
503
503
  $val = -$val;
504
504
  $ref = {N => 'S', E => 'W'}->{$ref};
505
505
  $sign = '-';
506
+ $minus = '-';
506
507
  } else {
507
508
  $sign = '+';
509
+ $minus = '';
508
510
  }
509
511
  $ref = " $ref" unless $doPrintConv and $doPrintConv eq '2';
510
512
  } else {
@@ -522,7 +524,7 @@ sub ToDMS($$;$$)
522
524
  $fmt = q{%d deg %d' %.2f"} . $ref;
523
525
  } elsif ($ref) {
524
526
  # use signed value instead of reference direction if specified
525
- $fmt =~ s/%\+/$sign%/g or $fmt .= $ref;
527
+ $fmt =~ s/%\+/$sign%/g or $fmt =~ s/%-/$minus%/g or $fmt .= $ref;
526
528
  } else {
527
529
  $fmt =~ s/%\+/%/g; # don't know sign, so don't print it
528
530
  }