exiftool_vendored 12.18.0 → 12.33.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +236 -4
  3. data/bin/MANIFEST +23 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +45 -43
  7. data/bin/arg_files/xmp2exif.args +2 -1
  8. data/bin/config_files/acdsee.config +193 -6
  9. data/bin/config_files/convert_regions.config +25 -14
  10. data/bin/config_files/cuepointlist.config +70 -0
  11. data/bin/config_files/example.config +2 -9
  12. data/bin/exiftool +152 -97
  13. data/bin/fmt_files/gpx.fmt +2 -2
  14. data/bin/fmt_files/gpx_wpt.fmt +2 -2
  15. data/bin/fmt_files/kml.fmt +1 -1
  16. data/bin/fmt_files/kml_track.fmt +1 -1
  17. data/bin/lib/Image/ExifTool/Apple.pm +3 -2
  18. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +31 -13
  19. data/bin/lib/Image/ExifTool/CBOR.pm +331 -0
  20. data/bin/lib/Image/ExifTool/Canon.pm +44 -19
  21. data/bin/lib/Image/ExifTool/DJI.pm +6 -6
  22. data/bin/lib/Image/ExifTool/DPX.pm +13 -2
  23. data/bin/lib/Image/ExifTool/DjVu.pm +6 -5
  24. data/bin/lib/Image/ExifTool/Exif.pm +124 -13
  25. data/bin/lib/Image/ExifTool/FITS.pm +13 -2
  26. data/bin/lib/Image/ExifTool/FlashPix.pm +35 -10
  27. data/bin/lib/Image/ExifTool/FujiFilm.pm +19 -8
  28. data/bin/lib/Image/ExifTool/GPS.pm +22 -11
  29. data/bin/lib/Image/ExifTool/Geotag.pm +13 -2
  30. data/bin/lib/Image/ExifTool/GoPro.pm +16 -1
  31. data/bin/lib/Image/ExifTool/ICC_Profile.pm +2 -2
  32. data/bin/lib/Image/ExifTool/ID3.pm +15 -3
  33. data/bin/lib/Image/ExifTool/JPEG.pm +74 -4
  34. data/bin/lib/Image/ExifTool/JSON.pm +30 -5
  35. data/bin/lib/Image/ExifTool/Jpeg2000.pm +395 -16
  36. data/bin/lib/Image/ExifTool/LIF.pm +153 -0
  37. data/bin/lib/Image/ExifTool/Lang/nl.pm +60 -59
  38. data/bin/lib/Image/ExifTool/M2TS.pm +137 -5
  39. data/bin/lib/Image/ExifTool/MIE.pm +4 -3
  40. data/bin/lib/Image/ExifTool/MRC.pm +341 -0
  41. data/bin/lib/Image/ExifTool/MWG.pm +3 -3
  42. data/bin/lib/Image/ExifTool/MXF.pm +1 -1
  43. data/bin/lib/Image/ExifTool/MacOS.pm +3 -3
  44. data/bin/lib/Image/ExifTool/Microsoft.pm +298 -82
  45. data/bin/lib/Image/ExifTool/Nikon.pm +18 -5
  46. data/bin/lib/Image/ExifTool/NikonSettings.pm +19 -2
  47. data/bin/lib/Image/ExifTool/Olympus.pm +10 -3
  48. data/bin/lib/Image/ExifTool/Other.pm +93 -0
  49. data/bin/lib/Image/ExifTool/PDF.pm +9 -12
  50. data/bin/lib/Image/ExifTool/PNG.pm +8 -7
  51. data/bin/lib/Image/ExifTool/Panasonic.pm +28 -3
  52. data/bin/lib/Image/ExifTool/Pentax.pm +28 -5
  53. data/bin/lib/Image/ExifTool/PhaseOne.pm +4 -3
  54. data/bin/lib/Image/ExifTool/Photoshop.pm +6 -0
  55. data/bin/lib/Image/ExifTool/QuickTime.pm +234 -75
  56. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +283 -141
  57. data/bin/lib/Image/ExifTool/README +5 -2
  58. data/bin/lib/Image/ExifTool/RIFF.pm +89 -12
  59. data/bin/lib/Image/ExifTool/Samsung.pm +48 -10
  60. data/bin/lib/Image/ExifTool/Shortcuts.pm +9 -0
  61. data/bin/lib/Image/ExifTool/Sony.pm +230 -69
  62. data/bin/lib/Image/ExifTool/TagInfoXML.pm +1 -0
  63. data/bin/lib/Image/ExifTool/TagLookup.pm +4145 -4029
  64. data/bin/lib/Image/ExifTool/TagNames.pod +671 -287
  65. data/bin/lib/Image/ExifTool/Torrent.pm +18 -11
  66. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  67. data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  68. data/bin/lib/Image/ExifTool/WritePDF.pl +1 -0
  69. data/bin/lib/Image/ExifTool/WritePNG.pl +2 -0
  70. data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -0
  71. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +55 -21
  72. data/bin/lib/Image/ExifTool/WriteXMP.pl +7 -3
  73. data/bin/lib/Image/ExifTool/Writer.pl +47 -10
  74. data/bin/lib/Image/ExifTool/XMP.pm +45 -15
  75. data/bin/lib/Image/ExifTool/XMP2.pl +3 -1
  76. data/bin/lib/Image/ExifTool/XMPStruct.pl +3 -1
  77. data/bin/lib/Image/ExifTool/ZISRAW.pm +121 -2
  78. data/bin/lib/Image/ExifTool.pm +233 -81
  79. data/bin/lib/Image/ExifTool.pod +114 -93
  80. data/bin/perl-Image-ExifTool.spec +43 -42
  81. data/lib/exiftool_vendored/version.rb +1 -1
  82. metadata +28 -13
