exiftool-vendored.exe 12.26.0 → 12.33.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 (53) hide show
  1. package/bin/exiftool_files/Changes +119 -4
  2. package/bin/exiftool_files/README +44 -43
  3. package/bin/exiftool_files/arg_files/xmp2exif.args +2 -1
  4. package/bin/exiftool_files/config_files/convert_regions.config +25 -14
  5. package/bin/exiftool_files/config_files/example.config +1 -1
  6. package/bin/exiftool_files/exiftool.pl +79 -66
  7. package/bin/exiftool_files/fmt_files/gpx.fmt +1 -1
  8. package/bin/exiftool_files/fmt_files/gpx_wpt.fmt +1 -1
  9. package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +11 -3
  10. package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +331 -0
  11. package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +26 -7
  12. package/bin/exiftool_files/lib/Image/ExifTool/DPX.pm +13 -2
  13. package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +98 -4
  14. package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +35 -10
  15. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +1 -0
  16. package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +13 -2
  17. package/bin/exiftool_files/lib/Image/ExifTool/GoPro.pm +16 -1
  18. package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +15 -3
  19. package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +7 -3
  20. package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +60 -26
  21. package/bin/exiftool_files/lib/Image/ExifTool/LIF.pm +153 -0
  22. package/bin/exiftool_files/lib/Image/ExifTool/Lang/nl.pm +60 -59
  23. package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +103 -7
  24. package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +2 -2
  25. package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +14 -3
  26. package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +10 -2
  27. package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +9 -2
  28. package/bin/exiftool_files/lib/Image/ExifTool/Other.pm +93 -0
  29. package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +9 -12
  30. package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +7 -6
  31. package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +14 -3
  32. package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +27 -5
  33. package/bin/exiftool_files/lib/Image/ExifTool/Photoshop.pm +6 -0
  34. package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +105 -24
  35. package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +203 -121
  36. package/bin/exiftool_files/lib/Image/ExifTool/README +5 -2
  37. package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +6 -1
  38. package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +47 -10
  39. package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +85 -34
  40. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +65 -5
  41. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +153 -32
  42. package/bin/exiftool_files/lib/Image/ExifTool/Torrent.pm +18 -11
  43. package/bin/exiftool_files/lib/Image/ExifTool/WritePDF.pl +1 -0
  44. package/bin/exiftool_files/lib/Image/ExifTool/WritePNG.pl +2 -0
  45. package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +8 -4
  46. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +3 -0
  47. package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +21 -4
  48. package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +3 -1
  49. package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +3 -1
  50. package/bin/exiftool_files/lib/Image/ExifTool/ZISRAW.pm +121 -2
  51. package/bin/exiftool_files/lib/Image/ExifTool.pm +8867 -8835
  52. package/bin/exiftool_files/lib/Image/ExifTool.pod +58 -56
  53. package/package.json +3 -3
@@ -16,7 +16,7 @@ use strict;
16
16
  use vars qw($VERSION);
17
17
  use Image::ExifTool qw(:DataAccess :Utils);
18
18
 
19
- $VERSION = '1.29';
19
+ $VERSION = '1.31';
20
20
 
21
21
  sub ProcessJpeg2000Box($$$);
22
22
  sub ProcessJUMD($$$);
@@ -116,9 +116,6 @@ my %j2cMarker = (
116
116
  0x76 => 'NLT', # non-linearity point transformation
117
117
  );
118
118
 
119
- my %jumbfTypes = (
120
- );
121
-
122
119
  # JPEG 2000 "box" (ie. atom) names
123
120
  # Note: only tags with a defined "Format" are extracted
