exiftool_vendored 10.56.0 → 10.58.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of exiftool_vendored might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/Changes +32 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +31 -28
- data/bin/lib/Image/ExifTool.pm +41 -14
- data/bin/lib/Image/ExifTool.pod +4 -3
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +17 -9
- data/bin/lib/Image/ExifTool/Canon.pm +17 -5
- data/bin/lib/Image/ExifTool/DJI.pm +20 -1
- data/bin/lib/Image/ExifTool/EXE.pm +2 -2
- data/bin/lib/Image/ExifTool/Exif.pm +5 -0
- data/bin/lib/Image/ExifTool/FujiFilm.pm +40 -3
- data/bin/lib/Image/ExifTool/GIF.pm +2 -2
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +2 -2
- data/bin/lib/Image/ExifTool/Import.pm +13 -3
- data/bin/lib/Image/ExifTool/Minolta.pm +47 -41
- data/bin/lib/Image/ExifTool/PNG.pm +8 -7
- data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +19 -3
- data/bin/lib/Image/ExifTool/README +49 -47
- data/bin/lib/Image/ExifTool/RIFF.pm +62 -4
- data/bin/lib/Image/ExifTool/Sony.pm +7 -4
- data/bin/lib/Image/ExifTool/TagLookup.pm +4187 -4166
- data/bin/lib/Image/ExifTool/TagNames.pod +71 -24
- data/bin/lib/Image/ExifTool/WritePNG.pl +8 -7
- data/bin/lib/Image/ExifTool/XMP.pm +6 -1
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
@@ -4,6 +4,7 @@
|
|
4
4
|
# Description: DJI Phantom maker notes tags
|
5
5
|
#
|
6
6
|
# Revisions: 2016-07-25 - P. Harvey Created
|
7
|
+
# 2017-06-23 - PH Added XMP tags
|
7
8
|
#------------------------------------------------------------------------------
|
8
9
|
|
9
10
|
package Image::ExifTool::DJI;
|
@@ -11,8 +12,9 @@ package Image::ExifTool::DJI;
|
|
11
12
|
use strict;
|
12
13
|
use vars qw($VERSION);
|
13
14
|
use Image::ExifTool::Exif;
|
15
|
+
use Image::ExifTool::XMP;
|
14
16
|
|
15
|
-
$VERSION = '1.
|
17
|
+
$VERSION = '1.01';
|
16
18
|
|
17
19
|
my %convFloat2 = (
|
18
20
|
PrintConv => 'sprintf("%+.2f", $val)',
|
@@ -41,6 +43,23 @@ my %convFloat2 = (
|
|
41
43
|
0x0b => { Name => 'CameraRoll', Writable => 'float', %convFloat2 },
|
42
44
|
);
|
43
45
|
|
46
|
+
%Image::ExifTool::DJI::XMP = (
|
47
|
+
%Image::ExifTool::XMP::xmpTableDefaults,
|
48
|
+
GROUPS => { 0 => 'XMP', 1 => 'XMP-drone-dji', 2 => 'Image' },
|
49
|
+
NAMESPACE => 'drone-dji',
|
50
|
+
TABLE_DESC => 'XMP DJI',
|
51
|
+
VARS => { NO_ID => 1 },
|
52
|
+
NOTES => 'XMP tags used by DJI for images from drones.',
|
53
|
+
AbsoluteAltitude => { Writable => 'real' },
|
54
|
+
RelativeAltitude => { Writable => 'real' },
|
55
|
+
GimbalRollDegree => { Writable => 'real' },
|
56
|
+
GimbalYawDegree => { Writable => 'real' },
|
57
|
+
GimbalPitchDegree => { Writable => 'real' },
|
58
|
+
FlightRollDegree => { Writable => 'real' },
|
59
|
+
FlightYawDegree => { Writable => 'real' },
|
60
|
+
FlightPitchDegree => { Writable => 'real' },
|
61
|
+
);
|
62
|
+
|
44
63
|
__END__
|
45
64
|
|
46
65
|
=head1 NAME
|
@@ -21,7 +21,7 @@ use strict;
|
|
21
21
|
use vars qw($VERSION);
|
22
22
|
use Image::ExifTool qw(:DataAccess :Utils);
|
23
23
|
|
24
|
-
$VERSION = '1.
|
24
|
+
$VERSION = '1.14';
|
25
25
|
|
26
26
|
sub ProcessPEResources($$);
|
27
27
|
sub ProcessPEVersion($$);
|
@@ -1171,7 +1171,7 @@ sub ProcessEXE($$)
|
|
1171
1171
|
DataPos => $raf->Tell() - $size,
|
1172
1172
|
DataLen => $size,
|
1173
1173
|
DirStart => 4,
|
1174
|
-
DirLen => $size,
|
1174
|
+
DirLen => $size - 4,
|
1175
1175
|
);
|
1176
1176
|
$et->ProcessDirectory(\%dirInfo, $tagTablePtr);
|
1177
1177
|
# process data dictionary
|
@@ -877,6 +877,7 @@ my %sampleFormat = (
|
|
877
877
|
Notes => 'the data offset in original Sony DSLR-A100 ARW images',
|
878
878
|
DataMember => 'A100DataOffset',
|
879
879
|
RawConv => '$$self{A100DataOffset} = $val',
|
880
|
+
WriteGroup => 'IFD0', # (only for Validate)
|
880
881
|
IsOffset => 1,
|
881
882
|
Protected => 2,
|
882
883
|
},
|
@@ -909,6 +910,7 @@ my %sampleFormat = (
|
|
909
910
|
0x153 => {
|
910
911
|
Name => 'SampleFormat',
|
911
912
|
Notes => 'SamplesPerPixel values',
|
913
|
+
WriteGroup => 'SubIFD', # (only for Validate)
|
912
914
|
PrintConvColumns => 2,
|
913
915
|
PrintConv => [ \%sampleFormat, \%sampleFormat, \%sampleFormat, \%sampleFormat ],
|
914
916
|
},
|
@@ -2823,6 +2825,7 @@ my %sampleFormat = (
|
|
2823
2825
|
},
|
2824
2826
|
0xc616 => {
|
2825
2827
|
Name => 'CFAPlaneColor',
|
2828
|
+
WriteGroup => 'SubIFD', # (only for Validate)
|
2826
2829
|
PrintConv => q{
|
2827
2830
|
my @cols = qw(Red Green Blue Cyan Magenta Yellow White);
|
2828
2831
|
my @vals = map { $cols[$_] || "Unknown($_)" } split(' ', $val);
|
@@ -2831,6 +2834,7 @@ my %sampleFormat = (
|
|
2831
2834
|
},
|
2832
2835
|
0xc617 => {
|
2833
2836
|
Name => 'CFALayout',
|
2837
|
+
WriteGroup => 'SubIFD', # (only for Validate)
|
2834
2838
|
PrintConv => {
|
2835
2839
|
1 => 'Rectangular',
|
2836
2840
|
2 => 'Even columns offset down 1/2 row',
|
@@ -3286,6 +3290,7 @@ my %sampleFormat = (
|
|
3286
3290
|
Name => 'ProfileIFD', # (ExtraCameraProfiles)
|
3287
3291
|
Groups => { 1 => 'ProfileIFD' },
|
3288
3292
|
Flags => 'SubIFD',
|
3293
|
+
WriteGroup => 'IFD0', # (only for Validate)
|
3289
3294
|
SubDirectory => {
|
3290
3295
|
ProcessProc => \&ProcessTiffIFD,
|
3291
3296
|
WriteProc => \&ProcessTiffIFD,
|
@@ -17,6 +17,7 @@
|
|
17
17
|
# 8) http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,5223.0.html
|
18
18
|
# 9) Zilvinas Brobliauskas private communication
|
19
19
|
# 10) Albert Shan private communication
|
20
|
+
# 11) http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,8377.0.html
|
20
21
|
# IB) Iliah Borg private communication (LibRaw)
|
21
22
|
# JD) Jens Duttke private communication
|
22
23
|
#------------------------------------------------------------------------------
|
@@ -28,7 +29,7 @@ use vars qw($VERSION);
|
|
28
29
|
use Image::ExifTool qw(:DataAccess :Utils);
|
29
30
|
use Image::ExifTool::Exif;
|
30
31
|
|
31
|
-
$VERSION = '1.
|
32
|
+
$VERSION = '1.59';
|
32
33
|
|
33
34
|
sub ProcessFujiDir($$$);
|
34
35
|
sub ProcessFaceRec($$$);
|
@@ -296,7 +297,7 @@ my %faceCategories = (
|
|
296
297
|
Flags => 'PrintHex',
|
297
298
|
Writable => 'int16u',
|
298
299
|
PrintConv => {
|
299
|
-
0x0 => 'Auto',
|
300
|
+
0x0 => 'Auto', # (or 'SR+' if SceneRecognition present, ref 11)
|
300
301
|
0x1 => 'Portrait',
|
301
302
|
0x2 => 'Landscape',
|
302
303
|
0x3 => 'Macro', #JD
|
@@ -546,7 +547,7 @@ my %faceCategories = (
|
|
546
547
|
},
|
547
548
|
# 0x1408 - values: '0100', 'S100', 'VQ10'
|
548
549
|
# 0x1409 - values: same as 0x1408
|
549
|
-
# 0x140a - values: 0, 1, 3, 5, 7
|
550
|
+
# 0x140a - values: 0, 1, 3, 5, 7 (bit 2=red-eye detection, ref 11)
|
550
551
|
0x140b => { #6
|
551
552
|
Name => 'AutoDynamicRange',
|
552
553
|
Writable => 'int16u',
|
@@ -568,6 +569,18 @@ my %faceCategories = (
|
|
568
569
|
2 => 'On (mode 2, shooting only)',
|
569
570
|
}],
|
570
571
|
},
|
572
|
+
0x1425 => { # if present and 0x1031 PictureMode is zero, then PictureMode is SR+, not Auto (ref 11)
|
573
|
+
Name => 'SceneRecognition',
|
574
|
+
Writable => 'int16u',
|
575
|
+
PrintHex => 1,
|
576
|
+
PrintConv => {
|
577
|
+
0 => 'Unrecognized',
|
578
|
+
0x100 => 'Portrait Image',
|
579
|
+
0x200 => 'Landscape Image',
|
580
|
+
0x300 => 'Night Scene',
|
581
|
+
0x400 => 'Macro',
|
582
|
+
},
|
583
|
+
},
|
571
584
|
0x1431 => { #forum6109
|
572
585
|
Name => 'Rating',
|
573
586
|
Groups => { 2 => 'Image' },
|
@@ -617,6 +630,30 @@ my %faceCategories = (
|
|
617
630
|
detected
|
618
631
|
},
|
619
632
|
},
|
633
|
+
0x4200 => { #11
|
634
|
+
Name => 'NumFaceElements',
|
635
|
+
Writable => 'int16u',
|
636
|
+
},
|
637
|
+
0x4201 => { #11
|
638
|
+
Name => 'FaceElementTypes',
|
639
|
+
Writable => 'int8u',
|
640
|
+
Count => -1,
|
641
|
+
PrintConv => [{
|
642
|
+
1 => 'Face',
|
643
|
+
2 => 'Left Eye',
|
644
|
+
3 => 'Right Eye',
|
645
|
+
},'REPEAT'],
|
646
|
+
},
|
647
|
+
# 0x4202 int8u[-1] - number of cooredinates in each rectangle? (ref 11)
|
648
|
+
0x4203 => { #11
|
649
|
+
Name => 'FaceElementPositions',
|
650
|
+
Writable => 'int16u',
|
651
|
+
Count => -1,
|
652
|
+
Notes => q{
|
653
|
+
left, top, right and bottom coordinates in full-sized image for each face
|
654
|
+
element
|
655
|
+
},
|
656
|
+
},
|
620
657
|
# 0x4101-0x4105 - exist only if face detection active
|
621
658
|
# 0x4104 - also related to face detection (same number of entries as FacePositions)
|
622
659
|
# 0x4200 - same as 0x4100?
|
@@ -20,7 +20,7 @@ use strict;
|
|
20
20
|
use vars qw($VERSION);
|
21
21
|
use Image::ExifTool qw(:DataAccess :Utils);
|
22
22
|
|
23
|
-
$VERSION = '1.
|
23
|
+
$VERSION = '1.14';
|
24
24
|
|
25
25
|
# road map of directory locations in GIF images
|
26
26
|
my %gifMap = (
|
@@ -461,7 +461,7 @@ Block:
|
|
461
461
|
Write($outfile, "\0") or $err = 1; # write null terminator
|
462
462
|
}
|
463
463
|
} elsif (not $outfile) {
|
464
|
-
$et->HandleTag($
|
464
|
+
$et->HandleTag($extTable, $tag, $dat);
|
465
465
|
}
|
466
466
|
next;
|
467
467
|
|
@@ -23,7 +23,7 @@ use strict;
|
|
23
23
|
use vars qw($VERSION);
|
24
24
|
use Image::ExifTool qw(:DataAccess :Utils);
|
25
25
|
|
26
|
-
$VERSION = '1.
|
26
|
+
$VERSION = '1.31';
|
27
27
|
|
28
28
|
sub ProcessICC($$);
|
29
29
|
sub ProcessICC_Profile($$$);
|
@@ -774,7 +774,7 @@ sub ProcessICC($$)
|
|
774
774
|
return 1;
|
775
775
|
}
|
776
776
|
$raf->Seek(0, 0);
|
777
|
-
unless ($raf->Read($buff, $size)) {
|
777
|
+
unless ($raf->Read($buff, $size) == $size) {
|
778
778
|
$et->Error('Truncated ICC profile');
|
779
779
|
return 1;
|
780
780
|
}
|
@@ -12,7 +12,7 @@ require Exporter;
|
|
12
12
|
|
13
13
|
use vars qw($VERSION @ISA @EXPORT_OK);
|
14
14
|
|
15
|
-
$VERSION = '1.
|
15
|
+
$VERSION = '1.07';
|
16
16
|
@ISA = qw(Exporter);
|
17
17
|
@EXPORT_OK = qw(ReadCSV ReadJSON);
|
18
18
|
|
@@ -100,6 +100,8 @@ sub ReadCSV($$;$)
|
|
100
100
|
}
|
101
101
|
last if $err;
|
102
102
|
@tags or $err = 'No tags found', last;
|
103
|
+
# fix "SourceFile" case if necessary
|
104
|
+
$tags[0] = 'SourceFile' if lc $tags[0] eq 'sourcefile';
|
103
105
|
}
|
104
106
|
}
|
105
107
|
close CSVFILE if $openedFile;
|
@@ -259,8 +261,16 @@ sub ReadJSON($$;$$)
|
|
259
261
|
my ($info, $found);
|
260
262
|
foreach $info (@$obj) {
|
261
263
|
next unless ref $info eq 'HASH';
|
262
|
-
#
|
263
|
-
defined $$info{SourceFile}
|
264
|
+
# fix "SourceFile" case, or assume '*' if SourceFile not specified
|
265
|
+
unless (defined $$info{SourceFile}) {
|
266
|
+
my ($key) = grep /^SourceFile$/i, keys %$info;
|
267
|
+
if ($key) {
|
268
|
+
$$info{SourceFile} = $$info{$key};
|
269
|
+
delete $$info{$key};
|
270
|
+
} else {
|
271
|
+
$$info{SourceFile} = '*';
|
272
|
+
}
|
273
|
+
}
|
264
274
|
if (defined $missingValue) {
|
265
275
|
$$info{$_} eq $missingValue and $$info{$_} = undef foreach keys %$info;
|
266
276
|
}
|
@@ -49,7 +49,7 @@ use vars qw($VERSION %minoltaLensTypes %minoltaTeleconverters %minoltaColorMode
|
|
49
49
|
use Image::ExifTool qw(:DataAccess :Utils);
|
50
50
|
use Image::ExifTool::Exif;
|
51
51
|
|
52
|
-
$VERSION = '2.
|
52
|
+
$VERSION = '2.52';
|
53
53
|
|
54
54
|
# Full list of product codes for Sony-compatible Minolta lenses
|
55
55
|
# (ref http://www.kb.sony.com/selfservice/documentLink.do?externalId=C1000570)
|
@@ -366,8 +366,8 @@ $VERSION = '2.50';
|
|
366
366
|
213 => 'Tamron 16-300mm F3.5-6.3 Di II PZD Macro', #JR (Model B016)
|
367
367
|
214 => 'Tamron SP 150-600mm F5-6.3 Di USD', #JR (Model A011)
|
368
368
|
215 => 'Tamron SP 15-30mm F2.8 Di USD', #JR (Model A012)
|
369
|
-
216 => 'Tamron SP 45mm F1.8 Di
|
370
|
-
217 => 'Tamron SP 35mm F1.8 Di
|
369
|
+
216 => 'Tamron SP 45mm F1.8 Di USD', #forum8320 (F013)
|
370
|
+
217 => 'Tamron SP 35mm F1.8 Di USD', #forum8320 (F012)
|
371
371
|
218 => 'Tamron SP 90mm F2.8 Di Macro 1:1 USD (F017)', #JR (Model F017)
|
372
372
|
224 => 'Tamron SP 90mm F2.8 Di Macro 1:1 USD (F004)', #JR (Model F004)
|
373
373
|
255 => 'Tamron Lens (255)',
|
@@ -563,50 +563,56 @@ $VERSION = '2.50';
|
|
563
563
|
'65535.29' => 'Sony FE 28mm F2', #JR (32816 - SEL28F20)
|
564
564
|
'65535.30' => 'Sony FE PZ 28-135mm F4 G OSS', #JR (32817 - SELP28135G)
|
565
565
|
'65535.31' => 'Sony FE 100mm F2.8 STF GM OSS', #JR (32819 - SEL100F28GM, uses 33076 when set to 0.57m - 1.0m range)
|
566
|
-
'65535.32' => 'Sony
|
567
|
-
'65535.33' => 'Sony FE
|
568
|
-
'65535.34' => 'Sony FE
|
569
|
-
'65535.35' => 'Sony FE
|
570
|
-
'65535.36' => 'Sony FE
|
571
|
-
'65535.37' => 'Sony FE
|
572
|
-
'65535.38' => 'Sony FE
|
573
|
-
'65535.39' => 'Sony FE
|
574
|
-
'65535.40' => 'Sony FE
|
575
|
-
'65535.41' => 'Sony FE
|
576
|
-
'65535.42' => 'Sony FE
|
577
|
-
'65535.43' => 'Sony FE 70-200mm F2.8 GM OSS +
|
566
|
+
'65535.32' => 'Sony E PZ 18-110mm F4 G OSS', #JR (32820 - SELP18110G)
|
567
|
+
'65535.33' => 'Sony FE 24-70mm F2.8 GM', #JR (32821 - SEL2470GM)
|
568
|
+
'65535.34' => 'Sony FE 50mm F1.4 ZA', #JR (32822 - SEL50F14Z)
|
569
|
+
'65535.35' => 'Sony FE 85mm F1.4 GM', #JR (32823 - SEL85F14GM)
|
570
|
+
'65535.36' => 'Sony FE 50mm F1.8', #JR (32824 - SEL50F18F with trailing "F" as compared to 32790)
|
571
|
+
'65535.37' => 'Sony FE 21mm F2.8 (SEL28F20 + SEL075UWC)', #JR (32826 - SEL28F20 + SEL075UWC Ultra-wide converter)
|
572
|
+
'65535.38' => 'Sony FE 16mm F3.5 Fisheye (SEL28F20 + SEL057FEC)', #JR (32827 - SEL28F20 + SEL057FEC Fisheye converter)
|
573
|
+
'65535.39' => 'Sony FE 70-300mm F4.5-5.6 G OSS', #JR (32828 - SEL70300G)
|
574
|
+
'65535.40' => 'Sony FE 100-400mm F4.5-5.6 GM OSS', #JR (32829 - SEL100400GM)
|
575
|
+
'65535.41' => 'Sony FE 70-200mm F2.8 GM OSS', #JR (32830 - SEL70200GM)
|
576
|
+
'65535.42' => 'Sony FE 16-35mm F2.8 GM', #JR (32831 - SEL1635GM)
|
577
|
+
'65535.43' => 'Sony FE 70-200mm F2.8 GM OSS + 1.4X Teleconverter', #JR (33072 - SEL70200GM + SEL14TC)
|
578
|
+
'65535.44' => 'Sony FE 70-200mm F2.8 GM OSS + 2X Teleconverter', #JR (33073 - SEL70200GM + SEL20TC)
|
578
579
|
#
|
579
580
|
# 3rd party E lenses
|
580
581
|
#
|
581
|
-
'65535.
|
582
|
-
'65535.
|
583
|
-
'65535.
|
584
|
-
'65535.
|
585
|
-
'65535.
|
586
|
-
'65535.
|
587
|
-
'65535.
|
588
|
-
'65535.
|
589
|
-
'65535.
|
590
|
-
'65535.
|
591
|
-
'65535.
|
592
|
-
'65535.
|
593
|
-
'65535.
|
594
|
-
'65535.
|
595
|
-
'65535.
|
596
|
-
'65535.
|
597
|
-
'65535.
|
598
|
-
'65535.
|
599
|
-
'65535.
|
582
|
+
'65535.45' => 'Samyang AF 50mm F1.4 FE', #JR (32789)
|
583
|
+
'65535.46' => 'Samyang AF 14mm F2.8 FE', #JR (32790 and 51505)
|
584
|
+
'65535.47' => 'Samyang AF 35mm F2.8 FE', #PH (51505)
|
585
|
+
'65535.48' => 'Sigma 19mm F2.8 [EX] DN', #JR (0)
|
586
|
+
'65535.49' => 'Sigma 30mm F2.8 [EX] DN', #JR (0)
|
587
|
+
'65535.50' => 'Sigma 60mm F2.8 DN', #JR (0)
|
588
|
+
'65535.51' => 'Sigma 30mm F1.4 DC DN | C 016', #IB (50480)
|
589
|
+
'65535.52' => 'Tamron 18-200mm F3.5-6.3 Di III VC', #JR (0 - Model B011)
|
590
|
+
'65535.53' => 'Tokina Firin 20mm F2 FE MF', #JR (0)
|
591
|
+
'65535.54' => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR (50992)
|
592
|
+
'65535.55' => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB (50993)
|
593
|
+
'65535.56' => 'Voigtlander ULTRA WIDE-HELIAR 12mm F5.6 III', #IB (50994)
|
594
|
+
'65535.57' => 'Voigtlander NOKTON 40mm F1.2', #JR (50996)
|
595
|
+
'65535.58' => 'Zeiss Touit 12mm F2.8', #JR (49201 or 0)
|
596
|
+
'65535.59' => 'Zeiss Touit 32mm F1.8', #JR (49202 or 0)
|
597
|
+
'65535.60' => 'Zeiss Touit 50mm F2.8 Macro', #JR (49203 or 0)
|
598
|
+
'65535.61' => 'Zeiss Batis 25mm F2', #JR (49216)
|
599
|
+
'65535.62' => 'Zeiss Batis 85mm F1.8', #JR (49217)
|
600
|
+
'65535.63' => 'Zeiss Batis 18mm F2.8', #IB (49218)
|
601
|
+
'65535.64' => 'Zeiss Batis 135mm F2.8', #IB (49219)
|
602
|
+
'65535.65' => 'Zeiss Loxia 50mm F2', #JR (49232 or 0)
|
603
|
+
'65535.66' => 'Zeiss Loxia 35mm F2', #JR (49233 or 0)
|
604
|
+
'65535.67' => 'Zeiss Loxia 21mm F2.8', #JR (49234)
|
605
|
+
'65535.68' => 'Zeiss Loxia 85mm F2.4', #JR (49235)
|
600
606
|
#
|
601
607
|
# other lenses
|
602
608
|
#
|
603
|
-
'65535.
|
604
|
-
'65535.
|
605
|
-
'65535.
|
606
|
-
'65535.
|
607
|
-
'65535.
|
608
|
-
'65535.
|
609
|
-
'65535.
|
609
|
+
'65535.69' => 'Arax MC 35mm F2.8 Tilt+Shift', #JD
|
610
|
+
'65535.70' => 'Arax MC 80mm F2.8 Tilt+Shift', #JD
|
611
|
+
'65535.71' => 'Zenitar MF 16mm F2.8 Fisheye M42', #JD
|
612
|
+
'65535.72' => 'Samyang 500mm Mirror F8.0', #19
|
613
|
+
'65535.73' => 'Pentacon Auto 135mm F2.8', #19
|
614
|
+
'65535.74' => 'Pentacon Auto 29mm F2.8', #19
|
615
|
+
'65535.75' => 'Helios 44-2 58mm F2.0', #19
|
610
616
|
);
|
611
617
|
|
612
618
|
%minoltaTeleconverters = (
|
@@ -26,7 +26,7 @@ use strict;
|
|
26
26
|
use vars qw($VERSION $AUTOLOAD %stdCase);
|
27
27
|
use Image::ExifTool qw(:DataAccess :Utils);
|
28
28
|
|
29
|
-
$VERSION = '1.
|
29
|
+
$VERSION = '1.42';
|
30
30
|
|
31
31
|
sub ProcessPNG_tEXt($$$);
|
32
32
|
sub ProcessPNG_iTXt($$$);
|
@@ -260,7 +260,7 @@ $Image::ExifTool::PNG::colorType = -1;
|
|
260
260
|
Name => $stdCase{exif},
|
261
261
|
Notes => q{
|
262
262
|
proposed but not yet registered. This is where ExifTool will create new
|
263
|
-
EXIF
|
263
|
+
EXIF
|
264
264
|
},
|
265
265
|
SubDirectory => {
|
266
266
|
TagTable => 'Image::ExifTool::Exif::Main',
|
@@ -271,10 +271,7 @@ $Image::ExifTool::PNG::colorType = -1;
|
|
271
271
|
# zXIf
|
272
272
|
$stdCase{zxif} => {
|
273
273
|
Name => $stdCase{zxif},
|
274
|
-
Notes =>
|
275
|
-
proposed but not yet registered. This is where ExifTool will create new
|
276
|
-
EXIF with the Compress option
|
277
|
-
},
|
274
|
+
Notes => 'a once-proposed chunk for compressed EXIF',
|
278
275
|
SubDirectory => {
|
279
276
|
TagTable => 'Image::ExifTool::Exif::Main',
|
280
277
|
DirName => 'EXIF', # (to write as a block)
|
@@ -460,6 +457,7 @@ my %unreg = ( Notes => 'unregistered' );
|
|
460
457
|
Warning => { Name => 'PNGWarning', },
|
461
458
|
Source => { },
|
462
459
|
Comment => { },
|
460
|
+
Collection => { }, # (PNG extensions, 2004)
|
463
461
|
#
|
464
462
|
# The following tags are not part of the original PNG specification,
|
465
463
|
# but are written by ImageMagick and other software
|
@@ -526,6 +524,7 @@ my %unreg = ( Notes => 'unregistered' );
|
|
526
524
|
'Raw profile type exif' => {
|
527
525
|
Name => 'EXIF_Profile',
|
528
526
|
%unreg,
|
527
|
+
NonStandard => 1,
|
529
528
|
SubDirectory => {
|
530
529
|
TagTable => 'Image::ExifTool::Exif::Main',
|
531
530
|
ProcessProc => \&ProcessProfile,
|
@@ -1118,7 +1117,9 @@ sub ProcessPNG_eXIf($$$)
|
|
1118
1117
|
return FoundPNG($et, $tagTablePtr, $$tagInfo{TagID}, \$buf, 2, $outBuff);
|
1119
1118
|
} elsif (not $outBuff) {
|
1120
1119
|
return $et->ProcessTIFF($dirInfo);
|
1121
|
-
|
1120
|
+
# (zxIf was not adopted)
|
1121
|
+
#} elsif ($del and ($et->Options('Compress') xor lc($tag) eq 'zxif')) {
|
1122
|
+
} elsif ($del and lc($tag) eq 'zxif') {
|
1122
1123
|
$et->VPrint(0, " Deleting $tag chunk");
|
1123
1124
|
$$outBuff = '';
|
1124
1125
|
++$$et{CHANGED};
|
@@ -58,7 +58,7 @@ use Image::ExifTool::Exif;
|
|
58
58
|
use Image::ExifTool::GPS;
|
59
59
|
use Image::ExifTool::HP;
|
60
60
|
|
61
|
-
$VERSION = '3.
|
61
|
+
$VERSION = '3.17';
|
62
62
|
|
63
63
|
sub CryptShutterCount($$);
|
64
64
|
sub PrintFilter($$$);
|
@@ -1503,14 +1503,28 @@ my %binaryDataAttrs = (
|
|
1503
1503
|
approximate Light Value. May not be valid for some models, eg. Optio S
|
1504
1504
|
},
|
1505
1505
|
},
|
1506
|
-
0x0016 => { #PH
|
1506
|
+
0x0016 => [{ #PH
|
1507
1507
|
Name => 'ExposureCompensation',
|
1508
|
+
Condition => '$count == 1',
|
1509
|
+
Notes => q{
|
1510
|
+
some models write two values here. The second value is meaning of the
|
1511
|
+
second value is not yet known
|
1512
|
+
},
|
1508
1513
|
Writable => 'int16u',
|
1509
1514
|
ValueConv => '($val - 50) / 10',
|
1510
1515
|
ValueConvInv => 'int($val * 10 + 50.5)',
|
1511
1516
|
PrintConv => '$val ? sprintf("%+.1f", $val) : 0',
|
1512
1517
|
PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
|
1513
|
-
},
|
1518
|
+
},{
|
1519
|
+
Name => 'ExposureCompensation',
|
1520
|
+
Writable => 'int16u',
|
1521
|
+
# (2 values for K-70, etc -- have only seen "0" for the 2nd value - PH)
|
1522
|
+
Count => 2,
|
1523
|
+
ValueConv => '$val =~ s/ .*//; ($val - 50) / 10',
|
1524
|
+
ValueConvInv => 'int($val * 10 + 50.5) . " 0"',
|
1525
|
+
PrintConv => '$val ? sprintf("%+.1f", $val) : 0',
|
1526
|
+
PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
|
1527
|
+
}],
|
1514
1528
|
0x0017 => { #3
|
1515
1529
|
Name => 'MeteringMode',
|
1516
1530
|
Writable => 'int16u',
|
@@ -3021,8 +3035,10 @@ my %binaryDataAttrs = (
|
|
3021
3035
|
5 => 'On but Disabled', # (NC for K-3)
|
3022
3036
|
6 => 'On (Video)', # (NC for K-3)
|
3023
3037
|
7 => 'On (AA simulation off)',
|
3038
|
+
8 => 'Off (AA simulation type 1) (8)', #forum8362 (K-70)
|
3024
3039
|
12 => 'Off (AA simulation type 1)', # (AA linear motion)
|
3025
3040
|
15 => 'On (AA simulation type 1)', # (AA linear motion)
|
3041
|
+
16 => 'Off (AA simulation type 2) (16)', #forum8362 (K-70)
|
3026
3042
|
20 => 'Off (AA simulation type 2)', # (AA circular motion)
|
3027
3043
|
23 => 'On (AA simulation type 2)', # (AA circular motion)
|
3028
3044
|
},
|