exiftool_vendored 12.65.0 → 12.68.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/Changes +43 -2
- data/bin/MANIFEST +5 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +7 -7
- data/bin/exiftool +30 -21
- data/bin/lib/Image/ExifTool/Apple.pm +6 -2
- data/bin/lib/Image/ExifTool/Canon.pm +50 -13
- data/bin/lib/Image/ExifTool/FujiFilm.pm +20 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +17 -12
- data/bin/lib/Image/ExifTool/Nikon.pm +34 -5
- data/bin/lib/Image/ExifTool/PLUS.pm +19 -4
- data/bin/lib/Image/ExifTool/PNG.pm +14 -7
- data/bin/lib/Image/ExifTool/Panasonic.pm +8 -8
- data/bin/lib/Image/ExifTool/Pentax.pm +8 -1
- data/bin/lib/Image/ExifTool/PhotoMechanic.pm +2 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +61 -51
- data/bin/lib/Image/ExifTool/Sony.pm +66 -21
- data/bin/lib/Image/ExifTool/TagLookup.pm +6729 -6709
- data/bin/lib/Image/ExifTool/TagNames.pod +78 -10
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +2 -0
- data/bin/lib/Image/ExifTool/Writer.pl +1 -0
- data/bin/lib/Image/ExifTool/XISF.pm +185 -0
- data/bin/lib/Image/ExifTool/XMP2.pl +1 -1
- data/bin/lib/Image/ExifTool.pm +25 -13
- data/bin/lib/Image/ExifTool.pod +20 -10
- data/bin/perl-Image-ExifTool.spec +6 -6
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8775a6c495517ead6255debf3b1c804d3e5648d563bea48171176632cfb5043b
|
4
|
+
data.tar.gz: 305d08e52e2ef9b75538fe0305093dad86581448d56a21d66503863b11321a6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa79d6fa82ae949030c90fc5e07c0271eb837336e9ee8675a1bb468b1f4f5b430b0ce78678a75e5025520a1118b7defd21a8f06242ad019d2001e10d1f270e54
|
7
|
+
data.tar.gz: ac7c7da4ef3ba52118a9bea9c0ccdc6a85f4d247e622e75c4e40567d582f0ca062eb68ad796a1a3745c5631c9800e243f45599a52cc8a2bfc99daf00af9cd928
|
data/bin/Changes
CHANGED
@@ -7,6 +7,47 @@ RSS feed: https://exiftool.org/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 12.60. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
9
9
|
|
10
|
+
Oct. 16, 2023 - Version 12.68
|
11
|
+
|
12
|
+
- Added preliminary read support for XISF images
|
13
|
+
- Added the ability to delete JUMBF metadata from PNG images
|
14
|
+
- Added support for writing Canon burst-roll CR3 images
|
15
|
+
- Added a new Nikon Z9 SubjectDetection value, and improved Zf support
|
16
|
+
- Added a couple of new PentaxModelID values
|
17
|
+
- Added a few couple of new tag values for the Pentax K-3 Mark III Monochrome (github #226)
|
18
|
+
- Added a support for a new XMP-photomech tag
|
19
|
+
- Added a new Nikon LensID
|
20
|
+
- Added a new Canon LensType
|
21
|
+
- Added a new QuickTime ItemList tag
|
22
|
+
- Support decimal values for FujiFilm ShadowTone and HighlightTone tags
|
23
|
+
- Decode some new Sony tags (thanks Jos Roost)
|
24
|
+
- Decode ShutterCount for Canon EOS R6 (thanks gamin)
|
25
|
+
- Decode QuickTime VideoFullRangeFlag
|
26
|
+
- Decode JPGCompression for the Nikon D3S
|
27
|
+
- Enhanced -geotag feature to allow writing QuickTime:GPSCoordinates
|
28
|
+
- Renamed Panasonic HDRShot tag to MergedImages (forum 15298)
|
29
|
+
- Fixed problem where some NEF files were misidentified as NRW
|
30
|
+
|
31
|
+
Sept. 19, 2023 - Version 12.67
|
32
|
+
|
33
|
+
- Added a new Pentax LensType (thanks dmont)
|
34
|
+
- Added a new FujiFilm FilmMode and FaceElementTypes values (thanks Greybeard)
|
35
|
+
- Fixed error writing new DataMining tag where URI prefix wasn't being
|
36
|
+
properly added to the value
|
37
|
+
|
38
|
+
Sept. 19, 2023 - Version 12.66
|
39
|
+
|
40
|
+
- Added a few new Canon LensType values (thanks Norbert Wasser)
|
41
|
+
- Added conversions for a few Apple:ImageCaptureType values
|
42
|
+
- Added new XMP tag for PLUS version 2.0.1
|
43
|
+
- Added a new CanonModelID (thanks Laurent Clevy)
|
44
|
+
- Decode another tag from Canon 1DS raw images (Hubert Figuiere, github #219)
|
45
|
+
- Decode JPGCompression for newer Nikon models (thanks Warren Hatch)
|
46
|
+
- Fixed bug introduced in 12.65 where duplicate tags were not returned even
|
47
|
+
when the groups where specified explicitly
|
48
|
+
- API Changes:
|
49
|
+
- Added WindowsWideFile option
|
50
|
+
|
10
51
|
Aug. 10, 2023 - Version 12.65
|
11
52
|
|
12
53
|
- Added a new QuickTime Keys tag
|
@@ -135,6 +176,8 @@ Apr. 5, 2023 - Version 12.60 (production release)
|
|
135
176
|
- Fixed problem where setting the Geotime value didn't work when using an
|
136
177
|
advanced-formatting expression containing a greater-than symbol (>)
|
137
178
|
|
179
|
+
History of older versions (back to Nov. 19, 2003 - Version 1.00) -->
|
180
|
+
|
138
181
|
Mar. 28, 2023 - Version 12.59
|
139
182
|
|
140
183
|
- COMPATIBILITY WARNING: Changed the calculated ImageDataMD5 for JPEG images
|
@@ -323,8 +366,6 @@ Nov. 8, 2022 - Version 12.50 (production release)
|
|
323
366
|
- Fixed inconsistent year and time zone for Kenwood dashcam timed GPS in MP4
|
324
367
|
videos
|
325
368
|
|
326
|
-
History of older versions (back to Nov. 19, 2003 - Version 1.00) -->
|
327
|
-
|
328
369
|
Oct. 19, 2022 - Version 12.49
|
329
370
|
|
330
371
|
- Added read support for Windows ICO and CUR files
|
data/bin/MANIFEST
CHANGED
@@ -179,6 +179,7 @@ html/TagNames/VCard.html
|
|
179
179
|
html/TagNames/Vorbis.html
|
180
180
|
html/TagNames/WPG.html
|
181
181
|
html/TagNames/WTV.html
|
182
|
+
html/TagNames/XISF.html
|
182
183
|
html/TagNames/XMP.html
|
183
184
|
html/TagNames/ZIP.html
|
184
185
|
html/TagNames/ZISRAW.html
|
@@ -432,6 +433,7 @@ lib/Image/ExifTool/WriteQuickTime.pl
|
|
432
433
|
lib/Image/ExifTool/WriteRIFF.pl
|
433
434
|
lib/Image/ExifTool/WriteXMP.pl
|
434
435
|
lib/Image/ExifTool/Writer.pl
|
436
|
+
lib/Image/ExifTool/XISF.pm
|
435
437
|
lib/Image/ExifTool/XMP.pm
|
436
438
|
lib/Image/ExifTool/XMP2.pl
|
437
439
|
lib/Image/ExifTool/XMPStruct.pl
|
@@ -916,6 +918,8 @@ t/Writer_6.out
|
|
916
918
|
t/Writer_60.out
|
917
919
|
t/Writer_7.out
|
918
920
|
t/Writer_9.out
|
921
|
+
t/XISF.t
|
922
|
+
t/XISF_2.out
|
919
923
|
t/XMP.t
|
920
924
|
t/XMP_10.out
|
921
925
|
t/XMP_11.out
|
@@ -1144,6 +1148,7 @@ t/images/Vorbis.ogg
|
|
1144
1148
|
t/images/WPG.wpg
|
1145
1149
|
t/images/WTV.wtv
|
1146
1150
|
t/images/Writer.jpg
|
1151
|
+
t/images/XISF.xisf
|
1147
1152
|
t/images/XMP.inx
|
1148
1153
|
t/images/XMP.jpg
|
1149
1154
|
t/images/XMP.svg
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -51,11 +51,11 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
51
51
|
DCP r/w | ICO r | MPG r | PSB r/w | WV r
|
52
52
|
DCR r | ICS r | MPO r/w | PSD r/w | X3F r/w
|
53
53
|
DFONT r | IDML r | MQV r/w | PSP r | XCF r
|
54
|
-
DIVX r | IIQ r/w | MRC r | QTIF r/w |
|
55
|
-
DJVU r | IND r/w | MRW r/w | R3D r |
|
56
|
-
DLL r | INSP r/w | MXF r | RA r |
|
57
|
-
DNG r/w | INSV r | NEF r/w | RAF r/w |
|
58
|
-
DOC r | INX r | NKSC r/w | RAM r |
|
54
|
+
DIVX r | IIQ r/w | MRC r | QTIF r/w | XISF r
|
55
|
+
DJVU r | IND r/w | MRW r/w | R3D r | XLS r
|
56
|
+
DLL r | INSP r/w | MXF r | RA r | XLSX r
|
57
|
+
DNG r/w | INSV r | NEF r/w | RAF r/w | XMP r/w/c
|
58
|
+
DOC r | INX r | NKSC r/w | RAM r | ZIP r
|
59
59
|
DOCX r | ISO r | NRW r/w | RAR r |
|
60
60
|
|
61
61
|
Meta Information
|
@@ -108,8 +108,8 @@ your home directory, then you would type the following commands in a
|
|
108
108
|
terminal window to extract and run ExifTool:
|
109
109
|
|
110
110
|
cd ~/Desktop
|
111
|
-
gzip -dc Image-ExifTool-12.
|
112
|
-
cd Image-ExifTool-12.
|
111
|
+
gzip -dc Image-ExifTool-12.68.tar.gz | tar -xf -
|
112
|
+
cd Image-ExifTool-12.68
|
113
113
|
./exiftool t/images/ExifTool.jpg
|
114
114
|
|
115
115
|
Note: These commands extract meta information from one of the test images.
|
data/bin/exiftool
CHANGED
@@ -11,7 +11,7 @@ use strict;
|
|
11
11
|
use warnings;
|
12
12
|
require 5.004;
|
13
13
|
|
14
|
-
my $version = '12.
|
14
|
+
my $version = '12.68';
|
15
15
|
|
16
16
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
17
17
|
my $exePath;
|
@@ -4665,11 +4665,11 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
4665
4665
|
DCP r/w | ICO r | MPG r | PSB r/w | WV r
|
4666
4666
|
DCR r | ICS r | MPO r/w | PSD r/w | X3F r/w
|
4667
4667
|
DFONT r | IDML r | MQV r/w | PSP r | XCF r
|
4668
|
-
DIVX r | IIQ r/w | MRC r | QTIF r/w |
|
4669
|
-
DJVU r | IND r/w | MRW r/w | R3D r |
|
4670
|
-
DLL r | INSP r/w | MXF r | RA r |
|
4671
|
-
DNG r/w | INSV r | NEF r/w | RAF r/w |
|
4672
|
-
DOC r | INX r | NKSC r/w | RAM r |
|
4668
|
+
DIVX r | IIQ r/w | MRC r | QTIF r/w | XISF r
|
4669
|
+
DJVU r | IND r/w | MRW r/w | R3D r | XLS r
|
4670
|
+
DLL r | INSP r/w | MXF r | RA r | XLSX r
|
4671
|
+
DNG r/w | INSV r | NEF r/w | RAF r/w | XMP r/w/c
|
4672
|
+
DOC r | INX r | NKSC r/w | RAM r | ZIP r
|
4673
4673
|
DOCX r | ISO r | NRW r/w | RAR r |
|
4674
4674
|
|
4675
4675
|
Meta Information
|
@@ -5582,7 +5582,7 @@ with this command:
|
|
5582
5582
|
|
5583
5583
|
produces output like this:
|
5584
5584
|
|
5585
|
-
-- Generated by ExifTool 12.
|
5585
|
+
-- Generated by ExifTool 12.68 --
|
5586
5586
|
File: a.jpg - 2003:10:31 15:44:19
|
5587
5587
|
(f/5.6, 1/60s, ISO 100)
|
5588
5588
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -6418,10 +6418,14 @@ from the track log, and they are supported by the destination metadata
|
|
6418
6418
|
format): GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef,
|
6419
6419
|
GPSAltitude, GPSAltitudeRef, GPSDateStamp, GPSTimeStamp, GPSDateTime,
|
6420
6420
|
GPSTrack, GPSTrackRef, GPSSpeed, GPSSpeedRef, GPSImgDirection,
|
6421
|
-
GPSImgDirectionRef, GPSPitch, GPSRoll, AmbientTemperature
|
6422
|
-
CameraElevationAngle. By default, tags are created in
|
6423
|
-
XMP only if they already exist.
|
6424
|
-
|
6421
|
+
GPSImgDirectionRef, GPSPitch, GPSRoll, GPSCoordinates, AmbientTemperature
|
6422
|
+
and CameraElevationAngle. By default, in image files tags are created in
|
6423
|
+
EXIF, and updated in XMP only if they already exist. In QuickTime-format
|
6424
|
+
files GPSCoordinates is created in the preferred location (ItemList by
|
6425
|
+
default) as well as in XMP. However, C<EXIF:Geotime>, C<XMP:Geotime> or
|
6426
|
+
C<QuickTime:Geotime> may be specified to write to write only to one group.
|
6427
|
+
Also, C<ItemList:Geotime>, C<Keys:Geotime> or C<UserData:Geotime> may be
|
6428
|
+
used to write to a specific location in QuickTime-format files. Note that
|
6425
6429
|
GPSPitch and GPSRoll are non-standard, and require user-defined tags in
|
6426
6430
|
order to be written.
|
6427
6431
|
|
@@ -6527,7 +6531,8 @@ load exiftool for each invocation.
|
|
6527
6531
|
Set ExifTool API option. I<OPT> is an API option name. The option value is
|
6528
6532
|
set to 1 if I<=VAL> is omitted. If I<VAL> is omitted, the option value is
|
6529
6533
|
set to undef if C<=> is used, or an empty string with C<^=>. If I<OPT> is
|
6530
|
-
not specified a list of available options is returned.
|
6534
|
+
not specified a list of available options is returned. The option name is
|
6535
|
+
not case senstive, but the option values are. See
|
6531
6536
|
L<Image::ExifTool Options|Image::ExifTool/Options> for option details. This
|
6532
6537
|
overrides API options set via the config file.
|
6533
6538
|
|
@@ -6543,11 +6548,12 @@ options on the command line.
|
|
6543
6548
|
|
6544
6549
|
Load specified configuration file instead of the default ".ExifTool_config".
|
6545
6550
|
If used, this option must come before all other arguments on the command
|
6546
|
-
line and applies to all B<-execute>'d commands.
|
6547
|
-
|
6548
|
-
|
6549
|
-
|
6550
|
-
|
6551
|
+
line and applies to all B<-execute>'d commands. This file is used to create
|
6552
|
+
user-defined tags as well as set default ExifTool options. The I<CFGFILE>
|
6553
|
+
must exist relative to the current working directory or the exiftool
|
6554
|
+
application directory unless an absolute path is specified. Loading of the
|
6555
|
+
default config file may be disabled by setting I<CFGFILE> to an empty string
|
6556
|
+
(ie. ""). See L<https://exiftool.org/config.html> and
|
6551
6557
|
config_files/example.config in the full ExifTool distribution for details
|
6552
6558
|
about the configuration file syntax.
|
6553
6559
|
|
@@ -7323,10 +7329,13 @@ CreateDate and FileNumber tags, in the form "20060507_118-1861.jpg".
|
|
7323
7329
|
|
7324
7330
|
=head1 GEOTAGGING EXAMPLES
|
7325
7331
|
|
7326
|
-
ExifTool implements geotagging via 3 special tags: Geotag
|
7327
|
-
convenience is also implemented as an exiftool option), Geosync
|
7328
|
-
The examples below highlight some geotagging features. See
|
7329
|
-
L<https://exiftool.org/geotag.html> for additional documentation.
|
7332
|
+
ExifTool implements geotagging from GPS log files via 3 special tags: Geotag
|
7333
|
+
(which for convenience is also implemented as an exiftool option), Geosync
|
7334
|
+
and Geotime. The examples below highlight some geotagging features. See
|
7335
|
+
L<https://exiftool.org/geotag.html> for additional documentation. (Note
|
7336
|
+
that geotagging from known GPS coordinates is done by writing the
|
7337
|
+
L<GPS tags|Image::ExifTool::TagNames/GPS Tags> directly rather than using
|
7338
|
+
the B<-geotag> option.)
|
7330
7339
|
|
7331
7340
|
=over 5
|
7332
7341
|
|
@@ -16,7 +16,7 @@ use vars qw($VERSION);
|
|
16
16
|
use Image::ExifTool::Exif;
|
17
17
|
use Image::ExifTool::PLIST;
|
18
18
|
|
19
|
-
$VERSION = '1.
|
19
|
+
$VERSION = '1.11';
|
20
20
|
|
21
21
|
sub ConvertPLIST($$);
|
22
22
|
|
@@ -123,8 +123,12 @@ sub ConvertPLIST($$);
|
|
123
123
|
0x0014 => { # (StillImageCaptureType, ref 2)
|
124
124
|
Name => 'ImageCaptureType',
|
125
125
|
Writable => 'int32s',
|
126
|
-
Unknown => 1, # (don't know what the values mean)
|
127
126
|
# seen: 1,2,3,4,5,10,12
|
127
|
+
PrintConv => { #forum15096
|
128
|
+
1 => 'ProRAW',
|
129
|
+
2 => 'Portrait',
|
130
|
+
10 => 'Photo',
|
131
|
+
},
|
128
132
|
},
|
129
133
|
0x0015 => { # (ImageGroupIdentifier, ref 2)
|
130
134
|
Name => 'ImageUniqueID',
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
88
88
|
sub ProcessExifInfo($$$);
|
89
89
|
sub SwapWords($);
|
90
90
|
|
91
|
-
$VERSION = '4.
|
91
|
+
$VERSION = '4.69';
|
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)
|
@@ -476,7 +476,6 @@ $VERSION = '4.67';
|
|
476
476
|
255.1 => 'Sigma 180mm f/2.8 EX DG OS HSM APO Macro', #50
|
477
477
|
255.2 => 'Tamron SP 70-200mm f/2.8 Di VC USD', #exiv issue 1202 (A009)
|
478
478
|
255.3 => 'Yongnuo YN 50mm f/1.8', #50
|
479
|
-
313 => 'Canon RF 28mm F2.8 STM', #42
|
480
479
|
368 => 'Sigma 14-24mm f/2.8 DG HSM | A or other Sigma Lens', #IB (A018)
|
481
480
|
368.1 => 'Sigma 20mm f/1.4 DG HSM | A', #50 (newer firmware)
|
482
481
|
368.2 => 'Sigma 50mm f/1.4 DG HSM | A', #50
|
@@ -491,6 +490,7 @@ $VERSION = '4.67';
|
|
491
490
|
'368.11' => 'Sigma 70mm f/2.8 DG Macro', #IB (A018)
|
492
491
|
'368.12' => 'Sigma 18-35mm f/1.8 DC HSM | A', #50
|
493
492
|
'368.13' => 'Sigma 24-105mm f/4 DG OS HSM | A', #forum3833
|
493
|
+
'368.14' => 'Sigma 18-300mm f/3.5-6.3 DC Macro OS HSM | C', #forum15280 (014)
|
494
494
|
# Note: LensType 488 (0x1e8) is reported as 232 (0xe8) in 7D CameraSettings
|
495
495
|
488 => 'Canon EF-S 15-85mm f/3.5-5.6 IS USM', #PH
|
496
496
|
489 => 'Canon EF 70-300mm f/4-5.6L IS USM', #Gerald Kapounek
|
@@ -609,18 +609,24 @@ $VERSION = '4.67';
|
|
609
609
|
'61182.33' => 'Canon RF 400mm F2.8L IS USM + RF1.4x', #IB
|
610
610
|
'61182.34' => 'Canon RF 400mm F2.8L IS USM + RF2x', #IB
|
611
611
|
'61182.35' => 'Canon RF 600mm F4L IS USM', #GiaZopatti
|
612
|
-
'61182.36' => 'Canon RF
|
613
|
-
'61182.37' => 'Canon RF
|
614
|
-
'61182.38' => 'Canon RF
|
615
|
-
'61182.39' => 'Canon RF 800mm F5.6L IS USM
|
616
|
-
'61182.40' => 'Canon RF
|
617
|
-
'61182.41' => 'Canon RF
|
618
|
-
'61182.42' => 'Canon RF 1200mm F8L IS USM
|
619
|
-
'61182.43' => 'Canon RF
|
620
|
-
'61182.44' => 'Canon RF
|
621
|
-
'61182.45' => 'Canon RF
|
612
|
+
'61182.36' => 'Canon RF 600mm F4L IS USM + RF1.4x', #42
|
613
|
+
'61182.37' => 'Canon RF 600mm F4L IS USM + RF2x', #42
|
614
|
+
'61182.38' => 'Canon RF 15-30mm F4.5-6.3 IS STM', #42
|
615
|
+
'61182.39' => 'Canon RF 800mm F5.6L IS USM', #42
|
616
|
+
'61182.40' => 'Canon RF 800mm F5.6L IS USM + RF1.4x', #42
|
617
|
+
'61182.41' => 'Canon RF 800mm F5.6L IS USM + RF2x', #42
|
618
|
+
'61182.42' => 'Canon RF 1200mm F8L IS USM', #42
|
619
|
+
'61182.43' => 'Canon RF 1200mm F8L IS USM + RF1.4x', #42
|
620
|
+
'61182.44' => 'Canon RF 1200mm F8L IS USM + RF2x', #42
|
621
|
+
'61182.45' => 'Canon RF 135mm F1.8 L IS USM', #42
|
622
|
+
'61182.46' => 'Canon RF 24-50mm F4.5-6.3 IS STM', #42
|
623
|
+
'61182.47' => 'Canon RF-S 55-210mm F5-7.1 IS STM', #42
|
624
|
+
'61182.48' => 'Canon RF 100-300mm F2.8L IS USM', #42
|
625
|
+
'61182.49' => 'Canon RF 100-300mm F2.8L IS USM + RF1.4x', #42
|
626
|
+
'61182.50' => 'Canon RF 100-300mm F2.8L IS USM + RF2x', #42
|
627
|
+
'61182.51' => 'Canon RF 28mm F2.8 STM', #42
|
622
628
|
# we need the RFLensType values for the following...
|
623
|
-
'61182.
|
629
|
+
'61182.52' => 'Canon RF 5.2mm F2.8L Dual Fisheye 3D VR', #PH (NC)
|
624
630
|
65535 => 'n/a',
|
625
631
|
);
|
626
632
|
|
@@ -985,6 +991,7 @@ $VERSION = '4.67';
|
|
985
991
|
0x80000481 => 'EOS R6 Mark II', #42
|
986
992
|
0x80000487 => 'EOS R8', #42
|
987
993
|
0x80000491 => 'PowerShot V10', #25
|
994
|
+
0x80000498 => 'EOS R100', #25
|
988
995
|
0x80000520 => 'EOS D2000C', #IB
|
989
996
|
0x80000560 => 'EOS D6000C', #PH (guess)
|
990
997
|
);
|
@@ -1383,6 +1390,11 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
1383
1390
|
Condition => '$$self{Model} =~ /\b(1200D|REBEL T5|Kiss X70)\b/',
|
1384
1391
|
SubDirectory => { TagTable => 'Image::ExifTool::Canon::CameraInfo60D' },
|
1385
1392
|
},
|
1393
|
+
{
|
1394
|
+
Name => 'CanonCameraInfoR6',
|
1395
|
+
Condition => '$$self{Model} =~ /\bEOS R6$/',
|
1396
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Canon::CameraInfoR6' },
|
1397
|
+
},
|
1386
1398
|
{
|
1387
1399
|
Name => 'CanonCameraInfoPowerShot',
|
1388
1400
|
# valid if format is int32u[138] or int32u[148]
|
@@ -1698,6 +1710,12 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
1698
1710
|
# Writable => 'int32u',
|
1699
1711
|
# Protected => 2,
|
1700
1712
|
},
|
1713
|
+
0x82 => { #github219 (found on 1DS)
|
1714
|
+
Name => 'RawDataLength',
|
1715
|
+
# (can't yet write 1DS raw files)
|
1716
|
+
# Writable => 'int32u',
|
1717
|
+
# Protected => 2,
|
1718
|
+
},
|
1701
1719
|
0x83 => { #PH
|
1702
1720
|
Name => 'OriginalDecisionDataOffset',
|
1703
1721
|
Writable => 'int32u',
|
@@ -4683,6 +4701,19 @@ my %ciMaxFocal = (
|
|
4683
4701
|
},
|
4684
4702
|
);
|
4685
4703
|
|
4704
|
+
%Image::ExifTool::Canon::CameraInfoR6 = (
|
4705
|
+
%binaryDataAttrs,
|
4706
|
+
FIRST_ENTRY => 0,
|
4707
|
+
PRIORITY => 0,
|
4708
|
+
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
4709
|
+
NOTES => 'CameraInfo tags for the EOS R6.',
|
4710
|
+
0x0af1 => { #forum15210
|
4711
|
+
Name => 'ShutterCount',
|
4712
|
+
Format => 'int32u',
|
4713
|
+
Notes => 'includes electronic + mechanical shutter',
|
4714
|
+
},
|
4715
|
+
);
|
4716
|
+
|
4686
4717
|
# Canon camera information for 70D (MakerNotes tag 0x0d) (ref PH)
|
4687
4718
|
%Image::ExifTool::Canon::CameraInfo70D = (
|
4688
4719
|
%binaryDataAttrs,
|
@@ -6859,6 +6890,8 @@ my %ciMaxFocal = (
|
|
6859
6890
|
290 => 'Canon RF 400mm F2.8L IS USM + RF1.4x', #IB
|
6860
6891
|
291 => 'Canon RF 400mm F2.8L IS USM + RF2x', #IB
|
6861
6892
|
292 => 'Canon RF 600mm F4L IS USM', #GiaZopatti
|
6893
|
+
293 => 'Canon RF 600mm F4L IS USM + RF1.4x', #42
|
6894
|
+
294 => 'Canon RF 600mm F4L IS USM + RF2x', #42
|
6862
6895
|
295 => 'Canon RF 800mm F5.6L IS USM', #42
|
6863
6896
|
296 => 'Canon RF 800mm F5.6L IS USM + RF1.4x', #42
|
6864
6897
|
297 => 'Canon RF 800mm F5.6L IS USM + RF2x', #42
|
@@ -6869,6 +6902,10 @@ my %ciMaxFocal = (
|
|
6869
6902
|
303 => 'Canon RF 135mm F1.8 L IS USM', #42
|
6870
6903
|
304 => 'Canon RF 24-50mm F4.5-6.3 IS STM', #42
|
6871
6904
|
305 => 'Canon RF-S 55-210mm F5-7.1 IS STM', #42
|
6905
|
+
306 => 'Canon RF 100-300mm F2.8L IS USM', #42
|
6906
|
+
307 => 'Canon RF 100-300mm F2.8L IS USM + RF1.4x', #42
|
6907
|
+
308 => 'Canon RF 100-300mm F2.8L IS USM + RF2x', #42
|
6908
|
+
313 => 'Canon RF 28mm F2.8 STM', #42
|
6872
6909
|
# Note: add new RF lenses to %canonLensTypes with ID 61182
|
6873
6910
|
},
|
6874
6911
|
},
|
@@ -31,7 +31,7 @@ use vars qw($VERSION);
|
|
31
31
|
use Image::ExifTool qw(:DataAccess :Utils);
|
32
32
|
use Image::ExifTool::Exif;
|
33
33
|
|
34
|
-
$VERSION = '1.
|
34
|
+
$VERSION = '1.90';
|
35
35
|
|
36
36
|
sub ProcessFujiDir($$$);
|
37
37
|
sub ProcessFaceRec($$$);
|
@@ -428,6 +428,14 @@ my %faceCategories = (
|
|
428
428
|
Name => 'ShadowTone',
|
429
429
|
Writable => 'int32s',
|
430
430
|
PrintConv => {
|
431
|
+
OTHER => sub {
|
432
|
+
my ($val, $inv) = @_;
|
433
|
+
if ($inv) {
|
434
|
+
return int(-$val * 16);
|
435
|
+
} else {
|
436
|
+
return -$val / 16;
|
437
|
+
}
|
438
|
+
},
|
431
439
|
-64 => '+4 (hardest)',
|
432
440
|
-48 => '+3 (very hard)',
|
433
441
|
-32 => '+2 (hard)',
|
@@ -441,6 +449,14 @@ my %faceCategories = (
|
|
441
449
|
Name => 'HighlightTone',
|
442
450
|
Writable => 'int32s',
|
443
451
|
PrintConv => {
|
452
|
+
OTHER => sub {
|
453
|
+
my ($val, $inv) = @_;
|
454
|
+
if ($inv) {
|
455
|
+
return int(-$val * 16);
|
456
|
+
} else {
|
457
|
+
return -$val / 16;
|
458
|
+
}
|
459
|
+
},
|
444
460
|
-64 => '+4 (hardest)',
|
445
461
|
-48 => '+3 (very hard)',
|
446
462
|
-32 => '+2 (hard)',
|
@@ -670,6 +686,7 @@ my %faceCategories = (
|
|
670
686
|
0x800 => 'Classic Negative', #forum10536
|
671
687
|
0x900 => 'Bleach Bypass', #forum10890
|
672
688
|
0xa00 => 'Nostalgic Neg', #forum12085
|
689
|
+
0xb00 => 'Reala ACE', #forum15190
|
673
690
|
},
|
674
691
|
},
|
675
692
|
0x1402 => { #2
|
@@ -897,6 +914,8 @@ my %faceCategories = (
|
|
897
914
|
25 => 'Aircraft Cockpit',
|
898
915
|
26 => 'Train Front',
|
899
916
|
27 => 'Train Cockpit',
|
917
|
+
28 => 'Animal Head (28)', #forum15192
|
918
|
+
29 => 'Animal Body (29)', #forum15192
|
900
919
|
},'REPEAT'],
|
901
920
|
},
|
902
921
|
# 0x4202 int8u[-1] - number of cooredinates in each rectangle? (ref 11)
|
@@ -29,7 +29,7 @@ use vars qw($VERSION);
|
|
29
29
|
use Image::ExifTool qw(:Public);
|
30
30
|
use Image::ExifTool::GPS;
|
31
31
|
|
32
|
-
$VERSION = '1.
|
32
|
+
$VERSION = '1.73';
|
33
33
|
|
34
34
|
sub JITTER() { return 2 } # maximum time jitter
|
35
35
|
|
@@ -1109,7 +1109,7 @@ sub SetGeoValues($$;$)
|
|
1109
1109
|
$iExt = $i1;
|
1110
1110
|
}
|
1111
1111
|
if (abs($time - $tn) > $geoMaxExtSecs) {
|
1112
|
-
$err or $err = 'Time is too far from nearest GPS fix';
|
1112
|
+
$err or $err = 'Time is too far from nearest GPS fix'.' '.abs($time-$tn).' '.$geoMaxExtSecs;
|
1113
1113
|
$et->VPrint(2, ' Nearest fix: ', PrintFixTime($tn), "\n") if $verbose > 2;
|
1114
1114
|
$fix = { } if $$geotag{DateTimeOnly};
|
1115
1115
|
} else {
|
@@ -1196,24 +1196,29 @@ Category: foreach $category (qw{pos track alt orient atemp}) {
|
|
1196
1196
|
# write GPSDateStamp if date included in track log, otherwise delete it
|
1197
1197
|
$gpsDate = sprintf('%.2d:%.2d:%.2d', $t[5]+1900, $t[4]+1, $t[3]) unless $noDate;
|
1198
1198
|
# write GPSAltitude tags if altitude included in track log, otherwise delete them
|
1199
|
-
|
1200
|
-
|
1201
|
-
$gpsAltRef = ($$fix{alt} < 0 ? 1 : 0);
|
1202
|
-
} elsif ($$has{alt} and defined $iExt) {
|
1199
|
+
my $alt = $$fix{alt};
|
1200
|
+
if (not defined $alt and $$has{alt} and defined $iExt) {
|
1203
1201
|
my $tFix = FindFix($et,'alt',$times,$points,$iExt,$iDir,$geoMaxExtSecs);
|
1204
|
-
if
|
1205
|
-
$gpsAlt = abs $$tFix{alt};
|
1206
|
-
$gpsAltRef = ($$tFix{alt} < 0 ? 1 : 0);
|
1207
|
-
}
|
1202
|
+
$alt = $$tFix{alt} if $tFix;
|
1208
1203
|
}
|
1209
1204
|
# set new GPS tag values (EXIF, or XMP if write group is 'xmp')
|
1210
|
-
my ($xmp, $exif, @r);
|
1205
|
+
my ($xmp, $exif, $qt, @r);
|
1211
1206
|
my %opts = ( Type => 'ValueConv' ); # write ValueConv values
|
1212
1207
|
if ($writeGroup) {
|
1213
1208
|
$opts{Group} = $writeGroup;
|
1214
1209
|
$xmp = ($writeGroup =~ /xmp/i);
|
1215
1210
|
$exif = ($writeGroup =~ /^(exif|gps)$/i);
|
1211
|
+
$qt = $writeGroup =~ /^(quicktime|keys|itemlist|userdata)$/i;
|
1212
|
+
}
|
1213
|
+
# set QuickTime GPSCoordinates
|
1214
|
+
my $coords = "$$fix{lat} $$fix{lon}";
|
1215
|
+
if (defined $alt) {
|
1216
|
+
$gpsAlt = abs $alt;
|
1217
|
+
$gpsAltRef = ($alt < 0 ? 1 : 0);
|
1218
|
+
$coords .= " $alt";
|
1216
1219
|
}
|
1220
|
+
@r = $et->SetNewValue(GPSCoordinates => $coords, %opts);
|
1221
|
+
return $err if $qt; # all done if writing to QuickTime only
|
1217
1222
|
# (capture error messages by calling SetNewValue in list context)
|
1218
1223
|
@r = $et->SetNewValue(GPSLatitude => $$fix{lat}, %opts);
|
1219
1224
|
@r = $et->SetNewValue(GPSLongitude => $$fix{lon}, %opts);
|
@@ -1288,7 +1293,7 @@ Category: foreach $category (qw{pos track alt orient atemp}) {
|
|
1288
1293
|
GPSAltitude GPSAltitudeRef GPSDateStamp GPSTimeStamp GPSDateTime
|
1289
1294
|
GPSTrack GPSTrackRef GPSSpeed GPSSpeedRef GPSImgDirection
|
1290
1295
|
GPSImgDirectionRef GPSPitch GPSRoll CameraElevationAngle
|
1291
|
-
AmbientTemperature))
|
1296
|
+
AmbientTemperature GPSCoordinates))
|
1292
1297
|
{
|
1293
1298
|
my @r = $et->SetNewValue($_, undef, %opts);
|
1294
1299
|
}
|
@@ -65,7 +65,7 @@ use Image::ExifTool::Exif;
|
|
65
65
|
use Image::ExifTool::GPS;
|
66
66
|
use Image::ExifTool::XMP;
|
67
67
|
|
68
|
-
$VERSION = '4.
|
68
|
+
$VERSION = '4.26';
|
69
69
|
|
70
70
|
sub LensIDConv($$$);
|
71
71
|
sub ProcessNikonAVI($$$);
|
@@ -676,6 +676,7 @@ sub GetAFPointGrid($$;$);
|
|
676
676
|
'07 40 30 45 2D 35 03 02.2' => 'Voigtlander Ultragon 19-35mm F3.5-4.5 VMV', #NJ
|
677
677
|
'71 48 64 64 24 24 00 00' => 'Voigtlander APO-Skopar 90mm F2.8 SL IIs', #30
|
678
678
|
'FD 00 50 50 18 18 DF 00' => 'Voigtlander APO-Lanthar 50mm F2 Aspherical', #35
|
679
|
+
'FD 00 44 44 18 18 DF 00' => 'Voigtlander APO-Lanthar 35mm F2', #30
|
679
680
|
#
|
680
681
|
'00 40 2D 2D 2C 2C 00 00' => 'Carl Zeiss Distagon T* 3.5/18 ZF.2',
|
681
682
|
'00 48 27 27 24 24 00 00' => 'Carl Zeiss Distagon T* 2.8/15 ZF.2', #MykytaKozlov
|
@@ -1188,6 +1189,7 @@ my %subjectDetectionZ9 = (
|
|
1188
1189
|
2 => 'People',
|
1189
1190
|
3 => 'Animals',
|
1190
1191
|
4 => 'Vehicles',
|
1192
|
+
5 => 'Birds',
|
1191
1193
|
6 => 'Airplanes',
|
1192
1194
|
);
|
1193
1195
|
|
@@ -1983,6 +1985,14 @@ my %base64coord = (
|
|
1983
1985
|
Writable => 'rational64s',
|
1984
1986
|
Count => 2,
|
1985
1987
|
},
|
1988
|
+
0x0044 => { #28
|
1989
|
+
Name => 'JPGCompression',
|
1990
|
+
RawConv => '($val) ? $val : undef', # undef for raw files
|
1991
|
+
PrintConv => {
|
1992
|
+
1 => 'Size Priority',
|
1993
|
+
3 => 'Optimal Quality',
|
1994
|
+
},
|
1995
|
+
},
|
1986
1996
|
0x0045 => { #IB
|
1987
1997
|
Name => 'CropArea',
|
1988
1998
|
Notes => 'left, top, width, height',
|
@@ -2413,8 +2423,8 @@ my %base64coord = (
|
|
2413
2423
|
},
|
2414
2424
|
},
|
2415
2425
|
{ # (Z6_2 firmware version 1.00 and Z7II firmware versions 1.00 & 1.01, ref 28)
|
2416
|
-
# 0800=Z6/Z7 0801=Z50 0802=Z5 0803=Z6II/Z7II 0804=Zfc 0807=Z30
|
2417
|
-
Condition => '$$valPt =~ /^080[
|
2426
|
+
# 0800=Z6/Z7 0801=Z50 0802=Z5 0803=Z6II/Z7II 0804=Zfc 0807=Z30 0808=Zf
|
2427
|
+
Condition => '$$valPt =~ /^080[0123478]/',
|
2418
2428
|
Name => 'ShotInfoZ7II',
|
2419
2429
|
SubDirectory => {
|
2420
2430
|
TagTable => 'Image::ExifTool::Nikon::ShotInfoZ7II',
|
@@ -2473,7 +2483,7 @@ my %base64coord = (
|
|
2473
2483
|
},
|
2474
2484
|
0x0094 => { Name => 'SaturationAdj', Writable => 'int16s' },
|
2475
2485
|
0x0095 => { Name => 'NoiseReduction', Writable => 'string' }, # ("Off" or "FPNR"=long exposure NR)
|
2476
|
-
0x0096 => {
|
2486
|
+
0x0096 => { # (not found in NRW files, but also not in all NEF's)
|
2477
2487
|
Name => 'NEFLinearizationTable', # same table as DNG LinearizationTable (ref JD)
|
2478
2488
|
Writable => 'undef',
|
2479
2489
|
Flags => [ 'Binary', 'Protected' ],
|
@@ -6048,6 +6058,24 @@ my %nikonFocalConversions = (
|
|
6048
6058
|
Format => 'int32u',
|
6049
6059
|
Priority => 0,
|
6050
6060
|
},
|
6061
|
+
671.1 => { # 0x29f
|
6062
|
+
Name => 'JPGCompression',
|
6063
|
+
Mask => 0x40,
|
6064
|
+
PrintConv => {
|
6065
|
+
0 => 'Size Priority',
|
6066
|
+
1 => 'Optimal Quality',
|
6067
|
+
},
|
6068
|
+
},
|
6069
|
+
# this works for one set of D3S samples, but is 0 in some others
|
6070
|
+
#671.2 => { # 0x29f
|
6071
|
+
# Name => 'Quality',
|
6072
|
+
# Mask => 0x03,
|
6073
|
+
# PrintConv => {
|
6074
|
+
# 1 => 'Fine',
|
6075
|
+
# 2 => 'Normal',
|
6076
|
+
# 3 => 'Basic',
|
6077
|
+
# },
|
6078
|
+
#},
|
6051
6079
|
0x2ce => { #(NC)
|
6052
6080
|
Name => 'CustomSettingsD3S',
|
6053
6081
|
Format => 'undef[27]',
|
@@ -8840,7 +8868,7 @@ my %nikonFocalConversions = (
|
|
8840
8868
|
%binaryDataAttrs,
|
8841
8869
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
8842
8870
|
DATAMEMBER => [ 90, 176, 180, 328, 352, 858 ],
|
8843
|
-
NOTES => 'These tags are used by the Z5, Z6, Z7, Z6II, Z7II, Z50 and
|
8871
|
+
NOTES => 'These tags are used by the Z5, Z6, Z7, Z6II, Z7II, Z50, Zfc and Zf.',
|
8844
8872
|
#48 SelfTimer' #0=> no 1=> yes works for Z7II firmware 1.40, but not 1.30. Follow-up required.
|
8845
8873
|
90 => {
|
8846
8874
|
Name => 'SingleFrame', #0=> Single Frame 1=> one of the continuous modes
|
@@ -9808,6 +9836,7 @@ my %nikonFocalConversions = (
|
|
9808
9836
|
290 => { Name => 'PhotoShootingMenuBank', PrintConv => \%banksZ9 },
|
9809
9837
|
292 => { Name => 'ExtendedMenuBanks', PrintConv => \%offOn }, # single tag from both Photo & Video menus
|
9810
9838
|
328 => { Name => 'PhotoShootingMenuBankImageArea', PrintConv => \%imageAreaZ9 },
|
9839
|
+
#334 JPGCompression 0 => 'Size Priority', 1 => 'Optimal Quality',
|
9811
9840
|
342 => { Name => 'AutoISO', PrintConv => \%offOn },
|
9812
9841
|
344 => {
|
9813
9842
|
Name => 'ISOAutoHiLimit',
|