124
121
  %Image::ExifTool::Jpeg2000::Main = (
@@ -127,10 +124,13 @@ my %jumbfTypes = (
127
124
  WRITE_PROC => \&ProcessJpeg2000Box,
128
125
  PREFERRED => 1, # always add these tags when writing
129
126
  NOTES => q{
130
- The tags below are extracted from JPEG 2000 images and the JUMBF metadata in
131
- JPEG images. Note that ExifTool currently writes only EXIF, IPTC and XMP
132
- tags in Jpeg2000 images.
127
+ The tags below are found in JPEG 2000 images and the JUMBF metadata in JPEG
128
+ images, but not all of these are extracted. Note that ExifTool currently
129
+ writes only EXIF, IPTC and XMP tags in Jpeg2000 images.
133
130
  },
131
+ #
132
+ # NOTE: ONLY TAGS WITH "Format" DEFINED ARE EXTRACTED!
133
+ #
134
134
  'jP ' => 'JP2Signature', # (ref 1)
135
135
  "jP\x1a\x1a" => 'JP2Signature', # (ref 2)
136
136
  prfl => 'Profile',
@@ -340,10 +340,20 @@ my %jumbfTypes = (
340
340
  },
341
341
  {
342
342
  Name => 'UUID-Signature', # (seen in JUMB data of JPEG images)
343
+ # (may be able to remove this when JUMBF specification is finalized)
343
344
  Condition => '$$valPt=~/^casg\x00\x11\x00\x10\x80\x00\x00\xaa\x00\x38\x9b\x71/',
344
345
  Format => 'undef',
345
346
  ValueConv => 'substr($val,16)',
346
347
  },
348
+ {
349
+ Name => 'UUID-C2PAClaimSignature', # (seen in incorrectly-formatted JUMB data of JPEG images)
350
+ # (may be able to remove this when JUMBF specification is finalized)
351
+ Condition => '$$valPt=~/^c2cs\x00\x11\x00\x10\x80\x00\x00\xaa\x00\x38\x9b\x71/',
352
+ SubDirectory => {
353
+ TagTable => 'Image::ExifTool::CBOR::Main',
354
+ Start => '$valuePtr + 16',
355
+ },
356
+ },
347
357
  {
348
358
  Name => 'UUID-Unknown',
349
359
  },
@@ -386,6 +396,27 @@ my %jumbfTypes = (
386
396
  },
387
397
  SubDirectory => { TagTable => 'Image::ExifTool::JSON::Main' },
388
398
  },
399
+ cbor => {
400
+ Name => 'CBORData',
401
+ Flags => [ 'Binary', 'Protected' ],
402
+ SubDirectory => { TagTable => 'Image::ExifTool::CBOR::Main' },
403
+ },
404
+ bfdb => { # used in JUMBF (see # (used when tag is renamed according to JUMDLabel)
405
+ Name => 'BinaryDataType',
406
+ Notes => 'JUMBF, MIME type and optional file name',
407
+ Format => 'undef',
408
+ # (ignore "toggles" byte and just extract MIME type and file name)
409
+ ValueConv => '$_=substr($val,1); s/\0+$//; s/\0/, /; $_',
410
+ JUMBF_Suffix => 'Type', # (used when tag is renamed according to JUMDLabel)
411
+ },
412
+ bidb => { # used in JUMBF
413
+ Name => 'BinaryData',
414
+ Notes => 'JUMBF',
415
+ Groups => { 2 => 'Preview' },
416
+ Format => 'undef',
417
+ Binary => 1,
418
+ JUMBF_Suffix => 'Data', # (used when tag is renamed according to JUMDLabel)
419
+ },
389
420
  #
390
421
  # stuff seen in JPEG XL images:
391
422
  #
@@ -607,23 +638,24 @@ my %jumbfTypes = (
607
638
  PROCESS_PROC => \&ProcessJUMD,
608
639
  GROUPS => { 0 => 'JUMBF', 1 => 'JUMBF', 2 => 'Image' },
609
640
  NOTES => 'Information extracted from the JUMBF description box.',
610
- 'jumd-type' => {
641
+ 'type' => {
611
642
  Name => 'JUMDType',
612
643
  ValueConv => 'unpack "H*", $val',
613
644
  PrintConv => q{
614
645
  my @a = $val =~ /^(\w{8})(\w{4})(\w{4})(\w{16})$/;
615
646
  return $val unless @a;
616
647
  my $ascii = pack 'H*', $a[0];
617
- $a[0] = $ascii if $ascii =~ /^[a-zA-Z0-9]{4}$/;
648
+ $a[0] = "($ascii)" if $ascii =~ /^[a-zA-Z0-9]{4}$/;
618
649
  return join '-', @a;
619
650
  },
620
651
  # seen:
621
652
  # cacb/cast/caas/cacl/casg/json-00110010800000aa00389b71
622
653
  # 6579d6fbdba2446bb2ac1b82feeb89d1 - JPEG image
623
654
  },
624
- 'jumd-label' => { Name => 'JUMDLabel' },
625
- 'jumd-flags' => {
626
- Name => 'JUMDFlags',
655
+ 'label' => { Name => 'JUMDLabel' },
656
+ 'toggles' => {
657
+ Name => 'JUMDToggles',
658
+ Unknown => 1,
627
659
  PrintConv => { BITMASK => {
628
660
  0 => 'Requestable',
629
661
  1 => 'Label',
@@ -631,8 +663,8 @@ my %jumbfTypes = (
631
663
  3 => 'Signature',
632
664
  }},
633
665
  },
634
- 'jumd-id' => { Name => 'JUMDID', Description => 'JUMD ID' },
635
- 'jumd-sig' => { Name => 'JUMDSignature', PrintConv => 'unpack "H*", $val' },
666
+ 'id' => { Name => 'JUMDID', Description => 'JUMD ID' },
667
+ 'sig' => { Name => 'JUMDSignature', PrintConv => 'unpack "H*", $val' },
636
668
  );
637
669
 
638
670
  #------------------------------------------------------------------------------
@@ -675,20 +707,21 @@ sub ProcessJUMD($$$)
675
707
  delete $$et{JUMBFLabel};
676
708
  $$dirInfo{DirLen} < 17 and $et->Warn('Truncated JUMD directory'), return 0;
677
709
  my $type = substr($$dataPt, $pos, 4);
678
- $et->HandleTag($tagTablePtr, 'jumd-type', substr($$dataPt, $pos, 16));
710
+ $et->HandleTag($tagTablePtr, 'type', substr($$dataPt, $pos, 16));
679
711
  $pos += 16;
680
712
  my $flags = Get8u($dataPt, $pos++);
681
- $et->HandleTag($tagTablePtr, 'jumd-flags', $flags);
713
+ $et->HandleTag($tagTablePtr, 'toggles', $flags);
682
714
  if ($flags & 0x02) { # label exists?
683
715
  pos($$dataPt) = $pos;
684
716
  $$dataPt =~ /\0/g or $et->Warn('Missing JUMD label terminator'), return 0;
685
717
  my $len = pos($$dataPt) - $pos;
686
718
  my $name = substr($$dataPt, $pos, $len);
687
- $et->HandleTag($tagTablePtr, 'jumd-label', $name);
719
+ $et->HandleTag($tagTablePtr, 'label', $name);
688
720
  $pos += $len;
689
721
  if ($len) {
690
722
  $name =~ s/[^-_a-zA-Z0-9]([a-z])/\U$1/g; # capitalize characters after illegal characters
691
723
  $name =~ tr/-_a-zA-Z0-9//dc; # remove other illegal characters
724
+ $name =~ s/__/_/; # collapse double underlines
692
725
  $name = ucfirst $name; # capitalize first letter
693
726
  $name = "Tag$name" if length($name) < 2; # must at least 2 characters long
694
727
  $$et{JUMBFLabel} = $name;
@@ -696,12 +729,12 @@ sub ProcessJUMD($$$)
696
729
  }
697
730
  if ($flags & 0x04) { # ID exists?
698
731
  $pos + 4 > $end and $et->Warn('Missing JUMD ID'), return 0;
699
- $et->HandleTag($tagTablePtr, 'jumd-id', Get32u($dataPt, $pos));
732
+ $et->HandleTag($tagTablePtr, 'id', Get32u($dataPt, $pos));
700
733
  $pos += 4;
701
734
  }
702
735
  if ($flags & 0x08) { # signature exists?
703
736
  $pos + 32 > $end and $et->Warn('Missing JUMD signature'), return 0;
704
- $et->HandleTag($tagTablePtr, 'jumd-sig', substr($$dataPt, $pos, 32));
737
+ $et->HandleTag($tagTablePtr, 'sig', substr($$dataPt, $pos, 32));
705
738
  $pos += 32;
706
739
  }
707
740
  $pos == $end or $et->Warn('Extra data in JUMD box'." $pos $end", 1);
@@ -931,6 +964,14 @@ sub ProcessJpeg2000Box($$$)
931
964
  }
932
965
  }
933
966
  }
967
+ # create new tag for JUMBF data values with name corresponding to JUMBFLabel
968
+ if ($tagInfo and $$et{JUMBFLabel} and (not $$tagInfo{SubDirectory} or $$tagInfo{BlockExtract})) {
969
+ $tagInfo = { %$tagInfo, Name => $$et{JUMBFLabel} . ($$tagInfo{JUMBF_Suffix} || '') };
970
+ delete $$tagInfo{Description};
971
+ AddTagToTable($tagTablePtr, '_JUMBF_' . $$et{JUMBFLabel}, $tagInfo);
972
+ delete $$tagInfo{Protected}; # (must do this so -j -b returns JUMBF binary data)
973
+ $$tagInfo{TagID} = $boxID;
974
+ }
934
975
  if ($verbose) {
935
976
  $et->VerboseInfo($boxID, $tagInfo,
936
977
  Table => $tagTablePtr,
@@ -941,13 +982,6 @@ sub ProcessJpeg2000Box($$$)
941
982
  );
942
983
  next unless $tagInfo;
943
984
  }
944
- # create new tag for JUMBF data values with name corresponding to JUMBFLabel
945
- if ($$et{JUMBFLabel} and (not $$tagInfo{SubDirectory} or $$tagInfo{BlockExtract})) {
946
- $tagInfo = { %$tagInfo, Name => $$et{JUMBFLabel} };
947
- AddTagToTable($tagTablePtr, '_JUMBF_' . $$et{JUMBFLabel}, $tagInfo);
948
- delete $$tagInfo{Protected}; # (must do this so -j -b returns JUMBF binary data)
949
- $$tagInfo{TagID} = $boxID;
950
- }
951
985
  if ($$tagInfo{SubDirectory}) {
952
986
  my $subdir = $$tagInfo{SubDirectory};
953
987
  my $subdirStart = $valuePtr;
@@ -0,0 +1,153 @@
1
+ #------------------------------------------------------------------------------
2
+ # File: LIF.pm
3
+ #
4
+ # Description: Read LIF (Leica Image File) files
5
+ #
6
+ # Revisions: 2021-06-21 - P. Harvey Created
7
+ #------------------------------------------------------------------------------
8
+
9
+ package Image::ExifTool::LIF;
10
+
11
+ use strict;
12
+ use vars qw($VERSION);
13
+ use Image::ExifTool qw(:DataAccess :Utils);
14
+ use Image::ExifTool::XMP;
15
+
16
+ $VERSION = '1.00';
17
+
18
+ %Image::ExifTool::LIF::Main = (
19
+ GROUPS => { 0 => 'XML', 1 => 'XML', 2 => 'Image' },
20
+ PROCESS_PROC => \&Image::ExifTool::XMP::ProcessXMP,
21
+ VARS => { NO_ID => 1 },
22
+ NOTES => q{
23
+ Tags extracted from Leica Image Format (LIF) imaging files. As well as the
24
+ tags listed below, all available information is extracted from the
25
+ XML-format metadata in the LIF header.
26
+ },
27
+ TimeStampList => {
28
+ Groups => { 2 => 'Time' },
29
+ ValueConv => q{
30
+ my $unixTimeZero = 134774 * 24 * 3600;
31
+ my @vals = split ' ', $val;
32
+ foreach (@vals) {
33
+ $_ = 1e-7 * hex($_);
34
+ # shift from Jan 1, 1601 to Jan 1, 1970
35
+ $_ = Image::ExifTool::ConvertUnixTime($_ - $unixTimeZero);
36
+ }
37
+ return \@vals;
38
+ },
39
+ },
40
+ );
41
+
42
+ #------------------------------------------------------------------------------
43
+ # Shorten obscenely long LIF tag names
44
+ # Inputs: Tag name
45
+ # Returns: Shortened tag name
46
+ sub ShortenTagNames($)
47
+ {
48
+ local $_;
49
+ $_ = shift;
50
+ s/DescriptionDimensionsDimensionDescription/Dimensions/;
51
+ s/DescriptionChannelsChannelDescription/Channel/;
52
+ s/ShutterListShutter/Shutter/;
53
+ s/SettingDefinition/Setting/;
54
+ s/AdditionalZPositionListAdditionalZPosition/AdditionalZPosition/;
55
+ s/LMSDataContainerHeader//g;
56
+ s/FilterWheelWheel/FilterWheel/;
57
+ s/FilterWheelFilter/FilterWheel/;
58
+ s/DetectorListDetector/Detector/;
59
+ s/OnlineDyeSeparationOnlineDyeSeparation/OnlineDyeSeparation/;
60
+ s/AotfListAotf/Aotf/;
61
+ s/SettingAotfLaserLineSetting/SettingAotfLaser/;
62
+ s/DataROISetROISet/DataROISet/;
63
+ s/AdditionalZPosition/AddZPos/;
64
+ s/FRAPplusBlock_FRAPBlock_FRAP_PrePost_Info/FRAP_/;
65
+ s/FRAPplusBlock_FRAPBlock_FRAP_(Master)?/FRAP_/;
66
+ s/LDM_Block_SequentialLDM_Block_Sequential_/LDM_/;
67
+ s/ATLConfocalSetting/ATLConfocal/;
68
+ s/LaserArrayLaser/Laser/;
69
+ s/LDM_Master/LDM_/;
70
+ s/(List)?ATLConfocal/ATL_/;
71
+ s/Separation/Sep/;
72
+ s/BleachPointsElement/BleachPoint/;
73
+ s/BeamPositionBeamPosition/BeamPosition/;
74
+ s/DataROISetPossible(ROI)?/DataROISet/;
75
+ s/RoiElementChildrenElementDataROISingle(Roi)?/Roi/;
76
+ s/InfoLaserLineSettingArrayLaserLineSetting/LastLineSetting/;
77
+ s/FilterWheelWheelNameFilterName/FilterWheelFilterName/;
78
+ s/LUT_ListLut/Lut/;
79
+ s/ROI_ListRoiRoidata/ROI_/;
80
+ s/LaserLineSettingArrayLaserLineSetting/LaserLineSetting/;
81
+ return $_;
82
+ }
83
+
84
+ #------------------------------------------------------------------------------
85
+ # Extract metadata from a LIF image
86
+ # Inputs: 0) ExifTool object reference, 1) dirInfo reference
87
+ # Returns: 1 on success, 0 if this wasn't a valid LIF file
88
+ sub ProcessLIF($$)
89
+ {
90
+ my ($et, $dirInfo) = @_;
91
+ my $raf = $$dirInfo{RAF};
92
+ my $buff;
93
+
94
+ # verify this is a valid LIF file
95
+ return 0 unless $raf->Read($buff, 15) == 15 and $buff =~ /^\x70\0{3}.{4}\x2a.{4}<\0/s;
96
+
97
+ $et->SetFileType();
98
+ SetByteOrder('II');
99
+
100
+ my $size = Get32u(\$buff, 4); # XML chunk size
101
+ my $len = Get32u(\$buff, 9) * 2; # XML data length
102
+
103
+ $size < $len and $et->Error('Corrupted LIF XML block'), return 1;
104
+ $size > 100000000 and $et->Error('LIF XML block too large'), return 1;
105
+
106
+ $raf->Seek(-2, 1) and $raf->Read($buff, $len) == $len or $et->Error('Truncated LIF XML block'), return 1;
107
+
108
+ my $tagTablePtr = GetTagTable('Image::ExifTool::LIF::Main');
109
+
110
+ # convert from UCS2 to UTF8
111
+ my $xml = Image::ExifTool::Decode($et, $buff, 'UCS2', 'II', 'UTF8');
112
+
113
+ my %dirInfo = ( DataPt => \$xml );
114
+
115
+ $$et{XmpIgnoreProps} = [ 'LMSDataContainerHeader', 'Element', 'Children', 'Data', 'Image', 'Attachment' ];
116
+ $$et{ShortenXmpTags} = \&ShortenTagNames;
117
+
118
+ $et->ProcessDirectory(\%dirInfo, $tagTablePtr);
119
+
120
+ return 1;
121
+ }
122
+
123
+ 1; # end
124
+
125
+ __END__
126
+
127
+ =head1 NAME
128
+
129
+ Image::ExifTool::LIF - Read LIF meta information
130
+
131
+ =head1 SYNOPSIS
132
+
133
+ This module is used by Image::ExifTool
134
+
135
+ =head1 DESCRIPTION
136
+
137
+ This module contains definitions required by Image::ExifTool to read
138
+ metadata from Leica Image File (LIF) images.
139
+
140
+ =head1 AUTHOR
141
+
142
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
143
+
144
+ This library is free software; you can redistribute it and/or modify it
145
+ under the same terms as Perl itself.
146
+
147
+ =head1 SEE ALSO
148
+
149
+ L<Image::ExifTool::TagNames/LIF Tags>,
150
+ L<Image::ExifTool(3pm)|Image::ExifTool>
151
+
152
+ =cut
153
+
@@ -11,7 +11,7 @@ package Image::ExifTool::Lang::nl;
11
11
  use strict;
12
12
  use vars qw($VERSION);
13
13
 
14
- $VERSION = '1.12';
14
+ $VERSION = '1.13';
15
15
 
16
16
  %Image::ExifTool::Lang::nl::Translate = (
17
17
  'AEBAutoCancel' => {
@@ -1502,97 +1502,98 @@ $VERSION = '1.12';
1502
1502
  'GIFVersion' => 'GIF versie',
1503
1503
  'GPSAltitude' => 'Hoogte',
1504
1504
  'GPSAltitudeRef' => {
1505
- Description => 'Hoogte referentie',
1505
+ Description => 'GPS hoogte - referentie',
1506
1506
  PrintConv => {
1507
- 'Above Sea Level' => 'Zee spiegel',
1508
- 'Below Sea Level' => 'Zee spiegel referentie (negatieve waarde)',
1507
+ 'Above Sea Level' => 'Boven zeeniveau',
1508
+ 'Below Sea Level' => 'Onder zeeniveau',
1509
1509
  },
1510
1510
  },
1511
- 'GPSAreaInformation' => 'Naam van het GPS gebied',
1512
- 'GPSDOP' => 'Meet nauwkeurigheid',
1513
- 'GPSDateStamp' => 'GPS datum',
1514
- 'GPSDateTime' => 'GPS tijd (atoomklok)',
1515
- 'GPSDestBearing' => 'Motiefrichting',
1511
+ 'GPSAreaInformation' => 'GPS naam van het gebied',
1512
+ 'GPSDOP' => 'GPS meetnauwkeurigheid',
1513
+ 'GPSDateStamp' => 'GPS UTC datum',
1514
+ 'GPSDateTime' => 'GPS UTC datum en tijd',
1515
+ 'GPSDestBearing' => 'GPS peiling van bestemming',
1516
1516
  'GPSDestBearingRef' => {
1517
- Description => 'Referentie voor de motiefrichting',
1517
+ Description => 'GPS peiling van bestemming - referentie',
1518
1518
  PrintConv => {
1519
- 'Magnetic North' => 'Magnetische uitrichting',
1520
- 'True North' => 'Geografische uitrichting',
1519
+ 'Magnetic North' => 'Magnetische noorden',
1520
+ 'True North' => 'Geografische noorden',
1521
1521
  },
1522
1522
  },
1523
- 'GPSDestDistance' => 'Afstand tot bestemming',
1523
+ 'GPSDestDistance' => 'GPS afstand tot bestemming',
1524
1524
  'GPSDestDistanceRef' => {
1525
- Description => 'Referentie voor de afstand tot de bestemming',
1525
+ Description => 'GPS afstand tot bestemming - referentie',
1526
1526
  PrintConv => {
1527
- 'Miles' => 'Mijlen',
1528
- 'Nautical Miles' => 'Knopen',
1527
+ 'Miles' => 'Engelse mijlen',
1528
+ 'Nautical Miles' => 'Zeemijlen',
1529
1529
  },
1530
1530
  },
1531
- 'GPSDestLatitude' => 'Breedte van het doel',
1531
+ 'GPSDestLatitude' => 'GPS breedtegraad van bestemming',
1532
1532
  'GPSDestLatitudeRef' => {
1533
- Description => 'Referentie voor de breedte van het doel',
1533
+ Description => 'GPS breedtegraad van bestemming - referentie',
1534
1534
  PrintConv => {
1535
- 'North' => 'Noordelijke breedte',
1536
- 'South' => 'Zuidelijke breedte',
1535
+ 'North' => 'Noorderbreedte',
1536
+ 'South' => 'Zuiderbreedte',
1537
1537
  },
1538
1538
  },
1539
- 'GPSDestLongitude' => 'Lengtegraad van het doel',
1539
+ 'GPSDestLongitude' => 'GPS lengtegraad van bestemming',
1540
1540
  'GPSDestLongitudeRef' => {
1541
- Description => 'Referentie voor de lengte van het doel',
1541
+ Description => 'GPS lengtegraad van bestemming - referentie',
1542
1542
  PrintConv => {
1543
- 'East' => 'Oostelijke lengte',
1544
- 'West' => 'Westlijke lengte',
1543
+ 'East' => 'Oosterlengte',
1544
+ 'West' => 'Westerlengte',
1545
1545
  },
1546
1546
  },
1547
1547
  'GPSDifferential' => {
1548
1548
  Description => 'GPS differentiaal correctie',
1549
1549
  PrintConv => {
1550
- 'Differential Corrected' => 'Differentiaal correctie toegepast',
1551
- 'No Correction' => 'Meting zonder differentiaal correctie',
1550
+ 'Differential Corrected' => 'Met differentiaal correctie',
1551
+ 'No Correction' => 'Zonder differentiaal correctie',
1552
1552
  },
1553
1553
  },
1554
- 'GPSImgDirection' => 'Richting van de afbeelding',
1554
+ 'GPSImgDirection' => 'GPS peiling van de afbeelding',
1555
1555
  'GPSImgDirectionRef' => {
1556
- Description => 'Referentie voor de uitrichting van de afbeelding',
1556
+ Description => 'GPS peiling van de afbeelding - referentie',
1557
1557
  PrintConv => {
1558
- 'Magnetic North' => 'Magnetische uitrichting',
1559
- 'True North' => 'Geografische uitrichting',
1558
+ 'Magnetic North' => 'Magnetische noorden',
1559
+ 'True North' => 'Geografische noorden',
1560
1560
  },
1561
1561
  },
1562
- 'GPSInfo' => 'GPS Info IFD-wijzer',
1563
- 'GPSLatitude' => 'Breedte graad',
1562
+ 'GPSInfo' => 'GPS Info',
1563
+ 'GPSLatitude' => 'GPS breedtegraad',
1564
1564
  'GPSLatitudeRef' => {
1565
- Description => 'Noord. of zuid. breedte',
1565
+ Description => 'GPS breedtegraad - referentie',
1566
1566
  PrintConv => {
1567
- 'North' => 'Noordelijke breedte',
1568
- 'South' => 'Zuidlijke breedte',
1567
+ 'North' => 'Noorderbreedte',
1568
+ 'South' => 'Zuiderbreedte',
1569
1569
  },
1570
1570
  },
1571
- 'GPSLongitude' => 'Geografische lengte',
1571
+ 'GPSLongitude' => 'GPS lengtegraad',
1572
1572
  'GPSLongitudeRef' => {
1573
- Description => 'Oost. of west. lengte',
1573
+ Description => 'GPS lengtegraad - referentie',
1574
1574
  PrintConv => {
1575
- 'East' => 'Oostlijke lengte',
1576
- 'West' => 'Westlijke lengte',
1575
+ 'East' => 'Oosterlengte',
1576
+ 'West' => 'Westerlengte',
1577
1577
  },
1578
1578
  },
1579
- 'GPSMapDatum' => 'Geodatische datum',
1579
+ 'GPSMapDatum' => 'GPS geodetisch datum',
1580
1580
  'GPSMeasureMode' => {
1581
- Description => 'GPS meet methode',
1581
+ Description => 'GPS meetmethode',
1582
1582
  PrintConv => {
1583
- '2-D' => '2 dimensionale meting',
1584
- '2-Dimensional' => '2 dimensionale meting',
1585
- '2-Dimensional Measurement' => '2 dimensionale meting',
1586
- '3-D' => '3 dimensionale meting',
1587
- '3-Dimensional' => '3 dimensionale meting',
1588
- '3-Dimensional Measurement' => '3 dimensionale meting',
1583
+ '2-D' => 'Tweedimensionale meting',
1584
+ '2-Dimensional' => 'Tweedimensionale meting',
1585
+ '2-Dimensional Measurement' => 'Tweedimensionale meting',
1586
+ '3-D' => 'Driedimensionale meting',
1587
+ '3-Dimensional' => 'Driedimensionale meting',
1588
+ '3-Dimensional Measurement' => 'Driedimensionale meting',
1589
1589
  },
1590
1590
  },
1591
- 'GPSProcessingMethod' => 'Naam van de GPS verwerk methode',
1592
- 'GPSSatellites' => 'Voor de meting gebruikte satellieten',
1593
- 'GPSSpeed' => 'Snelheid van de GPS ontvanger',
1591
+ 'GPSPosition' => 'GPS positie',
1592
+ 'GPSProcessingMethod' => 'GPS verwerkingsmethode',
1593
+ 'GPSSatellites' => 'GPS satellieten gebruikt voor de meting',
1594
+ 'GPSSpeed' => 'GPS ontvanger bewegingssnelheid',
1594
1595
  'GPSSpeedRef' => {
1595
- Description => 'Snelheids eenheid',
1596
+ Description => 'GPS ontvanger bewegingssnelheid - referentie',
1596
1597
  PrintConv => {
1597
1598
  'km/h' => 'Kilometer per uur',
1598
1599
  'knots' => 'Knopen',
@@ -1602,20 +1603,20 @@ $VERSION = '1.12';
1602
1603
  'GPSStatus' => {
1603
1604
  Description => 'GPS ontvanger status',
1604
1605
  PrintConv => {
1605
- 'Measurement Active' => 'Meting loopt',
1606
- 'Measurement Void' => 'Interoperabiliteit voor metingen',
1606
+ 'Measurement Active' => 'Actuele meting beschikbaar',
1607
+ 'Measurement Void' => 'Actuele meting niet beschikbaar',
1607
1608
  },
1608
1609
  },
1609
- 'GPSTimeStamp' => 'GPS tijd (atoomklok)',
1610
- 'GPSTrack' => 'Bewegingsrichting',
1610
+ 'GPSTimeStamp' => 'GPS UTC tijd',
1611
+ 'GPSTrack' => 'GPS ontvanger bewegingsrichting',
1611
1612
  'GPSTrackRef' => {
1612
- Description => 'Referentie voor de bewegingsrichting',
1613
+ Description => 'GPS ontvanger bewegingsrichting - referentie',
1613
1614
  PrintConv => {
1614
- 'Magnetic North' => 'Magnetische uitrichting',
1615
- 'True North' => 'Geographische uitrichting',
1615
+ 'Magnetic North' => 'Magnetische noorden',
1616
+ 'True North' => 'Geografische noorden',
1616
1617
  },
1617
1618
  },
1618
- 'GPSVersionID' => 'GPS tag versie',
1619
+ 'GPSVersionID' => 'GPS versie ID',
1619
1620
  'GainControl' => {
1620
1621
  Description => 'Belichtingsversterking',
1621
1622
  PrintConv => {