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.
- package/bin/exiftool_files/Changes +119 -4
- package/bin/exiftool_files/README +44 -43
- package/bin/exiftool_files/arg_files/xmp2exif.args +2 -1
- package/bin/exiftool_files/config_files/convert_regions.config +25 -14
- package/bin/exiftool_files/config_files/example.config +1 -1
- package/bin/exiftool_files/exiftool.pl +79 -66
- package/bin/exiftool_files/fmt_files/gpx.fmt +1 -1
- package/bin/exiftool_files/fmt_files/gpx_wpt.fmt +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +11 -3
- package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +331 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +26 -7
- package/bin/exiftool_files/lib/Image/ExifTool/DPX.pm +13 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +98 -4
- package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +35 -10
- package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +1 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +13 -2
- package/bin/exiftool_files/lib/Image/ExifTool/GoPro.pm +16 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +15 -3
- package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +7 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +60 -26
- package/bin/exiftool_files/lib/Image/ExifTool/LIF.pm +153 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/nl.pm +60 -59
- package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +103 -7
- package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +14 -3
- package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +10 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +9 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Other.pm +93 -0
- package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +9 -12
- package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +7 -6
- package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +14 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +27 -5
- package/bin/exiftool_files/lib/Image/ExifTool/Photoshop.pm +6 -0
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +105 -24
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +203 -121
- package/bin/exiftool_files/lib/Image/ExifTool/README +5 -2
- package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +6 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +47 -10
- package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +85 -34
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +65 -5
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +153 -32
- package/bin/exiftool_files/lib/Image/ExifTool/Torrent.pm +18 -11
- package/bin/exiftool_files/lib/Image/ExifTool/WritePDF.pl +1 -0
- package/bin/exiftool_files/lib/Image/ExifTool/WritePNG.pl +2 -0
- package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +8 -4
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +3 -0
- package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +21 -4
- package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ZISRAW.pm +121 -2
- package/bin/exiftool_files/lib/Image/ExifTool.pm +8867 -8835
- package/bin/exiftool_files/lib/Image/ExifTool.pod +58 -56
- package/package.json +3 -3
|
@@ -574,6 +574,9 @@ sub SetNewValue($;$$%)
|
|
|
574
574
|
my $pre = $wantGroup ? $wantGroup . ':' : '';
|
|
575
575
|
$err = "Tag '$pre${origTag}' is not defined";
|
|
576
576
|
$err .= ' or has a bad language code' if $origTag =~ /-/;
|
|
577
|
+
if (not $pre and uc($origTag) eq 'TAG') {
|
|
578
|
+
$err .= " (specify a writable tag name, not '${origTag}' literally)"
|
|
579
|
+
}
|
|
577
580
|
} else {
|
|
578
581
|
$err = "Invalid tag name '${tag}'";
|
|
579
582
|
$err .= " (remove the leading '\$')" if $tag =~ /^\$/;
|
|
@@ -50,7 +50,7 @@ use Image::ExifTool::Exif;
|
|
|
50
50
|
use Image::ExifTool::GPS;
|
|
51
51
|
require Exporter;
|
|
52
52
|
|
|
53
|
-
$VERSION = '3.
|
|
53
|
+
$VERSION = '3.46';
|
|
54
54
|
@ISA = qw(Exporter);
|
|
55
55
|
@EXPORT_OK = qw(EscapeXML UnescapeXML);
|
|
56
56
|
|
|
@@ -1533,6 +1533,9 @@ my %sPantryItem = (
|
|
|
1533
1533
|
CameraProfile => { },
|
|
1534
1534
|
LookTable => { },
|
|
1535
1535
|
ToneCurvePV2012 => { List => 'Seq' },
|
|
1536
|
+
ToneCurvePV2012Red => { List => 'Seq' },
|
|
1537
|
+
ToneCurvePV2012Green => { List => 'Seq' },
|
|
1538
|
+
ToneCurvePV2012Blue => { List => 'Seq' },
|
|
1536
1539
|
},
|
|
1537
1540
|
},
|
|
1538
1541
|
}
|
|
@@ -2017,6 +2020,11 @@ my %sPantryItem = (
|
|
|
2017
2020
|
Groups => { 2 => 'Location' },
|
|
2018
2021
|
Writable => 'integer',
|
|
2019
2022
|
PrintConv => {
|
|
2023
|
+
OTHER => sub {
|
|
2024
|
+
my ($val, $inv) = @_;
|
|
2025
|
+
return undef unless $inv and $val =~ /^([-+0-9])/;
|
|
2026
|
+
return($1 eq '-' ? 1 : 0);
|
|
2027
|
+
},
|
|
2020
2028
|
0 => 'Above Sea Level',
|
|
2021
2029
|
1 => 'Below Sea Level',
|
|
2022
2030
|
},
|
|
@@ -2341,6 +2349,8 @@ my %sPantryItem = (
|
|
|
2341
2349
|
Scene => { Groups => { 2 => 'Other' }, List => 'Bag' },
|
|
2342
2350
|
SubjectCode => { Groups => { 2 => 'Other' }, List => 'Bag' },
|
|
2343
2351
|
# Copyright - have seen this in a sample (Jan 2021), but I think it is non-standard
|
|
2352
|
+
AltTextAccessibility =>{ Groups => { 2 => 'Other' }, Writable => 'lang-alt' }, # added 2021-10-13
|
|
2353
|
+
ExtDescrAccessibility=>{ Groups => { 2 => 'Other' }, Writable => 'lang-alt' }, # added 2021-10-13
|
|
2344
2354
|
);
|
|
2345
2355
|
|
|
2346
2356
|
# Adobe Lightroom namespace properties (lr) (ref PH)
|
|
@@ -3258,8 +3268,14 @@ NoLoop:
|
|
|
3258
3268
|
}
|
|
3259
3269
|
}
|
|
3260
3270
|
# generate a default tagInfo hash if necessary
|
|
3261
|
-
|
|
3262
|
-
|
|
3271
|
+
unless ($tagInfo) {
|
|
3272
|
+
# shorten tag name if necessary
|
|
3273
|
+
if ($$et{ShortenXmpTags}) {
|
|
3274
|
+
my $shorten = $$et{ShortenXmpTags};
|
|
3275
|
+
$name = &$shorten($name);
|
|
3276
|
+
}
|
|
3277
|
+
$tagInfo = { Name => $name, IsDefault => 1, Priority => 0 };
|
|
3278
|
+
}
|
|
3263
3279
|
# add tag Namespace entry for tags in variable-namespace tables
|
|
3264
3280
|
$$tagInfo{Namespace} = $xns if $xns;
|
|
3265
3281
|
if ($$et{curURI}{$ns} and $$et{curURI}{$ns} =~ m{^http://ns.exiftool.(?:ca|org)/(.*?)/(.*?)/}) {
|
|
@@ -3778,6 +3794,7 @@ sub ParseXMPElement($$$;$$$$)
|
|
|
3778
3794
|
# (unless we already extracted shorthand values from this element)
|
|
3779
3795
|
if (length $val or not $shorthand) {
|
|
3780
3796
|
my $lastProp = $$propList[-1];
|
|
3797
|
+
$lastProp = '' unless defined $lastProp;
|
|
3781
3798
|
if (defined $nodeID) {
|
|
3782
3799
|
SaveBlankInfo($blankInfo, $propList, $val);
|
|
3783
3800
|
} elsif ($lastProp eq 'rdf:type' and $wasEmpty) {
|
|
@@ -3948,7 +3965,7 @@ sub ProcessXMP($$;$)
|
|
|
3948
3965
|
} elsif ($1 eq 'REDXIF') {
|
|
3949
3966
|
$type = 'RMD';
|
|
3950
3967
|
$mime = 'application/xml';
|
|
3951
|
-
}
|
|
3968
|
+
} elsif ($1 ne 'fcpxml') { # Final Cut Pro XML
|
|
3952
3969
|
return 0;
|
|
3953
3970
|
}
|
|
3954
3971
|
} elsif ($buf2 =~ /<svg[\s>]/) {
|
|
@@ -539,7 +539,8 @@ my %sImageRegion = ( # new in 1.5
|
|
|
539
539
|
NOTES => q{
|
|
540
540
|
This table contains tags defined by the IPTC Extension schema version 1.5.
|
|
541
541
|
The actual namespace prefix is "Iptc4xmpExt", but ExifTool shortens this for
|
|
542
|
-
the family 1 group name. (see
|
|
542
|
+
the family 1 group name. (see
|
|
543
|
+
L<http://www.iptc.org/standards/photo-metadata/iptc-standard/>)
|
|
543
544
|
},
|
|
544
545
|
AboutCvTerm => {
|
|
545
546
|
Struct => \%sCVTermDetails,
|
|
@@ -796,6 +797,7 @@ my %sImageRegion = ( # new in 1.5
|
|
|
796
797
|
audioBitsPerSample => { Groups => { 2 => 'Audio' }, Writable => 'integer' },
|
|
797
798
|
# new IPTC Extension schema 1.5 property
|
|
798
799
|
ImageRegion => { Groups => { 2 => 'Image' }, List => 'Bag', Struct => \%sImageRegion },
|
|
800
|
+
EventID => { List => 'Bag' }, # added 2021-10-13
|
|
799
801
|
);
|
|
800
802
|
|
|
801
803
|
#------------------------------------------------------------------------------
|
|
@@ -32,7 +32,9 @@ sub SerializeStruct($;$)
|
|
|
32
32
|
my ($key, $val, @vals, $rtnVal);
|
|
33
33
|
|
|
34
34
|
if (ref $obj eq 'HASH') {
|
|
35
|
-
|
|
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.
|
|
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;
|