exiftool-vendored.exe 12.78.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.
- package/bin/exiftool_files/Changes +36 -3
- package/bin/exiftool_files/README +2 -2
- package/bin/exiftool_files/config_files/acdsee.config +37 -57
- package/bin/exiftool_files/config_files/example.config +6 -0
- package/bin/exiftool_files/exiftool.pl +41 -19
- package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +3 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/cs.pm +978 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/de.pm +1975 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/en_ca.pm +44 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/en_gb.pm +124 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/es.pm +2921 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/fi.pm +1116 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/fr.pm +3171 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/it.pm +2750 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/ja.pm +10256 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/ko.pm +4499 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/nl.pm +1270 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/pl.pm +3019 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/ru.pm +18220 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/sk.pm +441 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/sv.pm +714 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/tr.pm +452 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/zh_cn.pm +2225 -0
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/zh_tw.pm +72 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.dat +0 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.pm +678 -140
- package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +7 -0
- package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +7 -2
- package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +17 -17
- package/bin/exiftool_files/lib/Image/ExifTool/README +6 -5
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +2547 -2517
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +72 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +1 -0
- package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +50 -0
- package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +17 -2
- package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +64 -0
- package/bin/exiftool_files/lib/Image/ExifTool.pm +165 -88
- package/bin/exiftool_files/lib/Image/ExifTool.pod +20 -7
- package/package.json +2 -2
|
@@ -1218,6 +1218,13 @@ Category: foreach $category (qw{pos track alt orient atemp}) {
|
|
|
1218
1218
|
$coords .= " $alt";
|
|
1219
1219
|
}
|
|
1220
1220
|
@r = $et->SetNewValue(GPSCoordinates => $coords, %opts);
|
|
1221
|
+
# also Geolocate if specified
|
|
1222
|
+
my $nvHash;
|
|
1223
|
+
my $geoloc = $et->GetNewValue('Geolocate', \$nvHash);
|
|
1224
|
+
if ($geoloc and lc($geoloc) eq 'geotag') {
|
|
1225
|
+
$geoloc = ($$nvHash{WantGroup} ? "$$nvHash{WantGroup}:" : '') . 'Geolocate';
|
|
1226
|
+
$et->SetNewValue($geoloc => "$$fix{lat},$$fix{lon}");
|
|
1227
|
+
}
|
|
1221
1228
|
return $err if $qt; # all done if writing to QuickTime only
|
|
1222
1229
|
# (capture error messages by calling SetNewValue in list context)
|
|
1223
1230
|
@r = $et->SetNewValue(GPSLatitude => $$fix{lat}, %opts);
|
|
@@ -14,7 +14,7 @@ use vars qw($VERSION);
|
|
|
14
14
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
15
15
|
use Image::ExifTool::Import;
|
|
16
16
|
|
|
17
|
-
$VERSION = '1.
|
|
17
|
+
$VERSION = '1.08';
|
|
18
18
|
|
|
19
19
|
sub ProcessJSON($$);
|
|
20
20
|
sub ProcessTag($$$$%);
|
|
@@ -63,8 +63,13 @@ sub FoundTag($$$$%)
|
|
|
63
63
|
unless ($$tagTablePtr{$tag}) {
|
|
64
64
|
my $name = $tag;
|
|
65
65
|
$name =~ tr/:/_/; # use underlines in place of colons in tag name
|
|
66
|
+
$name =~ s/^c2pa/C2PA/i; # hack to fix "C2PA" case
|
|
67
|
+
$name = Image::ExifTool::MakeTagName($name);
|
|
68
|
+
my $desc = Image::ExifTool::MakeDescription($name);
|
|
69
|
+
$desc =~ s/^C2 PA/C2PA/; # hack to get "C2PA" correct
|
|
66
70
|
AddTagToTable($tagTablePtr, $tag, {
|
|
67
|
-
Name =>
|
|
71
|
+
Name => $name,
|
|
72
|
+
Description => $desc,
|
|
68
73
|
%flags,
|
|
69
74
|
Temporary => 1,
|
|
70
75
|
});
|
|
@@ -16,7 +16,7 @@ use vars qw($VERSION);
|
|
|
16
16
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
17
17
|
use Image::ExifTool::GPS;
|
|
18
18
|
|
|
19
|
-
$VERSION = '1.
|
|
19
|
+
$VERSION = '1.05';
|
|
20
20
|
|
|
21
21
|
# supported EXR value format types (other types are extracted as undef binary data)
|
|
22
22
|
my %formatType = (
|
|
@@ -134,7 +134,7 @@ my %formatType = (
|
|
|
134
134
|
multiView => { },
|
|
135
135
|
owner => { Groups => { 2 => 'Author' } },
|
|
136
136
|
pixelAspectRatio => { },
|
|
137
|
-
preview => { },
|
|
137
|
+
preview => { Groups => { 2 => 'Preview' } },
|
|
138
138
|
renderingTransform => { },
|
|
139
139
|
screenWindowCenter => { },
|
|
140
140
|
screenWindowWidth => { },
|
|
@@ -219,25 +219,25 @@ sub ProcessEXR($$)
|
|
|
219
219
|
AddTagToTable($tagTablePtr, $tag, $tagInfo);
|
|
220
220
|
$et->VPrint(0, $$et{INDENT}, "[adding $tag]\n");
|
|
221
221
|
}
|
|
222
|
-
my ($val, $success);
|
|
222
|
+
my ($val, $success, $buf2);
|
|
223
223
|
my $format = $formatType{$type};
|
|
224
224
|
if ($format or $binary) {
|
|
225
|
-
$raf->Read($
|
|
225
|
+
$raf->Read($buf2, $size) == $size and $success = 1;
|
|
226
226
|
if (not $format) {
|
|
227
|
-
$val = \$
|
|
227
|
+
$val = \$buf2; # treat as undef binary data
|
|
228
228
|
} elsif ($format ne '1') {
|
|
229
229
|
# handle formats which map nicely into ExifTool format codes
|
|
230
230
|
if ($format =~ /^(\w+)\[?(\d*)/) {
|
|
231
231
|
my ($fmt, $cnt) = ($1, $2);
|
|
232
232
|
$cnt = $fmt eq 'string' ? $size : 1 unless $cnt;
|
|
233
|
-
$val = ReadValue(\$
|
|
233
|
+
$val = ReadValue(\$buf2, 0, $fmt, $cnt, $size);
|
|
234
234
|
}
|
|
235
235
|
# handle other format types
|
|
236
236
|
} elsif ($type eq 'tiledesc') {
|
|
237
237
|
if ($size >= 9) {
|
|
238
|
-
my $x = Get32u(\$
|
|
239
|
-
my $y = Get32u(\$
|
|
240
|
-
my $mode = Get8u(\$
|
|
238
|
+
my $x = Get32u(\$buf2, 0);
|
|
239
|
+
my $y = Get32u(\$buf2, 4);
|
|
240
|
+
my $mode = Get8u(\$buf2, 8);
|
|
241
241
|
my $lvl = { 0 => 'One Level', 1 => 'MIMAP Levels', 2 => 'RIPMAP Levels' }->{$mode & 0x0f};
|
|
242
242
|
$lvl or $lvl = 'Unknown Levels (' . ($mode & 0xf) . ')';
|
|
243
243
|
my $rnd = { 0 => 'Round Down', 1 => 'Round Up' }->{$mode >> 4};
|
|
@@ -246,7 +246,7 @@ sub ProcessEXR($$)
|
|
|
246
246
|
}
|
|
247
247
|
} elsif ($type eq 'chlist') {
|
|
248
248
|
$val = [ ];
|
|
249
|
-
while ($
|
|
249
|
+
while ($buf2 =~ /\G([^\0]{1,31})\0(.{16})/sg) {
|
|
250
250
|
my ($str, $dat) = ($1, $2);
|
|
251
251
|
my ($pix,$lin,$x,$y) = unpack('VCx3VV', $dat);
|
|
252
252
|
$pix = { 0 => 'int8u', 1 => 'half', 2 => 'float' }->{$pix} || "unknown($pix)";
|
|
@@ -255,14 +255,14 @@ sub ProcessEXR($$)
|
|
|
255
255
|
} elsif ($type eq 'stringvector') {
|
|
256
256
|
$val = [ ];
|
|
257
257
|
my $pos = 0;
|
|
258
|
-
while ($pos + 4 <= length($
|
|
259
|
-
my $len = Get32u(\$
|
|
260
|
-
last if $pos + 4 + $len > length($
|
|
261
|
-
push @$val, substr($
|
|
258
|
+
while ($pos + 4 <= length($buf2)) {
|
|
259
|
+
my $len = Get32u(\$buf2, $pos);
|
|
260
|
+
last if $pos + 4 + $len > length($buf2);
|
|
261
|
+
push @$val, substr($buf2, $pos + 4, $len);
|
|
262
262
|
$pos += 4 + $len;
|
|
263
263
|
}
|
|
264
264
|
} else {
|
|
265
|
-
$val = \$
|
|
265
|
+
$val = \$buf2; # (shouldn't happen)
|
|
266
266
|
}
|
|
267
267
|
} else {
|
|
268
268
|
# avoid loading binary data
|
|
@@ -282,13 +282,13 @@ sub ProcessEXR($$)
|
|
|
282
282
|
$dim = [$3 - $1 + 1, $4 - $2 + 1];
|
|
283
283
|
}
|
|
284
284
|
if ($verbose) {
|
|
285
|
-
my $dataPt = ref $val ? $val : \$
|
|
285
|
+
my $dataPt = ref $val eq 'SCALAR' ? $val : \$buf2;
|
|
286
286
|
$et->VerboseInfo($tag, $tagInfo,
|
|
287
287
|
Table => $tagTablePtr,
|
|
288
288
|
Value => $val,
|
|
289
289
|
Size => $size,
|
|
290
290
|
Format => $type,
|
|
291
|
-
DataPt =>
|
|
291
|
+
DataPt => $dataPt,
|
|
292
292
|
Addr => $raf->Tell() - $size,
|
|
293
293
|
);
|
|
294
294
|
}
|
|
@@ -176,11 +176,12 @@ key:
|
|
|
176
176
|
where tags have variable namespaces (in this case each tag must have a
|
|
177
177
|
Namespace entry).
|
|
178
178
|
|
|
179
|
-
PREFERRED : Set
|
|
180
|
-
|
|
181
|
-
this feature is used, it may also be
|
|
182
|
-
when calling InitWriteDirs() to write
|
|
183
|
-
|
|
179
|
+
PREFERRED : Set if the tags in this table should always be added when writing
|
|
180
|
+
information. Higher number are higher precedence. Overrides the order
|
|
181
|
+
specified by SetNewGroups(). When this feature is used, it may also be
|
|
182
|
+
desirable to specify a preferred group when calling InitWriteDirs() to write
|
|
183
|
+
these tags -- this avoids creating other directories for tags which are
|
|
184
|
+
already being creating in the preferred group.
|
|
184
185
|
|
|
185
186
|
PERMANENT : Tags in this table are Permanent, and can't be deleted. Maker
|
|
186
187
|
notes tags are Permanent by default, without the need to set this property.
|