exiftool_vendored 11.54.0 → 11.55.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.
- checksums.yaml +4 -4
- data/bin/Changes +15 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +35 -11
- data/bin/lib/Image/ExifTool.pm +66 -31
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +1 -1
- data/bin/lib/Image/ExifTool/Canon.pm +2 -1
- data/bin/lib/Image/ExifTool/Kodak.pm +2 -1
- data/bin/lib/Image/ExifTool/Lang/de.pm +2 -1
- data/bin/lib/Image/ExifTool/Lang/ru.pm +2 -2
- data/bin/lib/Image/ExifTool/Minolta.pm +68 -64
- data/bin/lib/Image/ExifTool/Panasonic.pm +22 -5
- data/bin/lib/Image/ExifTool/QuickTime.pm +121 -2
- data/bin/lib/Image/ExifTool/README +19 -12
- data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
- data/bin/lib/Image/ExifTool/Sony.pm +14 -13
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +9 -5
- data/bin/lib/Image/ExifTool/TagLookup.pm +1459 -1437
- data/bin/lib/Image/ExifTool/TagNames.pod +515 -91
- data/bin/lib/Image/ExifTool/Validate.pm +2 -2
- data/bin/lib/Image/ExifTool/WriteExif.pl +2 -2
- data/bin/lib/Image/ExifTool/Writer.pl +3 -3
- data/bin/lib/Image/ExifTool/XMP.pm +8 -1
- data/bin/lib/Image/ExifTool/XMP2.pl +32 -1
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ca643f48cd99f626cafd714a0230746f924c78b8
|
|
4
|
+
data.tar.gz: 1137ba4c8cd0933438aa92693d935e206fdad16d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 962ca6806904c5cfb58b7d3de17b0c0f38e3513916063176eafae50fe7b9defa5cefcabc4440ad4e217750c05ce3012650b003689201d6fd65e98d4fec247552
|
|
7
|
+
data.tar.gz: 0b8396e912710c0ede3045ef65e08085d24a3d045594eda46b20192587159cb0601f0f3cec590a738a8d110e4d608f2b78875209a1a0f0adf6e69c13faf092d3
|
data/bin/Changes
CHANGED
|
@@ -7,6 +7,21 @@ RSS feed: http://owl.phy.queensu.ca/~phil/exiftool/rss.xml
|
|
|
7
7
|
Note: The most recent production release is Version 11.50. (Other versions are
|
|
8
8
|
considered development releases, and are not uploaded to CPAN.)
|
|
9
9
|
|
|
10
|
+
July 12, 2019 - Version 11.55
|
|
11
|
+
|
|
12
|
+
- Added write support for XMP-crs:Texture and XMP-drs tags
|
|
13
|
+
- Added a number of new Panasonic NoiseReduction values
|
|
14
|
+
- Added definition for a new Kodak tag (thanks LibRaw)
|
|
15
|
+
- Added a couple of new Panasonic AFAreaMode values (thanks Daniel Beichl)
|
|
16
|
+
- Added a couple of new Sony/Minolta LensTypes (thanks Jos Roost and LibRaw)
|
|
17
|
+
- Added a new CanonModelID
|
|
18
|
+
- Decode HEVCConfiguration record from HEIC images
|
|
19
|
+
- Decode a new Panasonic tag
|
|
20
|
+
- Decode a new QuickTime tag
|
|
21
|
+
- Changed internal handling of Composite tag ID's to include module name
|
|
22
|
+
- Removed "FE" designation from Samyang E-mount lenses
|
|
23
|
+
- Dropped Validate warning about missing GPSProcessingMethod tag
|
|
24
|
+
|
|
10
25
|
July 2, 2019 - Version 11.54
|
|
11
26
|
|
|
12
27
|
- Added new Canon and Sony/Minolta LensType values (thanks LibRaw)
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
|
@@ -104,8 +104,8 @@ your home directory, then you would type the following commands in a
|
|
|
104
104
|
terminal window to extract and run ExifTool:
|
|
105
105
|
|
|
106
106
|
cd ~/Desktop
|
|
107
|
-
gzip -dc Image-ExifTool-11.
|
|
108
|
-
cd Image-ExifTool-11.
|
|
107
|
+
gzip -dc Image-ExifTool-11.55.tar.gz | tar -xf -
|
|
108
|
+
cd Image-ExifTool-11.55
|
|
109
109
|
./exiftool t/images/ExifTool.jpg
|
|
110
110
|
|
|
111
111
|
Note: These commands extract meta information from one of the test images.
|
data/bin/exiftool
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
use strict;
|
|
13
13
|
require 5.004;
|
|
14
14
|
|
|
15
|
-
my $version = '11.
|
|
15
|
+
my $version = '11.55';
|
|
16
16
|
|
|
17
17
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
|
18
18
|
my $exeDir;
|
|
@@ -5054,18 +5054,42 @@ been implemented. May also be combined with B<-listx> to output
|
|
|
5054
5054
|
descriptions in one language only.
|
|
5055
5055
|
|
|
5056
5056
|
By default, ExifTool uses UTF-8 encoding for special characters, but the
|
|
5057
|
-
the B<-L> or B<-charset> option may be used to invoke other encodings.
|
|
5057
|
+
the B<-L> or B<-charset> option may be used to invoke other encodings. Note
|
|
5058
|
+
that ExifTool uses Unicode::LineBreak if available to help preserve the
|
|
5059
|
+
column alignment of the plain text output for languages with a
|
|
5060
|
+
variable-width character set.
|
|
5058
5061
|
|
|
5059
5062
|
Currently, the language support is not complete, but users are welcome to
|
|
5060
|
-
help improve this by submitting their own translations. To submit a
|
|
5061
|
-
|
|
5062
|
-
file to generate an XML tag database, then add entries for other languages,
|
|
5063
|
-
zip this file, and email it to phil at owl.phy.queensu.ca for inclusion in
|
|
5064
|
-
ExifTool.
|
|
5063
|
+
help improve this by submitting their own translations. To submit a
|
|
5064
|
+
translation, follow these steps (you must have Perl installed for this):
|
|
5065
5065
|
|
|
5066
|
-
|
|
5067
|
-
|
|
5068
|
-
|
|
5066
|
+
1. Download and unpack the latest Image-ExifTool full distribution.
|
|
5067
|
+
|
|
5068
|
+
2. 'cd' into the Image-ExifTool directory.
|
|
5069
|
+
|
|
5070
|
+
3. Run this command to make an XML file of the desired tags (eg. EXIF):
|
|
5071
|
+
|
|
5072
|
+
./exiftool -listx -exif:all > out.xml
|
|
5073
|
+
|
|
5074
|
+
4. Copy this text into a file called 'import.pl' in the exiftool directory:
|
|
5075
|
+
|
|
5076
|
+
push @INC, 'lib';
|
|
5077
|
+
require Image::ExifTool::TagInfoXML;
|
|
5078
|
+
my $file = shift or die "Expected XML file name\n";
|
|
5079
|
+
$Image::ExifTool::TagInfoXML::makeMissing = shift;
|
|
5080
|
+
Image::ExifTool::TagInfoXML::BuildLangModules($file,8);
|
|
5081
|
+
|
|
5082
|
+
5. Run the 'import.pl' script to Import the XML file, generating the
|
|
5083
|
+
'MISSING' entries for your language (eg. Russian):
|
|
5084
|
+
|
|
5085
|
+
perl import.pl out.xml ru
|
|
5086
|
+
|
|
5087
|
+
6. Edit the generated language module lib/Image/ExifTool/Lang/ru.pm, and
|
|
5088
|
+
search and replace all 'MISSING' strings in the file with your translations.
|
|
5089
|
+
|
|
5090
|
+
7. Email the module ('ru.pm' in this example) to phil at owl.phy.queensu.ca
|
|
5091
|
+
|
|
5092
|
+
8. Thank you!!
|
|
5069
5093
|
|
|
5070
5094
|
=item B<-listItem> I<INDEX>
|
|
5071
5095
|
|
|
@@ -5134,7 +5158,7 @@ with this command:
|
|
|
5134
5158
|
|
|
5135
5159
|
produces output like this:
|
|
5136
5160
|
|
|
5137
|
-
-- Generated by ExifTool 11.
|
|
5161
|
+
-- Generated by ExifTool 11.55 --
|
|
5138
5162
|
File: a.jpg - 2003:10:31 15:44:19
|
|
5139
5163
|
(f/5.6, 1/60s, ISO 100)
|
|
5140
5164
|
File: b.jpg - 2006:05:23 11:57:38
|
data/bin/lib/Image/ExifTool.pm
CHANGED
|
@@ -27,7 +27,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
|
27
27
|
%mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
|
|
28
28
|
%jpegMarker %specialTags %fileTypeLookup);
|
|
29
29
|
|
|
30
|
-
$VERSION = '11.
|
|
30
|
+
$VERSION = '11.55';
|
|
31
31
|
$RELEASE = '';
|
|
32
32
|
@ISA = qw(Exporter);
|
|
33
33
|
%EXPORT_TAGS = (
|
|
@@ -979,7 +979,7 @@ my %allGroupsExifTool = ( 0 => 'ExifTool', 1 => 'ExifTool', 2 => 'ExifTool' );
|
|
|
979
979
|
WRITABLE TABLE_DESC NOTES IS_OFFSET IS_SUBDIR
|
|
980
980
|
EXTRACT_UNKNOWN NAMESPACE PREFERRED SRC_TABLE PRIORITY
|
|
981
981
|
AVOID WRITE_GROUP LANG_INFO VARS DATAMEMBER
|
|
982
|
-
SET_GROUP1 PERMANENT
|
|
982
|
+
SET_GROUP1 PERMANENT INIT_TABLE
|
|
983
983
|
);
|
|
984
984
|
|
|
985
985
|
# headers for various segment types
|
|
@@ -1845,6 +1845,8 @@ my %systemTagsNotes = (
|
|
|
1845
1845
|
WRITE_PROC => \&DummyWriteProc,
|
|
1846
1846
|
);
|
|
1847
1847
|
|
|
1848
|
+
my %compositeID; # lookup for new ID's of Composite tags based on original ID
|
|
1849
|
+
|
|
1848
1850
|
# static private ExifTool variables
|
|
1849
1851
|
|
|
1850
1852
|
%allTables = ( ); # list of all tables loaded (except Composite tags)
|
|
@@ -3369,16 +3371,19 @@ sub BuildCompositeTags($)
|
|
|
3369
3371
|
my $compTable = GetTagTable('Image::ExifTool::Composite');
|
|
3370
3372
|
my @tagList = sort keys %$compTable;
|
|
3371
3373
|
my $rawValue = $$self{VALUE};
|
|
3372
|
-
my (%tagsUsed, %cache);
|
|
3374
|
+
my (%tagsUsed, %cache, $allBuilt);
|
|
3373
3375
|
|
|
3374
3376
|
for (;;) {
|
|
3375
3377
|
my (%notBuilt, $tag, @deferredTags);
|
|
3376
|
-
|
|
3378
|
+
foreach (@tagList) {
|
|
3379
|
+
$notBuilt{$$compTable{$_}{Name}} = 1 unless $specialTags{$_};
|
|
3380
|
+
}
|
|
3377
3381
|
COMPOSITE_TAG:
|
|
3378
3382
|
foreach $tag (@tagList) {
|
|
3379
3383
|
next if $specialTags{$tag};
|
|
3380
3384
|
my $tagInfo = $self->GetTagInfo($compTable, $tag);
|
|
3381
3385
|
next unless $tagInfo;
|
|
3386
|
+
my $tagName = $$compTable{$tag}{Name};
|
|
3382
3387
|
# put required tags into array and make sure they all exist
|
|
3383
3388
|
my $subDoc = ($$tagInfo{SubDoc} and $$self{DOC_COUNT});
|
|
3384
3389
|
my $require = $$tagInfo{Require} || { };
|
|
@@ -3429,8 +3434,12 @@ COMPOSITE_TAG:
|
|
|
3429
3434
|
} elsif ($reqTag =~ /^(.*):(.+)/) {
|
|
3430
3435
|
my ($reqGroup, $name) = ($1, $2);
|
|
3431
3436
|
if ($reqGroup eq 'Composite' and $notBuilt{$name}) {
|
|
3432
|
-
|
|
3433
|
-
|
|
3437
|
+
# defer only until all other tags are built if
|
|
3438
|
+
# we are inhibiting based on another Composite tag
|
|
3439
|
+
unless ($$inhibit{$index} and $allBuilt) {
|
|
3440
|
+
push @deferredTags, $tag;
|
|
3441
|
+
next COMPOSITE_TAG;
|
|
3442
|
+
}
|
|
3434
3443
|
}
|
|
3435
3444
|
# (CAREFUL! keys may not be sequential if one was deleted)
|
|
3436
3445
|
my ($i, $key, @keys);
|
|
@@ -3470,13 +3479,13 @@ COMPOSITE_TAG:
|
|
|
3470
3479
|
next if ++$docNum <= $$self{DOC_COUNT};
|
|
3471
3480
|
last;
|
|
3472
3481
|
} elsif ($found) {
|
|
3473
|
-
delete $notBuilt{$
|
|
3482
|
+
delete $notBuilt{$tagName}; # this tag is OK to build now
|
|
3474
3483
|
# keep track of all Require'd tag keys
|
|
3475
3484
|
foreach (keys %tagKey) {
|
|
3476
3485
|
# only tag keys with same name as a Composite tag
|
|
3477
3486
|
# can be replaced (also eliminates keys with
|
|
3478
3487
|
# instance numbers which can't be replaced either)
|
|
3479
|
-
next unless
|
|
3488
|
+
next unless $compositeID{$tagKey{$_}};
|
|
3480
3489
|
my $keyRef = \$tagKey{$_};
|
|
3481
3490
|
$tagsUsed{$$keyRef} or $tagsUsed{$$keyRef} = [ ];
|
|
3482
3491
|
push @{$tagsUsed{$$keyRef}}, $keyRef;
|
|
@@ -3491,7 +3500,7 @@ COMPOSITE_TAG:
|
|
|
3491
3500
|
delete $tagsUsed{$key}; # can't be replaced again
|
|
3492
3501
|
}
|
|
3493
3502
|
} elsif (not defined $found) {
|
|
3494
|
-
delete $notBuilt{$
|
|
3503
|
+
delete $notBuilt{$tagName}; # tag can't be built anyway
|
|
3495
3504
|
}
|
|
3496
3505
|
last unless $subDoc;
|
|
3497
3506
|
# don't process sub-documents if there is no chance to build this tag
|
|
@@ -3517,16 +3526,30 @@ COMPOSITE_TAG:
|
|
|
3517
3526
|
}
|
|
3518
3527
|
last unless @deferredTags;
|
|
3519
3528
|
if (@deferredTags == @tagList) {
|
|
3520
|
-
|
|
3521
|
-
|
|
3522
|
-
|
|
3523
|
-
|
|
3529
|
+
if ($allBuilt) {
|
|
3530
|
+
# everything was deferred in the last pass,
|
|
3531
|
+
# must be a circular dependency
|
|
3532
|
+
warn "Circular dependency in Composite tags\n";
|
|
3533
|
+
last;
|
|
3534
|
+
}
|
|
3535
|
+
$allBuilt = 1; # try once more, ignoring Composite Inhibit tags
|
|
3524
3536
|
}
|
|
3525
3537
|
@tagList = @deferredTags; # calculate deferred tags now
|
|
3526
3538
|
}
|
|
3527
3539
|
delete $$self{BuildingComposite};
|
|
3528
3540
|
}
|
|
3529
3541
|
|
|
3542
|
+
#------------------------------------------------------------------------------
|
|
3543
|
+
# Get reference to Composite tag info hash
|
|
3544
|
+
# Inputs: 0) case-sensitive Composite tag name
|
|
3545
|
+
# Returns: tagInfo hash or undef
|
|
3546
|
+
sub GetCompositeTagInfo($)
|
|
3547
|
+
{
|
|
3548
|
+
my $tag = shift;
|
|
3549
|
+
return undef unless $compositeID{$tag};
|
|
3550
|
+
return $Image::ExifTool::Composite{$compositeID{$tag}[0]};
|
|
3551
|
+
}
|
|
3552
|
+
|
|
3530
3553
|
#------------------------------------------------------------------------------
|
|
3531
3554
|
# Get tag name (removes copy index)
|
|
3532
3555
|
# Inputs: 0) Tag key
|
|
@@ -4571,12 +4594,16 @@ sub AddCompositeTags($;$)
|
|
|
4571
4594
|
{
|
|
4572
4595
|
local $_;
|
|
4573
4596
|
my ($add, $override) = @_;
|
|
4574
|
-
my $module;
|
|
4597
|
+
my ($module, $prefix, $tagID);
|
|
4575
4598
|
unless (ref $add) {
|
|
4599
|
+
($prefix = $add) =~ s/.*:://;
|
|
4600
|
+
$prefix .= '::';
|
|
4576
4601
|
$module = $add;
|
|
4577
4602
|
$add .= '::Composite';
|
|
4578
4603
|
no strict 'refs';
|
|
4579
4604
|
$add = \%$add;
|
|
4605
|
+
} else {
|
|
4606
|
+
$prefix = 'UserDefined::';
|
|
4580
4607
|
}
|
|
4581
4608
|
my $defaultGroups = $$add{GROUPS};
|
|
4582
4609
|
my $compTable = GetTagTable('Image::ExifTool::Composite');
|
|
@@ -4590,31 +4617,38 @@ sub AddCompositeTags($;$)
|
|
|
4590
4617
|
$defaultGroups = $$add{GROUPS} = { 0 => 'Composite', 1 => 'Composite', 2 => 'Other' };
|
|
4591
4618
|
}
|
|
4592
4619
|
SetupTagTable($add); # generate Name, TagID, etc
|
|
4593
|
-
my $tagID;
|
|
4594
4620
|
foreach $tagID (sort keys %$add) {
|
|
4595
4621
|
next if $specialTags{$tagID}; # must skip special tags
|
|
4596
4622
|
my $tagInfo = $$add{$tagID};
|
|
4597
|
-
|
|
4598
|
-
my $tag = $$tagInfo{Name};
|
|
4623
|
+
my $new = $prefix . $tagID; # new tag ID for Composite table
|
|
4599
4624
|
$$tagInfo{Module} = $module if $$tagInfo{Writable};
|
|
4600
4625
|
$$tagInfo{Override} = 1 if $override and not defined $$tagInfo{Override};
|
|
4601
4626
|
$$tagInfo{IsComposite} = 1;
|
|
4602
|
-
#
|
|
4603
|
-
if (
|
|
4627
|
+
# handle Composite tags with the same name
|
|
4628
|
+
if ($compositeID{$tagID}) {
|
|
4604
4629
|
# determine if we want to override this tag
|
|
4605
4630
|
# (=0 keep both, >0 override, <0 keep existing)
|
|
4606
|
-
my $over = ($$tagInfo{Override} || 0) - ($$compTable{$
|
|
4631
|
+
my $over = ($$tagInfo{Override} || 0) - ($$compTable{$compositeID{$tagID}[0]}{Override} || 0);
|
|
4607
4632
|
next if $over < 0;
|
|
4608
|
-
|
|
4609
|
-
|
|
4610
|
-
|
|
4611
|
-
delete
|
|
4612
|
-
$n = ($n || 1) + 1;
|
|
4613
|
-
$new = "${tag}-$n";
|
|
4633
|
+
if ($over) {
|
|
4634
|
+
# remove existing tags with this ID
|
|
4635
|
+
delete $$compTable{$_} foreach @{$compositeID{$tagID}};
|
|
4636
|
+
delete $compositeID{$tagID};
|
|
4614
4637
|
}
|
|
4615
|
-
# use new ID and save it so we can use it in TagLookup
|
|
4616
|
-
$$tagInfo{NewTagID} = $tag = $new unless $over;
|
|
4617
4638
|
}
|
|
4639
|
+
# make sure new TagID is unique by adding index if necessary
|
|
4640
|
+
my $n = 0;
|
|
4641
|
+
while ($$compTable{$new}) {
|
|
4642
|
+
$new =~ s/-\d+$// if $n++;
|
|
4643
|
+
$new .= "-$n";
|
|
4644
|
+
}
|
|
4645
|
+
# use new ID and save it so we can use it in TagLookup
|
|
4646
|
+
$$tagInfo{NewTagID} = $new unless $tagID eq $new;
|
|
4647
|
+
|
|
4648
|
+
# add new ID to lookup of Composite tag ID's
|
|
4649
|
+
$compositeID{$tagID} = [ ] unless $compositeID{$tagID};
|
|
4650
|
+
unshift @{$compositeID{$tagID}}, $new; # (most recent one first)
|
|
4651
|
+
|
|
4618
4652
|
# convert scalar Require/Desire/Inhibit entries
|
|
4619
4653
|
my ($type, @hashes, @scalars, %used);
|
|
4620
4654
|
foreach $type ('Require','Desire','Inhibit') {
|
|
@@ -4635,9 +4669,9 @@ sub AddCompositeTags($;$)
|
|
|
4635
4669
|
# add this Composite tag to our main Composite table
|
|
4636
4670
|
$$tagInfo{Table} = $compTable;
|
|
4637
4671
|
# (use the original TagID, even if we changed it, so don't do this:)
|
|
4638
|
-
|
|
4639
|
-
# save tag under
|
|
4640
|
-
$$compTable{$
|
|
4672
|
+
$$tagInfo{TagID} = $new;
|
|
4673
|
+
# save tag under new ID in Composite table
|
|
4674
|
+
$$compTable{$new} = $tagInfo;
|
|
4641
4675
|
# set all default groups in tag
|
|
4642
4676
|
my $groups = $$tagInfo{Groups};
|
|
4643
4677
|
$groups or $groups = $$tagInfo{Groups} = { };
|
|
@@ -7248,6 +7282,7 @@ sub GetTagTable($)
|
|
|
7248
7282
|
no strict 'refs';
|
|
7249
7283
|
$table = \%$tableName;
|
|
7250
7284
|
use strict 'refs';
|
|
7285
|
+
&{$$table{INIT_TABLE}}($table) if $$table{INIT_TABLE};
|
|
7251
7286
|
$$table{TABLE_NAME} = $tableName; # set table name
|
|
7252
7287
|
($$table{SHORT_NAME} = $tableName) =~ s/^Image::ExifTool:://;
|
|
7253
7288
|
# set default group 0 and 1 from module name unless already specified
|
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
|
88
88
|
sub ProcessExifInfo($$$);
|
|
89
89
|
sub SwapWords($);
|
|
90
90
|
|
|
91
|
-
$VERSION = '4.
|
|
91
|
+
$VERSION = '4.17';
|
|
92
92
|
|
|
93
93
|
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
|
|
94
94
|
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
|
|
@@ -769,6 +769,7 @@ $VERSION = '4.16';
|
|
|
769
769
|
0x6040000 => 'PowerShot S100 / Digital IXUS / IXY Digital',
|
|
770
770
|
0x801 => 'PowerShot SX740 HS',
|
|
771
771
|
0x805 => 'PowerShot SX70 HS',
|
|
772
|
+
0x808 => 'PowerShot G7 X Mark III',
|
|
772
773
|
|
|
773
774
|
# (see http://cweb.canon.jp/e-support/faq/answer/digitalcamera/10447-1.html for PowerShot/IXUS/IXY names)
|
|
774
775
|
|
|
@@ -25,7 +25,7 @@ use vars qw($VERSION);
|
|
|
25
25
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
26
26
|
use Image::ExifTool::Exif;
|
|
27
27
|
|
|
28
|
-
$VERSION = '1.
|
|
28
|
+
$VERSION = '1.46';
|
|
29
29
|
|
|
30
30
|
sub ProcessKodakIFD($$$);
|
|
31
31
|
sub ProcessKodakText($$$);
|
|
@@ -2661,6 +2661,7 @@ my %sceneModeUsed = (
|
|
|
2661
2661
|
'Image Number' => 'ImageNumber',
|
|
2662
2662
|
'ISO' => 'ISO',
|
|
2663
2663
|
'ISO Speed' => 'ISO',
|
|
2664
|
+
'Lens' => { Name => 'Lens', Priority => 0 },
|
|
2664
2665
|
'Max Aperture' => {
|
|
2665
2666
|
Name => 'MaxAperture',
|
|
2666
2667
|
ValueConv => '$val=~s/^f//i; $val',
|
|
@@ -8707,7 +8707,8 @@ under the same terms as Perl itself.
|
|
|
8707
8707
|
|
|
8708
8708
|
=head1 ACKNOWLEDGEMENTS
|
|
8709
8709
|
|
|
8710
|
-
Thanks to Jens Duttke
|
|
8710
|
+
Thanks to Jens Duttke, Herbert Kauer and Jobi for providing this
|
|
8711
|
+
translation.
|
|
8711
8712
|
|
|
8712
8713
|
=head1 SEE ALSO
|
|
8713
8714
|
|
|
@@ -1983,8 +1983,8 @@ under the same terms as Perl itself.
|
|
|
1983
1983
|
|
|
1984
1984
|
=head1 ACKNOWLEDGEMENTS
|
|
1985
1985
|
|
|
1986
|
-
Thanks to Jens Duttke, Sergey Shemetov, Dmitry Yerokhin
|
|
1987
|
-
for providing this translation.
|
|
1986
|
+
Thanks to Jens Duttke, Sergey Shemetov, Dmitry Yerokhin, Anton Sukhinov and
|
|
1987
|
+
Alexander for providing this translation.
|
|
1988
1988
|
|
|
1989
1989
|
=head1 SEE ALSO
|
|
1990
1990
|
|
|
@@ -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.77';
|
|
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)
|
|
@@ -590,75 +590,79 @@ $VERSION = '2.76';
|
|
|
590
590
|
'65535.46' => 'Sony E 18-135mm F3.5-5.6 OSS', #JR (32849 - SEL18135)
|
|
591
591
|
'65535.47' => 'Sony FE 135mm F1.8 GM', #IB (32850 - SEL135F18GM)
|
|
592
592
|
'65535.48' => 'Sony FE 200-600mm F5.6-6.3 G OSS',#IB (32851 - SEL200600G)
|
|
593
|
-
'65535.49' => 'Sony FE 600mm F4 GM OSS', #IB (32852 -
|
|
594
|
-
'65535.50' => 'Sony FE
|
|
595
|
-
'65535.51' => 'Sony FE 70-200mm F2.8 GM OSS +
|
|
596
|
-
'65535.52' => 'Sony FE
|
|
597
|
-
'65535.53' => 'Sony FE 100-400mm F4.5-5.6 GM OSS +
|
|
598
|
-
'65535.54' => 'Sony FE 400mm
|
|
599
|
-
'65535.55' => 'Sony FE 400mm F2.8 GM OSS +
|
|
600
|
-
'65535.56' => 'Sony FE
|
|
601
|
-
'65535.57' => 'Sony FE 200-600mm F5.6-6.3 G OSS +
|
|
602
|
-
'65535.58' => 'Sony FE 600mm
|
|
603
|
-
'65535.59' => 'Sony FE 600mm F4 GM OSS +
|
|
593
|
+
'65535.49' => 'Sony FE 600mm F4 GM OSS', #IB (32852 - SEL600F40GM)
|
|
594
|
+
'65535.50' => 'Sony FE 35mm F1.8', #JR/IB (32858 - SEL35F18F)
|
|
595
|
+
'65535.51' => 'Sony FE 70-200mm F2.8 GM OSS + 1.4X Teleconverter', #JR (33072 - SEL70200GM + SEL14TC)
|
|
596
|
+
'65535.52' => 'Sony FE 70-200mm F2.8 GM OSS + 2X Teleconverter', #JR (33073 - SEL70200GM + SEL20TC)
|
|
597
|
+
'65535.53' => 'Sony FE 100-400mm F4.5-5.6 GM OSS + 1.4X Teleconverter', #JR (33077 - SEL100400GM + SEL14TC)
|
|
598
|
+
'65535.54' => 'Sony FE 100-400mm F4.5-5.6 GM OSS + 2X Teleconverter', #JR (33078 - SEL100400GM + SEL20TC)
|
|
599
|
+
'65535.55' => 'Sony FE 400mm F2.8 GM OSS + 1.4X Teleconverter', #IB (33079 - SEL400F28GM + SEL14TC)
|
|
600
|
+
'65535.56' => 'Sony FE 400mm F2.8 GM OSS + 2X Teleconverter', #JR (33080 - SEL400F28GM + SEL20TC)
|
|
601
|
+
'65535.57' => 'Sony FE 200-600mm F5.6-6.3 G OSS + 1.4X Teleconverter', #JR (33081 - SEL200600G + SEL14TC) (NC)
|
|
602
|
+
'65535.58' => 'Sony FE 200-600mm F5.6-6.3 G OSS + 2X Teleconverter', #JR (33082 - SEL200600G + SEL20TC)
|
|
603
|
+
'65535.59' => 'Sony FE 600mm F4 GM OSS + 1.4X Teleconverter', #JR (33083 - SEL600F40GM + SEL14TC) (NC)
|
|
604
|
+
'65535.60' => 'Sony FE 600mm F4 GM OSS + 2X Teleconverter', #JR (33084 - SEL600F40GM + SEL20TC)
|
|
604
605
|
#
|
|
605
606
|
# 3rd party E lenses
|
|
606
607
|
#
|
|
607
|
-
'65535.
|
|
608
|
-
'65535.
|
|
609
|
-
'65535.
|
|
610
|
-
'65535.
|
|
611
|
-
'65535.
|
|
612
|
-
'65535.
|
|
613
|
-
'65535.
|
|
614
|
-
'65535.
|
|
615
|
-
'65535.
|
|
616
|
-
'65535.
|
|
617
|
-
'65535.
|
|
618
|
-
'65535.
|
|
619
|
-
'65535.
|
|
620
|
-
'65535.
|
|
621
|
-
'65535.
|
|
622
|
-
'65535.
|
|
623
|
-
'65535.
|
|
624
|
-
'65535.
|
|
625
|
-
'65535.
|
|
626
|
-
'65535.
|
|
627
|
-
'65535.
|
|
628
|
-
'65535.
|
|
629
|
-
'65535.
|
|
630
|
-
'65535.
|
|
631
|
-
'65535.
|
|
632
|
-
'65535.
|
|
633
|
-
'65535.
|
|
634
|
-
'65535.
|
|
635
|
-
'65535.
|
|
636
|
-
'65535.
|
|
637
|
-
'65535.
|
|
638
|
-
'65535.
|
|
639
|
-
'65535.
|
|
640
|
-
'65535.
|
|
641
|
-
'65535.
|
|
642
|
-
'65535.
|
|
643
|
-
'65535.
|
|
644
|
-
'65535.
|
|
645
|
-
'65535.
|
|
646
|
-
'65535.
|
|
647
|
-
'65535.
|
|
648
|
-
'65535.
|
|
649
|
-
'65535.
|
|
650
|
-
'65535.
|
|
651
|
-
'65535.
|
|
608
|
+
'65535.61' => 'Samyang AF 50mm F1.4', #JR (32789)
|
|
609
|
+
'65535.62' => 'Samyang AF 14mm F2.8', #JR (32790 and 51505)
|
|
610
|
+
'65535.63' => 'Samyang AF 24mm F2.8', #JR (32794)
|
|
611
|
+
'65535.64' => 'Samyang AF 35mm F2.8', #PH (51505)
|
|
612
|
+
'65535.65' => 'Samyang AF 35mm F1.4', #IB (51507)
|
|
613
|
+
'65535.66' => 'Samyang AF 85mm F1.4', #IB (32823)
|
|
614
|
+
'65535.67' => 'Sigma 19mm F2.8 [EX] DN', #JR (0)
|
|
615
|
+
'65535.68' => 'Sigma 30mm F2.8 [EX] DN', #JR (0)
|
|
616
|
+
'65535.69' => 'Sigma 60mm F2.8 DN', #JR (0)
|
|
617
|
+
'65535.70' => 'Sigma 30mm F1.4 DC DN | C', #IB (50480) (016)
|
|
618
|
+
'65535.71' => 'Sigma 85mm F1.4 DG HSM | A', #JR (50499) (018)
|
|
619
|
+
'65535.72' => 'Sigma 16mm F1.4 DC DN | C', #JR (50503) (017)
|
|
620
|
+
'65535.73' => 'Sigma 105mm F1.4 DG HSM | A', #IB (50507) (018)
|
|
621
|
+
'65535.74' => 'Sigma 56mm F1.4 DC DN | C', #JR (50508) (018)
|
|
622
|
+
'65535.75' => 'Sigma 70-200mm F2.8 DG OS HSM | S',#IB (50512) (018)
|
|
623
|
+
'65535.76' => 'Sigma 70mm F2.8 DG MACRO | A', #JR (50513) (018)
|
|
624
|
+
'65535.77' => 'Sigma 50mm F1.4 DG HSM | A', #JR (50481) (018)
|
|
625
|
+
'65535.78' => 'Sigma 35mm F1.4 DG HSM | A', #JR (50488) (018)
|
|
626
|
+
'65535.79' => 'Tamron 18-200mm F3.5-6.3 Di III VC', #JR (0 - Model B011)
|
|
627
|
+
'65535.80' => 'Tamron 28-75mm F2.8 Di III RXD', #JR (49457 - Model A036)
|
|
628
|
+
'65535.81' => 'Tamron 17-28mm F2.8 Di III RXD', #JR (49458 - Model A046)
|
|
629
|
+
'65535.82' => 'Tokina FiRIN 20mm F2 FE MF', #JR (0)
|
|
630
|
+
'65535.83' => 'Tokina FiRIN 20mm F2 FE AF', #JR (49712 or 0)
|
|
631
|
+
'65535.84' => 'Tokina FiRIN 100mm F2.8 FE MACRO',#JR (49713)
|
|
632
|
+
'65535.85' => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR (50992)
|
|
633
|
+
'65535.86' => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB (50993)
|
|
634
|
+
'65535.87' => 'Voigtlander ULTRA WIDE-HELIAR 12mm F5.6 III', #IB (50994)
|
|
635
|
+
'65535.88' => 'Voigtlander MACRO APO-LANTHAR 65mm F2 Aspherical', #JR (50995)
|
|
636
|
+
'65535.89' => 'Voigtlander NOKTON 40mm F1.2 Aspherical', #JR (50996)
|
|
637
|
+
'65535.90' => 'Voigtlander NOKTON classic 35mm F1.4', #JR (50997)
|
|
638
|
+
'65535.91' => 'Voigtlander MACRO APO-LANTHAR 110mm F2.5', #JR (50998)
|
|
639
|
+
'65535.92' => 'Voigtlander COLOR-SKOPAR 21mm F3.5 Aspherical', #IB (50999)
|
|
640
|
+
'65535.93' => 'Voigtlander NOKTON 50mm F1.2 Aspherical', #JR (51000)
|
|
641
|
+
'65535.94' => 'Voigtlander NOKTON 21mm F1.4 Aspherical', #JR (51001)
|
|
642
|
+
'65535.95' => 'Viltrox PFU RBMH 85mm F1.8', #JR (32796)
|
|
643
|
+
'65535.96' => 'Zeiss Touit 12mm F2.8', #JR (49201 or 0)
|
|
644
|
+
'65535.97' => 'Zeiss Touit 32mm F1.8', #JR (49202 or 0)
|
|
645
|
+
'65535.98' => 'Zeiss Touit 50mm F2.8 Macro', #JR (49203 or 0)
|
|
646
|
+
'65535.99' => 'Zeiss Batis 25mm F2', #JR (49216)
|
|
647
|
+
'65535.100' => 'Zeiss Batis 85mm F1.8', #JR (49217)
|
|
648
|
+
'65535.101' => 'Zeiss Batis 18mm F2.8', #IB (49218)
|
|
649
|
+
'65535.102' => 'Zeiss Batis 135mm F2.8', #IB (49219)
|
|
650
|
+
'65535.103' => 'Zeiss Batis 40mm F2 CF', #JR (49220)
|
|
651
|
+
'65535.104' => 'Zeiss Loxia 50mm F2', #JR (49232 or 0)
|
|
652
|
+
'65535.105' => 'Zeiss Loxia 35mm F2', #JR (49233 or 0)
|
|
653
|
+
'65535.106' => 'Zeiss Loxia 21mm F2.8', #JR (49234)
|
|
654
|
+
'65535.107' => 'Zeiss Loxia 85mm F2.4', #JR (49235)
|
|
655
|
+
'65535.108' => 'Zeiss Loxia 25mm F2.4', #JR (49236)
|
|
652
656
|
#
|
|
653
657
|
# other lenses
|
|
654
658
|
#
|
|
655
|
-
'65535.
|
|
656
|
-
'65535.
|
|
657
|
-
'65535.
|
|
658
|
-
'65535.
|
|
659
|
-
'65535.
|
|
660
|
-
'65535.
|
|
661
|
-
'65535.
|
|
659
|
+
'65535.109' => 'Arax MC 35mm F2.8 Tilt+Shift', #JD
|
|
660
|
+
'65535.110' => 'Arax MC 80mm F2.8 Tilt+Shift', #JD
|
|
661
|
+
'65535.111' => 'Zenitar MF 16mm F2.8 Fisheye M42', #JD
|
|
662
|
+
'65535.112' => 'Samyang 500mm Mirror F8.0', #19
|
|
663
|
+
'65535.113' => 'Pentacon Auto 135mm F2.8', #19
|
|
664
|
+
'65535.114' => 'Pentacon Auto 29mm F2.8', #19
|
|
665
|
+
'65535.115' => 'Helios 44-2 58mm F2.0', #19
|
|
662
666
|
);
|
|
663
667
|
|
|
664
668
|
%minoltaTeleconverters = (
|