@@ -32,7 +32,9 @@ sub SerializeStruct($;$)
32
32
  my ($key, $val, @vals, $rtnVal);
33
33
 
34
34
  if (ref $obj eq 'HASH') {
35
- foreach $key (sort keys %$obj) {
35
+ # support hashes with ordered keys
36
+ my @keys = $$obj{_ordered_keys_} ? @{$$obj{_ordered_keys_}} : sort keys %$obj;
37
+ foreach $key (@keys) {
36
38
  push @vals, $key . '=' . SerializeStruct($$obj{$key}, '}');
37
39
  }
38
40
  $rtnVal = '{' . join(',', @vals) . '}';
@@ -14,7 +14,7 @@ use strict;
14
14
  use vars qw($VERSION);
15
15
  use Image::ExifTool qw(:DataAccess :Utils);
16
16
 
17
- $VERSION = '1.00';
17
+ $VERSION = '1.01';
18
18
 
19
19
  %Image::ExifTool::ZISRAW::Main = (
20
20
  PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
@@ -41,6 +41,123 @@ $VERSION = '1.00';
41
41
  },
42
42
  );
43
43
 
44
+ #------------------------------------------------------------------------------
45
+ # Shorten obscenely long CZI tag names
46
+ # Inputs: Tag name
47
+ # Returns: Shortened tag name
48
+ sub ShortenTagNames($)
49
+ {
50
+ local $_;
51
+ $_ = shift;
52
+ s/^HardwareSetting//;
53
+ s/^DevicesDevice/Device/;
54
+ s/LightPathNode//g;
55
+ s/Successors//g;
56
+ s/ExperimentExperiment/Experiment/g;
57
+ s/ObjectivesObjective/Objective/;
58
+ s/ChannelsChannel/Channel/;
59
+ s/TubeLensesTubeLens/TubeLens/;
60
+ s/^ExperimentHardwareSettingsPoolHardwareSetting/HardwareSetting/;
61
+ s/SharpnessMeasureSetSharpnessMeasure/Sharpness/;
62
+ s/FocusSetupAutofocusSetup/Autofocus/;
63
+ s/TracksTrack/Track/;
64
+ s/ChannelRefsChannelRef/ChannelRef/;
65
+ s/ChangerChanger/Changer/;
66
+ s/ElementsChangerElement/Changer/;
67
+ s/ChangerElements/Changer/;
68
+ s/ContrastChangerContrast/Contrast/;
69
+ s/KeyFunctionsKeyFunction/KeyFunction/;
70
+ s/ManagerContrastManager(Contrast)?/ManagerContrast/;
71
+ s/ObjectiveChangerObjective/ObjectiveChanger/;
72
+ s/ManagerLightManager/ManagerLight/;
73
+ s/WavelengthAreasWavelengthArea/WavelengthArea/;
74
+ s/ReflectorChangerReflector/ReflectorChanger/;
75
+ s/^StageStageAxesStageAxis/StageAxis/;
76
+ s/ShutterChangerShutter/ShutterChanger/;
77
+ s/OnOffChangerOnOff/OnOffChanger/;
78
+ s/UnsharpMaskStateUnsharpMask/UnsharpMask/;
79
+ s/Acquisition/Acq/;
80
+ s/Continuous/Cont/;
81
+ s/Resolution/Res/;
82
+ s/Experiment/Expt/g;
83
+ s/Threshold/Thresh/;
84
+ s/Reference/Ref/;
85
+ s/Magnification/Mag/;
86
+ s/Original/Orig/;
87
+ s/FocusSetupFocusStrategySetup/Focus/;
88
+ s/ParametersParameter/Parameter/;
89
+ s/IntervalInfo/Interval/;
90
+ s/ExptBlocksAcqBlock/AcqBlock/;
91
+ s/MicroscopesMicroscope/Microscope/;
92
+ s/TimeSeriesInterval/TimeSeries/;
93
+ s/Interval(.*Interval)/$1/;
94
+ s/SingleTileRegionsSingleTileRegion/SingleTileRegion/;
95
+ s/AcquisitionMode//;
96
+ s/DetectorsDetector/Detector/;
97
+ s/Setup//;
98
+ s/Setting//;
99
+ s/TrackTrack/Track/;
100
+ s/AnalogOutMaximumsAnalogOutMaximum/AnalogOutMaximum/;
101
+ s/AnalogOutMinimumsAnalogOutMinimum/AnalogOutMinimum/;
102
+ s/DigitalOutLabelsDigitalOutLabelLabel/DigitalOutLabelLabel/;
103
+ s/(VivaTomeOpticalSectionInformation)+VivaTomeOpticalSectionInformation/VivaTomeOpticalSectionInformation/;
104
+ s/FocusDefiniteFocus/FocusDefinite/;
105
+ s/ChangerChanger/Changer/;
106
+ s/Calibration/Cal/;
107
+ s/LightSwitchChangerRLTLSwitch/LightSwitchChangerRLTL/;
108
+ s/Parameters//;
109
+ s/Fluorescence/Fluor/;
110
+ s/CameraGeometryCameraGeometry/CameraGeometry/;
111
+ s/CameraCamera/Camera/;
112
+ s/DetectorsCamera/Camera/;
113
+ s/FilterChangerLeftChangerEmissionFilter/LeftChangerEmissionFilter/;
114
+ s/SwitchingStatesSwitchingState/SwitchingState/;
115
+ s/Information/Info/;
116
+ s/SubDimensions?//g;
117
+ s/Setups?//;
118
+ s/Parameters?//;
119
+ s/Calculate/Calc/;
120
+ s/Visibility/Vis/;
121
+ s/Orientation/Orient/;
122
+ s/ListItems/Items/;
123
+ s/Increment/Incr/;
124
+ s/Parameter/Param/;
125
+ s/(ParfocalParcentralValues)+ParfocalParcentralValue/Parcentral/;
126
+ s/ParcentralParcentral/Parcentral/;
127
+ s/CorrFocusCorrection/FocusCorr/;
128
+ s/(ApoTomeDepthInfo)+Element/ApoTomeDepth/;
129
+ s/(ApoTomeClickStopInfo)+Element/ApoTomeClickStop/;
130
+ s/DepthDepth/Depth/;
131
+ s/(Devices?)+Device/Device/;
132
+ s/(BeamPathNode)+/BeamPathNode/;
133
+ s/BeamPathsBeamPath/BeamPath/g;
134
+ s/BeamPathBeamPath/BeamPath/g;
135
+ s/Configuration/Config/;
136
+ s/StageAxesStageAxis/StageAxis/;
137
+ s/RangesRange/Range/;
138
+ s/DataGridDatasGridData(Grid)?/DataGrid/;
139
+ s/DataMicroscopeDatasMicroscopeData(Microscope)?/DataMicroscope/;
140
+ s/DataWegaDatasWegaData/DataWega/;
141
+ s/ClickStopPositionsClickStopPosition/ClickStopPosition/;
142
+ s/LightSourcess?LightSource(Settings)?(LightSource)?/LightSource/;
143
+ s/FilterSetsFilterSet/FilterSet/;
144
+ s/EmissionFiltersEmissionFilter/EmissionFilter/;
145
+ s/ExcitationFiltersExcitationFilter/ExcitationFilter/;
146
+ s/FiltersFilter/Filter/;
147
+ s/DichroicsDichroic/Dichronic/;
148
+ s/WavelengthsWavelength/Wavelength/;
149
+ s/MultiTrackSetup/MultiTrack/;
150
+ s/TrackTrack/Track/;
151
+ s/DataGrabberSetup/DataGrabber/;
152
+ s/CameraFrameSetup/CameraFrame/;
153
+ s/TimeSeries(TimeSeries|Setups)/TimeSeries/;
154
+ s/FocusFocus/Focus/;
155
+ s/FocusAutofocus/Autofocus/;
156
+ s/Focus(Hardware|Software)(Autofocus)+/Autofocus$1/;
157
+ s/AutofocusAutofocus/Autofocus/;
158
+ return $_;
159
+ }
160
+
44
161
  #------------------------------------------------------------------------------
45
162
  # Extract metadata from a ZISRAW (CZI) image
46
163
  # Inputs: 0) ExifTool object reference, 1) dirInfo reference
@@ -76,7 +193,9 @@ sub ProcessCZI($$)
76
193
  $tagTablePtr = GetTagTable('Image::ExifTool::XMP::XML');
77
194
  $dirInfo{DirLen} = length $buff;
78
195
  # shorten tag names somewhat by removing 'ImageDocumentMetadata' prefix from all
79
- $$et{XmpIgnoreProps} = [ 'ImageDocument', 'Metadata' ];
196
+ $$et{XmpIgnoreProps} = [ 'ImageDocument', 'Metadata', 'Information' ];
197
+ $$et{ShortenXmpTags} = \&ShortenTagNames;
198
+
80
199
  $et->ProcessDirectory(\%dirInfo, $tagTablePtr);
81
200
 
82
201
  return 1;