summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgregor herrmann <gregoa@debian.org>2019-08-09 03:01:30 +0200
committergregor herrmann <gregoa@debian.org>2019-08-09 03:01:30 +0200
commit1bc3c046ecda595d2ac45a1ea48cfa0f8379c931 (patch)
tree15f3c041023d03435b9d904a83c49ae9148d0cfe
parent5f24e0e00bf808f10b30dac50f8ed3c116b4face (diff)
parentd9d58769a958b8f958c1ae0254baab4bc11a9a5f (diff)
Update upstream source from tag 'upstream/11.61'
Update to upstream version '11.61' with Debian dir 46d0f84a9edf3f5aff92834b30849044ffd335df
-rw-r--r--Changes57
-rw-r--r--MANIFEST2
-rw-r--r--META.json2
-rw-r--r--META.yml2
-rw-r--r--README4
-rwxr-xr-xexiftool4
-rw-r--r--html/ExifTool.html26
-rw-r--r--html/TagNames/Canon.html13
-rw-r--r--html/TagNames/Composite.html10
-rw-r--r--html/TagNames/EXIF.html14
-rw-r--r--html/TagNames/FujiFilm.html3
-rw-r--r--html/TagNames/JPEG.html10
-rw-r--r--html/TagNames/Minolta.html4
-rw-r--r--html/TagNames/Nikon.html28
-rw-r--r--html/TagNames/QuickTime.html8
-rw-r--r--html/TagNames/RIFF.html12
-rw-r--r--html/TagNames/Sigma.html88
-rw-r--r--html/TagNames/Sony.html59
-rw-r--r--html/TagNames/index.html4
-rw-r--r--html/commentary.html7
-rw-r--r--html/exiftool_pod.html2
-rw-r--r--html/faq.html6
-rw-r--r--html/geotag.html14
-rw-r--r--html/history.html67
-rw-r--r--html/index.html21
-rw-r--r--html/install.html22
-rw-r--r--html/metafiles.html25
-rw-r--r--html/struct.html2
-rw-r--r--lib/Image/ExifTool.pm26
-rw-r--r--lib/Image/ExifTool.pod27
-rw-r--r--lib/Image/ExifTool/Canon.pm14
-rw-r--r--lib/Image/ExifTool/Exif.pm14
-rw-r--r--lib/Image/ExifTool/FujiFilm.pm5
-rw-r--r--lib/Image/ExifTool/JPEG.pm9
-rw-r--r--lib/Image/ExifTool/Lang/ru.pm1272
-rw-r--r--lib/Image/ExifTool/Minolta.pm6
-rw-r--r--lib/Image/ExifTool/Nikon.pm72
-rw-r--r--lib/Image/ExifTool/PNG.pm195
-rw-r--r--lib/Image/ExifTool/QuickTime.pm6
-rw-r--r--lib/Image/ExifTool/README3
-rw-r--r--lib/Image/ExifTool/RIFF.pm4
-rw-r--r--lib/Image/ExifTool/Sigma.pm5
-rw-r--r--lib/Image/ExifTool/Sony.pm39
-rw-r--r--lib/Image/ExifTool/TagLookup.pm6
-rw-r--r--lib/Image/ExifTool/TagNames.pod30
-rw-r--r--lib/Image/ExifTool/WritePNG.pl29
-rw-r--r--lib/Image/ExifTool/WriteXMP.pl8
-rw-r--r--lib/Image/ExifTool/Writer.pl26
-rw-r--r--lib/Image/ExifTool/XMP.pm10
-rw-r--r--perl-Image-ExifTool.spec2
-rw-r--r--t/Lang_14.out34
-rw-r--r--t/PNG.t11
-rw-r--r--t/PNG_2.out7
-rw-r--r--t/PNG_5.out8
-rw-r--r--t/TestLib.pm1
-rw-r--r--t/XMP.t17
-rw-r--r--t/XMP_49.out2
-rw-r--r--t/images/XMP8.xmp38
58 files changed, 1412 insertions, 1030 deletions
diff --git a/Changes b/Changes
index 2a614c92..d9eaad8a 100644
--- a/Changes
+++ b/Changes
@@ -7,6 +7,63 @@ RSS feed: http://owl.phy.queensu.ca/~phil/exiftool/rss.xml
Note: The most recent production release is Version 11.50. (Other versions are
considered development releases, and are not uploaded to CPAN.)
+Aug. 7, 2019 - Version 11.61
+
+ - Added a new FujiFilm CropMode (thanks LibRaw)
+ - Added a couple of proprietary CustomRendered values (thanks Jeffrey Friedl)
+ - Added a new Nikon LensID and fixed a Canon LensType (thanks LibRaw)
+ - Added a new CanonModelID
+ - Decode more Sony DSC-RX100M7 tags (thanks Jos Roost)
+ - Write standard EXIF to PNG even if non-standard EXIF already exists
+ - Patched to avoid problems overriding new values when writing thumbnail and
+ preview images
+ - Changed a Minolta/Sony LensType (thanks LibRaw)
+ - Changed Composite GPS reference direction tags to be derived from only the
+ XMP-exif GPS coordinate tags (and not other XMP GPS coordinates)
+ - Reverted a PNG Validation check that was removed from 11.60
+
+July 30, 2019 - Version 11.60
+
+ - Added a few new Sigma LensType values (thanks LibRaw)
+ - Updated Sony makernote decoding for the DSC-RX100M7 (thanks Jos Roost)
+ - Various internal improvements to PNG reader/writer
+ - Fixed bug in RIFF decoder that could cause an "undefined subroutine" error
+ (thanks Hayo Baan)
+ - Fixed problem writing some QuickTime tags if the PREFERRED levels were
+ changed via the config file
+ - Install Changes:
+ - Properly erase all temporary files after validation tests
+
+July 25, 2019 - Version 11.59
+
+ - Added a new SonyModelID (thanks LibRaw)
+ - Changed block delete to allow subsequent writing of tags from the same group
+ (like a group delete)
+ - Minor changes to warnings and verbose output when writing PNG images
+ - Fixed potential runtime warning on an error rewriting XMP in a PNG image
+
+July 25, 2019 - Version 11.58
+
+ - Added a number of new Canon and Sony LensType values (thanks LibRaw)
+ - Decode NikonMeteringMode for the D500
+ - Decode LensID for Nikon Z lenses
+ - Extract RawThermalImage from Parrot Bebop-Pro Thermal images
+ - Validate PNG CRC values when writing or using the Validate option
+ - Improved Russian translation (thanks Andrei Korzhyts)
+ - Improved identification of some Tamron lenses for Canon cameras
+ - Changed name of D810MeteringMode tag to NikonMeteringMode
+ - Patched writing of XMP in PNG images to always come before IDAT, and warn if
+ XMP comes after IDAT when reading
+ - Fixed problem replacing multiple lang-alt default-language structure
+ elements in lists of XMP structures (behaviour for other languages still not
+ ideal)
+ - API Changes:
+ - Removed PNGEarlyXMP option
+ - Fixed problem introduced in 11.54 which caused Options('UserParam') to
+ return undef
+ - Internal Changes:
+ - A block delete of EXIF, XMP, IPTC, etc now sets the group delete flag
+
July 19, 2019 - Version 11.57
- Improved decoding of some tags for the Sony ILCE-7RM4 (thanks Jos Roost)
diff --git a/MANIFEST b/MANIFEST
index ec55e27d..73e37b14 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -883,6 +883,7 @@ t/XMP_45.out
t/XMP_46.out
t/XMP_47.out
t/XMP_48.out
+t/XMP_49.out
t/XMP_5.out
t/XMP_6.out
t/XMP_7.out
@@ -1059,6 +1060,7 @@ t/images/XMP4.xmp
t/images/XMP5.xmp
t/images/XMP6.xmp
t/images/XMP7.xmp
+t/images/XMP8.xmp
t/images/ZIP.gz
t/images/ZIP.zip
t/images/iWork.numbers
diff --git a/META.json b/META.json
index 5e994efe..51e9256c 100644
--- a/META.json
+++ b/META.json
@@ -47,6 +47,6 @@
}
},
"release_status" : "stable",
- "version" : "11.57",
+ "version" : "11.61",
"x_serialization_backend" : "JSON::PP version 4.02"
}
diff --git a/META.yml b/META.yml
index 2e42c79f..958a5c60 100644
--- a/META.yml
+++ b/META.yml
@@ -28,5 +28,5 @@ recommends:
Time::HiRes: '0'
requires:
perl: '5.004'
-version: '11.57'
+version: '11.61'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff --git a/README b/README
index 74e0c7ab..31cb71df 100644
--- a/README
+++ b/README
@@ -104,8 +104,8 @@ your home directory, then you would type the following commands in a
terminal window to extract and run ExifTool:
cd ~/Desktop
- gzip -dc Image-ExifTool-11.57.tar.gz | tar -xf -
- cd Image-ExifTool-11.57
+ gzip -dc Image-ExifTool-11.61.tar.gz | tar -xf -
+ cd Image-ExifTool-11.61
./exiftool t/images/ExifTool.jpg
Note: These commands extract meta information from one of the test images.
diff --git a/exiftool b/exiftool
index 7c17683d..99b78ebb 100755
--- a/exiftool
+++ b/exiftool
@@ -10,7 +10,7 @@
use strict;
require 5.004;
-my $version = '11.57';
+my $version = '11.61';
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
my $exeDir;
@@ -5157,7 +5157,7 @@ with this command:
produces output like this:
- -- Generated by ExifTool 11.57 --
+ -- Generated by ExifTool 11.61 --
File: a.jpg - 2003:10:31 15:44:19
(f/5.6, 1/60s, ISO 100)
File: b.jpg - 2006:05:23 11:57:38
diff --git a/html/ExifTool.html b/html/ExifTool.html
index 600101d0..40f850fb 100644
--- a/html/ExifTool.html
+++ b/html/ExifTool.html
@@ -732,22 +732,6 @@ distribution for examples.</p>
password-protected PDF documents. Ignored if a password is not required. Character encoding of
the password is determined by the value of the Charset option at processing time.</td>
<td align=center>Any string</td><td align=center>undef</td></tr>
-<tr id="PNGEarlyXMP"><td>PNGEarlyXMP</td><td>Flag to write XMP in PNG
- images before the IDAT (image data) chunk. By default, ExifTool adds new
- XMP to the end of a PNG file (just before IEND). This is allowed by the PNG
- and XMP specifications, but some utilities seem to ignore XMP if it comes
- after the image data. The PNGEarlyXMP option causes ExifTool to instead add
- new XMP before the PNG IDAT chunk. However, since ExifTool uses a
- single-pass writing algorithm, it has no way to tell if XMP already exists
- later in the file before writing the new XMP in this location. If this
- happens, a minor error is issued when the extra XMP is encountered, and the
- file is not written. Adding the <a href="#IgnoreMinorErrors">IgnoreMinorErrors</a>
- option causes the XMP after IDAT to be deleted, thus resolving the conflict
- (at the expense of possible metadata loss), and allowing the file to be
- written. The PNGEarlyXMP option is applied automatically when deleting all
- XMP and writing new XMP back in one step. When reading, this option causes
- a warning to be issued if standard XMP is found after the IDAT chunk.</td>
- <td align=center>0 or 1</td><td align=center>undef</td></tr>
<tr id="PrintConv"><td>PrintConv</td><td>Flag to enable print conversion. Also enables inverse print
conversion for writing.</td><td align=center>0 or 1</td><td align=center>1</td></tr>
<tr id="QuickTimeHandler"><td>QuickTimeHandler</td><td>Flag set to add an 'mdir'
@@ -973,9 +957,9 @@ Binary, Charset, CharsetEXIF, CharsetFileName, CharsetID3, CharsetIPTC,
CharsetPhotoshop, CharsetQuickTime, CharsetRIFF, Composite, ExtendedXMP,
ExtractEmbedded, FastScan, FixBase, HtmlDump, HtmlDumpBase,
IgnoreMinorErrors, Lang, LargeFileSupport, MakerNotes, MDItemTags,
-NoPDFList, Password, PNGEarlyXMP, QuickTimeUTC (enforced 1904 time zero),
-RequestAll, RequestTags, ScanForXMP, Struct, TextOut, Unknown, Verbose,
-XAttrTags and XMPAutoConv.
+NoPDFList, Password, QuickTimeUTC (enforced 1904 time zero), RequestAll,
+RequestTags, ScanForXMP, Struct, TextOut, Unknown, Verbose, XAttrTags and
+XMPAutoConv.
</blockquote>
<hr><h2><a name="GetInfo">GetInfo</a></h2>
@@ -1096,8 +1080,8 @@ and Warning tags.</p>
<a href="#WriteInfo">WriteInfo</a>:</p>
<blockquote>
ByteOrder, Charset, CharsetEXIF, CharsetFileName, CharsetIPTC, Compact,
-Compress, FixBase, IgnoreMinorErrors, Password, PNGEarlyXMP, QuickTimeHandler,
-Verbose and WriteMode.
+Compress, FixBase, IgnoreMinorErrors, Password, QuickTimeHandler, Verbose
+and WriteMode.
</blockquote>
<hr><h2><a name="GetTagList">GetTagList</a></h2>
diff --git a/html/TagNames/Canon.html b/html/TagNames/Canon.html
index a7ad3379..c325caa5 100644
--- a/html/TagNames/Canon.html
+++ b/html/TagNames/Canon.html
@@ -538,6 +538,7 @@
<tr class=h><th>Value</th><th>CanonModelID</th></tr>
<tr><td class=r>0x412</td><td>= EOS M50 / Kiss M</td>
</tr><tr><td class=r>0x801</td><td>= PowerShot SX740 HS</td>
+</tr><tr><td class=r>0x804</td><td>= PowerShot G5 X Mark II</td>
</tr><tr><td class=r>0x805</td><td>= PowerShot SX70 HS</td>
</tr><tr><td class=r>0x808</td><td>= PowerShot G7 X Mark III</td>
</tr><tr><td class=r>0x1010000</td><td>= PowerShot A30</td>
@@ -1447,6 +1448,7 @@ attempting to identify the specific lens model.</p>
</tr><tr><td>103</td><td>= Samyang AF 14mm f/2.8 EF or Rokinon Lens</td>
</tr><tr><td>103.1</td><td>= Rokinon SP 14mm f/2.4</td>
</tr><tr><td>103.2</td><td>= Rokinon AF 14mm f/2.8 EF</td>
+</tr><tr><td>106</td><td>= Rokinon SP / Samyang XP 35mm f/1.2</td>
</tr><tr><td>124</td><td>= Canon MP-E 65mm f/2.8 1-5x Macro Photo</td>
</tr><tr><td>125</td><td>= Canon TS-E 24mm f/3.5L</td>
</tr><tr><td>126</td><td>= Canon TS-E 45mm f/2.8</td>
@@ -1500,6 +1502,7 @@ attempting to identify the specific lens model.</p>
</tr><tr><td>150.2</td><td>= Sigma 30mm f/1.4 DC HSM</td>
</tr><tr><td>150.3</td><td>= Sigma 24mm f/1.8 DG Macro EX</td>
</tr><tr><td>150.4</td><td>= Sigma 28mm f/1.8 DG Macro EX</td>
+</tr><tr><td>150.5</td><td>= Sigma 18-35mm f/1.8 DC HSM | A</td>
</tr><tr><td>151</td><td>= Canon EF 200mm f/2.8L USM</td>
</tr><tr><td>152</td><td>= Canon EF 300mm f/4L IS USM or Sigma Lens</td>
</tr><tr><td>152.1</td><td>= Sigma 12-24mm f/4.5-5.6 EX DG ASPHERICAL HSM</td>
@@ -1513,7 +1516,8 @@ attempting to identify the specific lens model.</p>
</tr><tr><td>153.4</td><td>= Tamron 18-250mm f/3.5-6.3 Di II LD Aspherical [IF] Macro</td>
</tr><tr><td>154</td><td>= Canon EF 20mm f/2.8 USM or Zeiss Lens</td>
</tr><tr><td>154.1</td><td>= Zeiss Milvus 21mm f/2.8</td>
-</tr><tr><td>155</td><td>= Canon EF 85mm f/1.8 USM</td>
+</tr><tr><td>155</td><td>= Canon EF 85mm f/1.8 USM or Sigma Lens</td>
+</tr><tr><td>155.1</td><td>= Sigma 14mm f/1.8 DG HSM | A</td>
</tr><tr><td>156</td><td>= Canon EF 28-105mm f/3.5-4.5 USM or Tamron Lens</td>
</tr><tr><td>156.1</td><td>= Tamron SP 70-300mm f/4-5.6 Di VC USD</td>
</tr><tr><td>156.2</td><td>= Tamron SP AF 28-105mm f/2.8 LD Aspherical IF</td>
@@ -1576,6 +1580,7 @@ attempting to identify the specific lens model.</p>
</tr><tr><td>180.7</td><td>= Sigma 50mm f/1.5 FF High-Speed Prime | 017</td>
</tr><tr><td>180.8</td><td>= Sigma 85mm f/1.5 FF High-Speed Prime | 017</td>
</tr><tr><td>180.9</td><td>= Tokina Opera 50mm f/1.4 FF</td>
+</tr><tr><td>180.10</td><td>= Sigma 20mm f/1.4 DG HSM | A</td>
</tr><tr><td>181</td><td>= Canon EF 100-400mm f/4.5-5.6L IS USM + 1.4x or Sigma Lens</td>
</tr><tr><td>181.1</td><td>= Sigma 150-600mm f/5-6.3 DG OS HSM | S + 1.4x</td>
</tr><tr><td>182</td><td>= Canon EF 100-400mm f/4.5-5.6L IS USM + 2x or Sigma Lens</td>
@@ -1677,6 +1682,7 @@ attempting to identify the specific lens model.</p>
</tr><tr><td>368.4</td><td>= Sigma 60-600mm f/4.5-6.3 DG OS HSM | S</td>
</tr><tr><td>368.5</td><td>= Sigma 28mm f/1.4 DG HSM | A</td>
</tr><tr><td>368.6</td><td>= Sigma 150-600mm f/5-6.3 DG OS HSM | S</td>
+</tr><tr><td>368.7</td><td>= Sigma 85mm f/1.4 DG HSM | A</td>
</tr><tr><td>488</td><td>= Canon EF-S 15-85mm f/3.5-5.6 IS USM</td>
</tr><tr><td>489</td><td>= Canon EF 70-300mm f/4-5.6L IS USM</td>
</tr><tr><td>490</td><td>= Canon EF 8-15mm f/4L Fisheye USM</td>
@@ -1734,7 +1740,7 @@ attempting to identify the specific lens model.</p>
</tr><tr><td>4154</td><td>= Canon EF-S 24mm f/2.8 STM</td>
</tr><tr><td>4155</td><td>= Canon EF-M 28mm f/3.5 Macro IS STM</td>
</tr><tr><td>4156</td><td>= Canon EF 50mm f/1.8 STM</td>
-</tr><tr><td>4157</td><td>= Canon EF-M 18-150mm 1:3.5-6.3 IS STM</td>
+</tr><tr><td>4157</td><td>= Canon EF-M 18-150mm f/3.5-6.3 IS STM</td>
</tr><tr><td>4158</td><td>= Canon EF-S 18-55mm f/4-5.6 IS STM</td>
</tr><tr><td>4159</td><td>= Canon EF-M 32mm f/1.4 STM</td>
</tr><tr><td>4160</td><td>= Canon EF-S 35mm f/2.8 Macro IS STM</td>
@@ -1744,6 +1750,7 @@ attempting to identify the specific lens model.</p>
</tr><tr><td>61182.1</td><td>= Canon RF 50mm F1.2 L USM</td>
</tr><tr><td>61182.2</td><td>= Canon RF 24-105mm F4 L IS USM</td>
</tr><tr><td>61182.3</td><td>= Canon RF 28-70mm F2 L USM</td>
+</tr><tr><td>61182.4</td><td>= Canon RF 85mm F1.2L USM</td>
</tr><tr><td>61491</td><td>= Canon CN-E 14mm T3.1 L F</td>
</tr><tr><td>61492</td><td>= Canon CN-E 24mm T1.5 L F</td>
</tr><tr><td>61494</td><td>= Canon CN-E 85mm T1.3 L F</td>
@@ -10459,7 +10466,7 @@ SX280, and CR3 images from cameras such as the EOS M50.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Jul 15, 2019</i>
+<br><i>Last revised Aug 7, 2019</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/Composite.html b/html/TagNames/Composite.html
index 1d7c5aae..57e8339a 100644
--- a/html/TagNames/Composite.html
+++ b/html/TagNames/Composite.html
@@ -327,7 +327,7 @@ manual mode)</span>
<tr>
<td>GPSDestLatitudeRef</td>
<td class=c>no</td>
-<td class=n>XMP:GPSDestLatitude</td>
+<td class=n>XMP-exif:GPSDestLatitude</td>
<td><span class=s>&#39;N&#39; = North
<br>&#39;S&#39; = South</span></td></tr>
<tr class=b>
@@ -339,7 +339,7 @@ manual mode)</span>
<tr>
<td>GPSDestLongitudeRef</td>
<td class=c>no</td>
-<td class=n>XMP:GPSDestLongitude</td>
+<td class=n>XMP-exif:GPSDestLongitude</td>
<td><span class=s>&#39;E&#39; = East
<br>&#39;W&#39; = West</span></td></tr>
<tr class=b>
@@ -361,7 +361,7 @@ manual mode)</span>
<tr>
<td>GPSLatitudeRef</td>
<td class=c>no</td>
-<td class=n>XMP:GPSLatitude</td>
+<td class=n>XMP-exif:GPSLatitude</td>
<td><span class=s>&#39;N&#39; = North
<br>&#39;S&#39; = South</span></td></tr>
<tr class=b>
@@ -383,7 +383,7 @@ manual mode)</span>
<tr>
<td>GPSLongitudeRef</td>
<td class=c>no</td>
-<td class=n>XMP:GPSLongitude</td>
+<td class=n>XMP-exif:GPSLongitude</td>
<td><span class=s>&#39;E&#39; = East
<br>&#39;W&#39; = West</span></td></tr>
<tr class=b>
@@ -774,7 +774,7 @@ those of the originating tags)</span></span></td></tr>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Jul 3, 2019</i>
+<br><i>Last revised Aug 6, 2019</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/EXIF.html b/html/TagNames/EXIF.html
index 8ef28baf..f757ce2c 100644
--- a/html/TagNames/EXIF.html
+++ b/html/TagNames/EXIF.html
@@ -2309,12 +2309,16 @@ indicated by &quot;Uncalibrated&quot; with an InteropIndex of &quot;R03&quot;.
<td class=c>int16u</td>
<td class=c>ExifIFD</td>
<td><span class=s><span class=n>(only 0 and 1 are standard EXIF, but other values are used by Apple iOS
-devices)</span>
- <br>0 = Normal
+devices)</span></span><table class=cols><tr>
+ <td>0 = Normal
<br>1 = Custom
- <br>3 = HDR
+ <br>2 = HDR (no original saved)
+ <br>3 = HDR (original saved)
+ <br>4 = Original (for HDR)
<br>6 = Panorama
- <br>8 = Portrait</span></td></tr>
+ <br>7 = Portrait HDR
+ <br>8 = Portrait</td></tr></table>
+</td></tr>
<tr>
<td title='0xa402 = 41986'>0xa402</td>
<td><u>ExposureMode</u></td>
@@ -3612,7 +3616,7 @@ these unless they already exist in the file)</span></span></td></tr>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Jun 27, 2019</i>
+<br><i>Last revised Aug 7, 2019</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/FujiFilm.html b/html/TagNames/FujiFilm.html
index 50df3b0e..c7b84909 100644
--- a/html/TagNames/FujiFilm.html
+++ b/html/TagNames/FujiFilm.html
@@ -334,6 +334,7 @@ the date of manufacture)</span></span></td></tr>
<td>CropMode</td>
<td class=c>int16u</td>
<td><span class=s>0 = n/a
+ <br>1 = Full-frame on GFX
<br>2 = Sports Finder Mode
<br>4 = Electronic Shutter 1.25x Crop</span></td></tr>
<tr>
@@ -1153,7 +1154,7 @@ RAF-format information.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Apr 30, 2019</i>
+<br><i>Last revised Jul 31, 2019</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/JPEG.html b/html/TagNames/JPEG.html
index 502167a1..c82373b9 100644
--- a/html/TagNames/JPEG.html
+++ b/html/TagNames/JPEG.html
@@ -34,13 +34,15 @@
<br>ExtendedXMP
<br>XMP
<br>QVCI
- <br>FLIR</td>
-<td class=c>-<br>-<br>-<br>-<br>-</td>
+ <br>FLIR
+ <br>RawThermalImage</td>
+<td class=c>-<br>-<br>-<br>-<br>-<br>no</td>
<td>--&gt; <a href='EXIF.html'>EXIF Tags</a>
<br>--&gt; <a href='XMP.html'>XMP Tags</a>
<br>--&gt; <a href='XMP.html'>XMP Tags</a>
<br>--&gt; <a href='Casio.html#QVCI'>Casio QVCI Tags</a>
- <br>--&gt; <a href='FLIR.html#FFF'>FLIR FFF Tags</a></td></tr>
+ <br>--&gt; <a href='FLIR.html#FFF'>FLIR FFF Tags</a>
+ <br><span class=n>(thermal image from Parrot Bebop-Pro Thermal drone)</span></td></tr>
<tr>
<td>'APP2'</td>
<td>ICC_Profile
@@ -606,7 +608,7 @@ because it may affect the appearance of the image.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Jul 12, 2019</i>
+<br><i>Last revised Jul 22, 2019</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/Minolta.html b/html/TagNames/Minolta.html
index 38699027..f1987230 100644
--- a/html/TagNames/Minolta.html
+++ b/html/TagNames/Minolta.html
@@ -430,7 +430,7 @@ adapter is used.</p>
</tr><tr><td>137</td><td>= Cosina 70-210mm F2.8-4 AF</td>
</tr><tr><td>138</td><td>= Soligor 19-35mm F3.5-4.5</td>
</tr><tr><td>139</td><td>= Tokina AF 28-300mm F4-6.3</td>
-</tr><tr><td>142</td><td>= Voigtlander 70-300mm F4.5-5.6</td>
+</tr><tr><td>142</td><td>= Cosina AF 70-300mm F4.5-5.6 MC</td>
</tr><tr><td>146</td><td>= Voigtlander Macro APO-Lanthar 125mm F2.5 SL</td>
</tr><tr><td>194</td><td>= Tamron SP AF 17-50mm F2.8 XR Di II LD Aspherical [IF]</td>
</tr><tr><td>202</td><td>= Tamron SP AF 70-200mm F2.8 Di LD [IF] Macro</td>
@@ -2588,7 +2588,7 @@ DiMAGE X and Xt.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Jul 15, 2019</i>
+<br><i>Last revised Aug 6, 2019</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/Nikon.html b/html/TagNames/Nikon.html
index ec2d43db..05e32539 100644
--- a/html/TagNames/Nikon.html
+++ b/html/TagNames/Nikon.html
@@ -2504,7 +2504,7 @@ different for other firmware versions.</p>
</td></tr>
<tr class=b>
<td class=r title='5982 = 0x175e'>5982</td>
-<td>D810MeteringMode</td>
+<td>NikonMeteringMode</td>
<td class=c>int8u</td>
<td><span class=s>[val &amp; 0x3]
<br>0 = Matrix
@@ -3376,6 +3376,16 @@ firmware 1.01b.</p>
<td>YawAngle</td>
<td class=c>fixed32u</td>
<td><span class=s><span class=n>(the camera yaw angle when shooting in portrait orientation)</span></span></td></tr>
+<tr class=b>
+<td class=r title='11940 = 0x2ea4'>11940</td>
+<td>NikonMeteringMode</td>
+<td class=c>int8u</td>
+<td><span class=s><span class=n>(D500 only)</span>
+ <br>[val &amp; 0x3]
+ <br>0 = Matrix
+ <br>1 = Center
+ <br>2 = Spot
+ <br>3 = Highlight</span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='ShotInfoD610'>Nikon ShotInfoD610 Tags</a></h2>
@@ -3893,16 +3903,25 @@ extracted.</p>
<td class=c>int8u</td>
<td>&nbsp;</td></tr>
<tr>
+<td class=r title='48 = 0x30'>48</td>
+<td>LensID</td>
+<td class=c>int16u</td>
+<td><span class=s>1 = Nikkor Z 24-70mm f/4 S
+ <br>2 = Nikkor Z 14-30mm f/4 S
+ <br>4 = Nikkor Z 35mm f/1.8 S
+ <br>9 = Nikkor Z 50mm f/1.8 S
+ <br>13 = Nikkor Z 24-70mm f/2.8 S</span></td></tr>
+<tr class=b>
<td class=r title='54 = 0x36'>54</td>
<td>MaxAperture</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
-<tr class=b>
+<tr>
<td class=r title='56 = 0x38'>56</td>
<td>FNumber</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
-<tr>
+<tr class=b>
<td class=r title='60 = 0x3c'>60</td>
<td>FocalLength</td>
<td class=c>int16u</td>
@@ -6984,6 +7003,7 @@ used to specify the lens for ExifTool to choose in these cases (see the
</tr><tr><td>'AA 48 88 A4 3C 3C D5 4E'</td><td>= AF-S Nikkor 180-400mm f/4E TC1.4 FL ED VR + 1.4x TC</td>
</tr><tr><td>'AB 3C A0 A0 30 30 C6 4E'</td><td>= AF-S Nikkor 500mm f/4E FL ED VR</td>
</tr><tr><td>'AB 44 5C 8E 34 3C D6 0E'</td><td>= AF-P Nikkor 70-300mm f/4.5-5.6E ED VR</td>
+</tr><tr><td>'AB 44 5C 8E 34 3C D6 4E'</td><td>= AF-P Nikkor 70-300mm f/4.5-5.6E ED VR</td>
</tr><tr><td>'AB 44 5C 8E 34 3C D6 CE'</td><td>= AF-P Nikkor 70-300mm f/4.5-5.6E ED VR</td>
</tr><tr><td>'AC 38 53 8E 34 3C AE 0E'</td><td>= AF-S DX Nikkor 55-300mm f/4.5-5.6G ED VR</td>
</tr><tr><td>'AC 3C A6 A6 30 30 C7 4E'</td><td>= AF-S Nikkor 600mm f/4E FL ED VR</td>
@@ -7085,7 +7105,7 @@ used to specify the lens for ExifTool to choose in these cases (see the
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Jul 17, 2019</i>
+<br><i>Last revised Aug 7, 2019</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/QuickTime.html b/html/TagNames/QuickTime.html
index 3c1983e0..d49e54aa 100644
--- a/html/TagNames/QuickTime.html
+++ b/html/TagNames/QuickTime.html
@@ -712,7 +712,7 @@ that by default,
preferred when writing, so to create a tag when a same-named tag exists in
either of these tables, either the &quot;Keys&quot; location must be specified (eg.
<code>-Keys:Author=Phil</code> on the command line), or the PREFERRED level must be
-changed via the config file.</p>
+changed via <a href="../config.html#PREF">the config file</a>.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
@@ -6453,8 +6453,8 @@ Note when creating new tags,
<a href="QuickTime.html#ItemList">ItemList</a> tags are
preferred over these, so to create the tag when a same-named ItemList tag
exists, either &quot;UserData&quot; must be specified (eg. <code>-UserData:Artist=Monet</code>
-on the command line), or the PREFERRED level must be changed via the config
-file.</p>
+on the command line), or the PREFERRED level must be changed via
+<a href="../config.html#PREF">the config file</a>.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
@@ -7859,7 +7859,7 @@ file.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Jul 18, 2019</i>
+<br><i>Last revised Jul 29, 2019</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/RIFF.html b/html/TagNames/RIFF.html
index 88c896c4..c4ab4473 100644
--- a/html/TagNames/RIFF.html
+++ b/html/TagNames/RIFF.html
@@ -282,25 +282,25 @@ sub-documents, but the Duration is calculated for the full video.</p>
<blockquote>
<table class=frame><tr><td>
<table class=inner cellspacing=1>
-<tr class=h><th>Tag&nbsp;ID</th><th>Tag Name</th>
+<tr class=h><th>Index2</th><th>Tag Name</th>
<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
<tr>
-<td title='0x0000 = 0'>0x0000</td>
+<td class=r title='0 = 0x0'>0</td>
<td>CodePage</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td title='0x0001 = 1'>0x0001</td>
+<td class=r title='1 = 0x1'>1</td>
<td>CountryCode</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr>
-<td title='0x0002 = 2'>0x0002</td>
+<td class=r title='2 = 0x2'>2</td>
<td>LanguageCode</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td title='0x0003 = 3'>0x0003</td>
+<td class=r title='3 = 0x3'>3</td>
<td>Dialect</td>
<td class=c>no</td>
<td>&nbsp;</td></tr>
@@ -1460,7 +1460,7 @@ container specification.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Jun 21, 2019</i>
+<br><i>Last revised Jul 29, 2019</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/Sigma.html b/html/TagNames/Sigma.html
index 821ce61d..523d8abf 100644
--- a/html/TagNames/Sigma.html
+++ b/html/TagNames/Sigma.html
@@ -449,96 +449,100 @@ LensID tag when attempting to identify the specific lens model.</p>
</tr><tr><td>0x256</td><td>= Sigma 105mm F2.8 EX Macro</td>
<td class=b>0x729</td><td class=b>= Sigma 100-400mm F5-6.3 DG OS HSM | C</td>
</tr><tr><td>0x257</td><td>= Sigma 105mm F2.8 EX DG Macro</td>
-<td class=b>0x733</td><td class=b>= Sigma 170-500mm F5-6.3 ASP APO</td>
+<td class=b>0x730</td><td class=b>= Sigma 60-600mm F4.5-6.3 DG OS HSM | S</td>
</tr><tr><td>0x258</td><td>= Sigma 105mm F2.8 EX DG OS HSM Macro</td>
+<td class=b>0x733</td><td class=b>= Sigma 170-500mm F5-6.3 ASP APO</td>
+</tr><tr><td>0x259</td><td>= Sigma 105mm F1.4 DG HSM | A</td>
<td class=b>0x734</td><td class=b>= Sigma 170-500mm F5-6.3 DG ASP APO</td>
</tr><tr><td>0x270</td><td>= Sigma 70mm F2.8 EX DG Macro</td>
<td class=b>0x735</td><td class=b>= Sigma 50-500mm F4-6.3 EX RF HSM APO</td>
-</tr><tr><td>0x300</td><td>= Sigma 30mm F1.4 EX DC HSM</td>
+</tr><tr><td>0x271</td><td>= Sigma 70mm F2.8 DG Macro | A</td>
<td class=b>0x736</td><td class=b>= Sigma 50-500mm F4-6.3 EX DG HSM APO</td>
-</tr><tr><td>0x301</td><td>= Sigma 30mm F1.4 DC HSM | A</td>
+</tr><tr><td>0x300</td><td>= Sigma 30mm F1.4 EX DC HSM</td>
<td class=b>0x737</td><td class=b>= Sigma 150-500mm F5-6.3 APO DG OS HSM</td>
-</tr><tr><td>0x302</td><td>= Sigma 30mm F1.4 DC DN | C</td>
+</tr><tr><td>0x301</td><td>= Sigma 30mm F1.4 DC HSM | A</td>
<td class=b>0x738</td><td class=b>= Sigma 50-500mm F4.5-6.3 APO DG OS HSM</td>
-</tr><tr><td>0x310</td><td>= Sigma 50mm F1.4 EX DG HSM</td>
+</tr><tr><td>0x302</td><td>= Sigma 30mm F1.4 DC DN | C</td>
<td class=b>0x740</td><td class=b>= Sigma 150-600mm F5-6.3 DG OS HSM | S</td>
-</tr><tr><td>0x311</td><td>= Sigma 50mm F1.4 DG HSM | A</td>
+</tr><tr><td>0x310</td><td>= Sigma 50mm F1.4 EX DG HSM</td>
<td class=b>0x745</td><td class=b>= Sigma 150-600mm F5-6.3 DG OS HSM | C</td>
-</tr><tr><td>0x320</td><td>= Sigma 85mm F1.4 EX DG HSM</td>
+</tr><tr><td>0x311</td><td>= Sigma 50mm F1.4 DG HSM | A</td>
<td class=b>0x777</td><td class=b>= Sigma 18-200mm F3.5-6.3 DC</td>
-</tr><tr><td>0x321</td><td>= Sigma 85mm F1.4 DG HSM | A</td>
+</tr><tr><td>0x320</td><td>= Sigma 85mm F1.4 EX DG HSM</td>
<td class=b>0x77d</td><td class=b>= Sigma 18-200mm F3.5-6.3 DC (Motorized)</td>
-</tr><tr><td>0x330</td><td>= Sigma 30mm F2.8 EX DN</td>
+</tr><tr><td>0x321</td><td>= Sigma 85mm F1.4 DG HSM | A</td>
<td class=b>0x787</td><td class=b>= Sigma 28-200mm F3.5-5.6 Compact ASP HZ Macro</td>
-</tr><tr><td>0x340</td><td>= Sigma 35mm F1.4 DG HSM</td>
+</tr><tr><td>0x330</td><td>= Sigma 30mm F2.8 EX DN</td>
<td class=b>0x789</td><td class=b>= Sigma 18-125mm F3.5-5.6 DC</td>
-</tr><tr><td>0x345</td><td>= Sigma 50mm F2.8 EX Macro</td>
+</tr><tr><td>0x340</td><td>= Sigma 35mm F1.4 DG HSM</td>
<td class=b>0x793</td><td class=b>= Sigma 28-300mm F3.5-6.3 Macro</td>
-</tr><tr><td>0x346</td><td>= Sigma 50mm F2.8 EX DG Macro</td>
+</tr><tr><td>0x345</td><td>= Sigma 50mm F2.8 EX Macro</td>
<td class=b>0x794</td><td class=b>= Sigma 28-200mm F3.5-5.6 DG Compact ASP HZ Macro</td>
-</tr><tr><td>0x350</td><td>= Sigma 60mm F2.8 DN | A</td>
+</tr><tr><td>0x346</td><td>= Sigma 50mm F2.8 EX DG Macro</td>
<td class=b>0x795</td><td class=b>= Sigma 28-300mm F3.5-6.3 DG Macro</td>
-</tr><tr><td>0x400</td><td>= Sigma 19mm F2.8 EX DN</td>
+</tr><tr><td>0x350</td><td>= Sigma 60mm F2.8 DN | A</td>
<td class=b>0x823</td><td class=b>= Sigma 1.4X TC EX APO</td>
-</tr><tr><td>0x401</td><td>= Sigma 24mm F1.4 DG HSM | A</td>
+</tr><tr><td>0x400</td><td>= Sigma 19mm F2.8 EX DN</td>
<td class=b>0x824</td><td class=b>= Sigma 1.4X Teleconverter EX APO DG</td>
-</tr><tr><td>0x411</td><td>= Sigma 20mm F1.8 EX DG ASP RF</td>
+</tr><tr><td>0x401</td><td>= Sigma 24mm F1.4 DG HSM | A</td>
<td class=b>0x853</td><td class=b>= Sigma 18-125mm F3.8-5.6 DC OS HSM</td>
-</tr><tr><td>0x412</td><td>= Sigma 20mm F1.4 DG HSM | A</td>
+</tr><tr><td>0x411</td><td>= Sigma 20mm F1.8 EX DG ASP RF</td>
<td class=b>0x861</td><td class=b>= Sigma 18-50mm F2.8-4.5 DC OS HSM</td>
-</tr><tr><td>0x432</td><td>= Sigma 24mm F1.8 EX DG ASP Macro</td>
+</tr><tr><td>0x412</td><td>= Sigma 20mm F1.4 DG HSM | A</td>
<td class=b>0x870</td><td class=b>= Sigma 2.0X Teleconverter TC-2001</td>
-</tr><tr><td>0x440</td><td>= Sigma 28mm F1.8 EX DG ASP Macro</td>
+</tr><tr><td>0x432</td><td>= Sigma 24mm F1.8 EX DG ASP Macro</td>
<td class=b>0x875</td><td class=b>= Sigma 2.0X TC EX APO</td>
-</tr><tr><td>0x450</td><td>= Sigma 14mm F1.8 DH HSM | A</td>
+</tr><tr><td>0x440</td><td>= Sigma 28mm F1.8 EX DG ASP Macro</td>
<td class=b>0x876</td><td class=b>= Sigma 2.0X Teleconverter EX APO DG</td>
-</tr><tr><td>0x461</td><td>= Sigma 14mm F2.8 EX ASP HSM</td>
+</tr><tr><td>0x450</td><td>= Sigma 14mm F1.8 DH HSM | A</td>
<td class=b>0x879</td><td class=b>= Sigma 1.4X Teleconverter TC-1401</td>
-</tr><tr><td>0x475</td><td>= Sigma 15mm F2.8 EX Diagonal FishEye</td>
+</tr><tr><td>0x461</td><td>= Sigma 14mm F2.8 EX ASP HSM</td>
<td class=b>0x880</td><td class=b>= Sigma 18-250mm F3.5-6.3 DC OS HSM</td>
-</tr><tr><td>0x476</td><td>= Sigma 15mm F2.8 EX DG Diagonal Fisheye</td>
+</tr><tr><td>0x475</td><td>= Sigma 15mm F2.8 EX Diagonal FishEye</td>
<td class=b>0x882</td><td class=b>= Sigma 18-200mm F3.5-6.3 II DC OS HSM</td>
-</tr><tr><td>0x477</td><td>= Sigma 10mm F2.8 EX DC HSM Fisheye</td>
+</tr><tr><td>0x476</td><td>= Sigma 15mm F2.8 EX DG Diagonal Fisheye</td>
<td class=b>0x883</td><td class=b>= Sigma 18-250mm F3.5-6.3 DC Macro OS HSM</td>
-</tr><tr><td>0x483</td><td>= Sigma 8mm F4 EX Circular Fisheye</td>
+</tr><tr><td>0x477</td><td>= Sigma 10mm F2.8 EX DC HSM Fisheye</td>
<td class=b>0x884</td><td class=b>= Sigma 17-70mm F2.8-4 DC OS HSM Macro | C</td>
-</tr><tr><td>0x484</td><td>= Sigma 8mm F4 EX DG Circular Fisheye</td>
+</tr><tr><td>0x483</td><td>= Sigma 8mm F4 EX Circular Fisheye</td>
<td class=b>0x885</td><td class=b>= Sigma 18-200mm F3.5-6.3 DC OS HSM Macro | C</td>
-</tr><tr><td>0x485</td><td>= Sigma 8mm F3.5 EX DG Circular Fisheye</td>
+</tr><tr><td>0x484</td><td>= Sigma 8mm F4 EX DG Circular Fisheye</td>
<td class=b>0x886</td><td class=b>= Sigma 18-300mm F3.5-6.3 DC OS HSM Macro | C</td>
-</tr><tr><td>0x486</td><td>= Sigma 4.5mm F2.8 EX DC HSM Circular Fisheye</td>
+</tr><tr><td>0x485</td><td>= Sigma 8mm F3.5 EX DG Circular Fisheye</td>
<td class=b>0x888</td><td class=b>= Sigma 18-200mm F3.5-6.3 DC OS</td>
-</tr><tr><td>0x506</td><td>= Sigma 70-300mm F4-5.6 APO Macro Super II</td>
+</tr><tr><td>0x486</td><td>= Sigma 4.5mm F2.8 EX DC HSM Circular Fisheye</td>
<td class=b>0x890</td><td class=b>= Sigma Mount Converter MC-11</td>
-</tr><tr><td>0x507</td><td>= Sigma 70-300mm F4-5.6 DL Macro Super II</td>
+</tr><tr><td>0x506</td><td>= Sigma 70-300mm F4-5.6 APO Macro Super II</td>
<td class=b>0x929</td><td class=b>= Sigma 60mm F2.8 DN | A</td>
-</tr><tr><td>0x508</td><td>= Sigma 70-300mm F4-5.6 DG APO Macro</td>
+</tr><tr><td>0x507</td><td>= Sigma 70-300mm F4-5.6 DL Macro Super II</td>
<td class=b>0x1003</td><td class=b>= Sigma 19mm F2.8</td>
-</tr><tr><td>0x509</td><td>= Sigma 70-300mm F4-5.6 DG Macro</td>
+</tr><tr><td>0x508</td><td>= Sigma 70-300mm F4-5.6 DG APO Macro</td>
<td class=b>0x1004</td><td class=b>= Sigma 30mm F2.8</td>
-</tr><tr><td>0x510</td><td>= Sigma 17-35 F2.8-4 EX DG ASP</td>
+</tr><tr><td>0x509</td><td>= Sigma 70-300mm F4-5.6 DG Macro</td>
<td class=b>0x1005</td><td class=b>= Sigma 50mm F2.8 Macro</td>
-</tr><tr><td>0x512</td><td>= Sigma 15-30mm F3.5-4.5 EX DG ASP DF</td>
+</tr><tr><td>0x510</td><td>= Sigma 17-35 F2.8-4 EX DG ASP</td>
<td class=b>0x1006</td><td class=b>= Sigma 19mm F2.8</td>
-</tr><tr><td>0x513</td><td>= Sigma 20-40mm F2.8 EX DG</td>
+</tr><tr><td>0x512</td><td>= Sigma 15-30mm F3.5-4.5 EX DG ASP DF</td>
<td class=b>0x1007</td><td class=b>= Sigma 30mm F2.8</td>
-</tr><tr><td>0x519</td><td>= Sigma 17-35 F2.8-4 EX ASP HSM</td>
+</tr><tr><td>0x513</td><td>= Sigma 20-40mm F2.8 EX DG</td>
<td class=b>0x1008</td><td class=b>= Sigma 50mm F2.8 Macro</td>
-</tr><tr><td>0x520</td><td>= Sigma 100-300mm F4.5-6.7 DL</td>
+</tr><tr><td>0x519</td><td>= Sigma 17-35 F2.8-4 EX ASP HSM</td>
<td class=b>0x1009</td><td class=b>= Sigma 14mm F4</td>
-</tr><tr><td>0x521</td><td>= Sigma 18-50mm F3.5-5.6 DC Macro</td>
+</tr><tr><td>0x520</td><td>= Sigma 100-300mm F4.5-6.7 DL</td>
<td class=b>0x8005</td><td class=b>= Sigma 35mm F1.4 DG HSM | A</td>
-</tr><tr><td>0x527</td><td>= Sigma 100-300mm F4 EX IF HSM</td>
+</tr><tr><td>0x521</td><td>= Sigma 18-50mm F3.5-5.6 DC Macro</td>
<td class=b>0x8009</td><td class=b>= Sigma 18-35mm F1.8 DC HSM | A</td>
-</tr><tr><td>0x529</td><td>= Sigma 120-300mm F2.8 EX HSM IF APO</td>
+</tr><tr><td>0x527</td><td>= Sigma 100-300mm F4 EX IF HSM</td>
<td class=b>0x8900</td><td class=b>= Sigma 70-300mm F4-5.6 DG OS</td>
-</tr><tr><td>0x547</td><td>= Sigma 24-60mm F2.8 EX DG</td>
+</tr><tr><td>0x529</td><td>= Sigma 120-300mm F2.8 EX HSM IF APO</td>
<td class=b>0xa100</td><td class=b>= Sigma 24-70mm F2.8 DG Macro</td>
+</tr><tr><td>0x547</td><td>= Sigma 24-60mm F2.8 EX DG</td>
+<td class=b>&nbsp;</td><td class=b>&nbsp;</td>
</tr></table></td></tr></table></blockquote>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Apr 23, 2019</i>
+<br><i>Last revised Jul 30, 2019</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/Sony.html b/html/TagNames/Sony.html
index f048fc74..a56096c4 100644
--- a/html/TagNames/Sony.html
+++ b/html/TagNames/Sony.html
@@ -979,6 +979,7 @@ toward magenta)</span></span></td></tr>
<br>369 = DSC-RX100M5A
<br>371 = ILCE-6400
<br>372 = DSC-RX0M2
+ <br>374 = DSC-RX100M7
<br>375 = ILCE-7RM4</td></tr></table>
</td></tr>
<tr>
@@ -1476,7 +1477,7 @@ adapter is used.</p>
</tr><tr><td>137</td><td>= Cosina 70-210mm F2.8-4 AF</td>
</tr><tr><td>138</td><td>= Soligor 19-35mm F3.5-4.5</td>
</tr><tr><td>139</td><td>= Tokina AF 28-300mm F4-6.3</td>
-</tr><tr><td>142</td><td>= Voigtlander 70-300mm F4.5-5.6</td>
+</tr><tr><td>142</td><td>= Cosina AF 70-300mm F4.5-5.6 MC</td>
</tr><tr><td>146</td><td>= Voigtlander Macro APO-Lanthar 125mm F2.5 SL</td>
</tr><tr><td>194</td><td>= Tamron SP AF 17-50mm F2.8 XR Di II LD Aspherical [IF]</td>
</tr><tr><td>202</td><td>= Tamron SP AF 70-200mm F2.8 Di LD [IF] Macro</td>
@@ -4743,8 +4744,9 @@ multi-frame noise reduction)</span></span></td></tr>
</tr><tr><td>32791</td><td>= Sony E 16-70mm F4 ZA OSS</td>
</tr><tr><td>32792</td><td>= Sony E 10-18mm F4 OSS</td>
</tr><tr><td>32793</td><td>= Sony E PZ 16-50mm F3.5-5.6 OSS</td>
-</tr><tr><td>32794</td><td>= Sony FE 35mm F2.8 ZA or Samyang AF 24mm F2.8</td>
+</tr><tr><td>32794</td><td>= Sony FE 35mm F2.8 ZA or Samyang Lens</td>
</tr><tr><td>32794.1</td><td>= Samyang AF 24mm F2.8</td>
+</tr><tr><td>32794.2</td><td>= Samyang AF 35mm F2.8</td>
</tr><tr><td>32795</td><td>= Sony FE 24-70mm F4 ZA OSS</td>
</tr><tr><td>32796</td><td>= Sony FE 85mm F1.8 or Viltrox PFU RBMH 85mm F1.8</td>
</tr><tr><td>32796.1</td><td>= Viltrox PFU RBMH 85mm F1.8</td>
@@ -4848,6 +4850,7 @@ multi-frame noise reduction)</span></span></td></tr>
</tr><tr><td>50999</td><td>= Voigtlander COLOR-SKOPAR 21mm F3.5 Aspherical</td>
</tr><tr><td>51000</td><td>= Voigtlander NOKTON 50mm F1.2 Aspherical</td>
</tr><tr><td>51001</td><td>= Voigtlander NOKTON 21mm F1.4 Aspherical</td>
+</tr><tr><td>51504</td><td>= Samyang AF 50mm F1.4</td>
</tr><tr><td>51505</td><td>= Samyang AF 14mm F2.8 or Samyang AF 35mm F2.8</td>
</tr><tr><td>51505.1</td><td>= Samyang AF 35mm F2.8</td>
</tr><tr><td>51507</td><td>= Samyang AF 35mm F1.4</td>
@@ -5110,7 +5113,8 @@ rotation -- the width is always the longer dimension.</p>
<br>2 = Bracketing
<br>4 = Continuous - Burst
<br>5 = Continuous - Speed/Advance Priority
- <br>6 = Normal - Self-timer</td></tr></table>
+ <br>6 = Normal - Self-timer
+ <br>9 = Single Burst Shooting</td></tr></table>
</td></tr>
<tr>
<td class=r title='4396 = 0x112c'>4396</td>
@@ -5499,7 +5503,8 @@ option is used.</p>
<br>2 = Bracketing
<br>4 = Continuous - Burst
<br>5 = Continuous - Speed/Advance Priority
- <br>6 = Normal - Self-timer</td></tr></table>
+ <br>6 = Normal - Self-timer
+ <br>9 = Single Burst Shooting</td></tr></table>
</td></tr>
<tr class=b>
<td class=r title='4396 = 0x112c'>4396</td>
@@ -5722,7 +5727,8 @@ option is used.</p>
<br>2 = Bracketing
<br>4 = Continuous - Burst
<br>5 = Continuous - Speed/Advance Priority
- <br>6 = Normal - Self-timer</td></tr></table>
+ <br>6 = Normal - Self-timer
+ <br>9 = Single Burst Shooting</td></tr></table>
</td></tr>
<tr>
<td class=r title='4360 = 0x1108'>4360</td>
@@ -5936,7 +5942,8 @@ not valid for panorama images.</p>
<br>2 = Bracketing
<br>4 = Continuous - Burst
<br>5 = Continuous - Speed/Advance Priority
- <br>6 = Normal - Self-timer</td></tr></table>
+ <br>6 = Normal - Self-timer
+ <br>9 = Single Burst Shooting</td></tr></table>
</td></tr>
<tr class=b>
<td class=r title='4484 = 0x1184'>4484</td>
@@ -6144,7 +6151,8 @@ for panorama images.</p>
<br>2 = Bracketing
<br>4 = Continuous - Burst
<br>5 = Continuous - Speed/Advance Priority
- <br>6 = Normal - Self-timer</td></tr></table>
+ <br>6 = Normal - Self-timer
+ <br>9 = Single Burst Shooting</td></tr></table>
</td></tr>
<tr>
<td class=r title='4448 = 0x1160'>4448</td>
@@ -6408,7 +6416,8 @@ for panorama images.</p>
<br>2 = Bracketing
<br>4 = Continuous - Burst
<br>5 = Continuous - Speed/Advance Priority
- <br>6 = Normal - Self-timer</td></tr></table>
+ <br>6 = Normal - Self-timer
+ <br>9 = Single Burst Shooting</td></tr></table>
</td></tr>
<tr>
<td class=r title='4120 = 0x1018'>4120</td>
@@ -6617,7 +6626,8 @@ ILCE-7/7R/7S/7M2/5000/5100/6000/QX1, ILCA-68/77M2.</p>
<br>2 = Bracketing
<br>4 = Continuous - Burst
<br>5 = Continuous - Speed/Advance Priority
- <br>6 = Normal - Self-timer</td></tr></table>
+ <br>6 = Normal - Self-timer
+ <br>9 = Single Burst Shooting</td></tr></table>
</td></tr>
<tr class=b>
<td class=r title='528 = 0x210'>528</td>
@@ -6872,7 +6882,8 @@ ILCE-6300/6500/7RM2/7SM2, ILCA-99M2.</p>
<br>2 = Bracketing
<br>4 = Continuous - Burst
<br>5 = Continuous - Speed/Advance Priority
- <br>6 = Normal - Self-timer</td></tr></table>
+ <br>6 = Normal - Self-timer
+ <br>9 = Single Burst Shooting</td></tr></table>
</td></tr>
<tr class=b>
<td class=r title='528 = 0x210'>528</td>
@@ -7131,7 +7142,8 @@ ILCE-6300/6500/7RM2/7SM2, ILCA-99M2.</p>
<br>2 = Bracketing
<br>4 = Continuous - Burst
<br>5 = Continuous - Speed/Advance Priority
- <br>6 = Normal - Self-timer</td></tr></table>
+ <br>6 = Normal - Self-timer
+ <br>9 = Single Burst Shooting</td></tr></table>
</td></tr>
<tr class=b>
<td class=r title='520 = 0x208'>520</td>
@@ -8214,6 +8226,7 @@ WX500, ILCE-7/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/9/5000/5100/6000/6300/6400/
<br>4 = 4 shots
<br>5 = 5 shots
<br>6 = 6 shots
+ <br>7 = 7 shots
<br>9 = 9 shots
<br>10 = 10 shots
<br>12 = 12 shots
@@ -8235,6 +8248,7 @@ WX500, ILCE-7/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/9/5000/5100/6000/6300/6400/
<br>2 = 2 files
<br>3 = 3 files</td><td>&nbsp;&nbsp;</td>
<td>5 = 5 files
+ <br>7 = 7 files
<br>9 = 9 files
<br>10 = 10 files</td></tr></table>
</td></tr>
@@ -8711,46 +8725,51 @@ RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/WX220/WX350, ILCE-7/
<td class=c>int16s[16]</td>
<td>&nbsp;</td></tr>
<tr>
+<td class=r title='846 = 0x34e'>846</td>
+<td>LensZoomPosition</td>
+<td class=c>int16u</td>
+<td>&nbsp;</td></tr>
+<tr class=b>
<td class=r title='848 = 0x350'>848</td>
<td>VignettingCorrParams</td>
<td class=c>int16s[16]</td>
<td>&nbsp;</td></tr>
-<tr class=b>
+<tr>
<td class=r title='858 = 0x35a'>858</td>
<td>LensZoomPosition</td>
<td class=c>int16u</td>
<td>&nbsp;</td></tr>
-<tr>
+<tr class=b>
<td class=r title='860 = 0x35c'>860</td>
<td>VignettingCorrParams</td>
<td class=c>int16s[16]</td>
<td>&nbsp;</td></tr>
-<tr class=b>
+<tr>
<td class=r title='872 = 0x368'>872</td>
<td>VignettingCorrParams</td>
<td class=c>int16s[16]</td>
<td>&nbsp;</td></tr>
-<tr>
+<tr class=b>
<td class=r title='892 = 0x37c'>892</td>
<td>ChromaticAberrationCorrParams</td>
<td class=c>int16s[32]</td>
<td>&nbsp;</td></tr>
-<tr class=b>
+<tr>
<td class=r title='900 = 0x384'>900</td>
<td>ChromaticAberrationCorrParams</td>
<td class=c>int16s[32]</td>
<td>&nbsp;</td></tr>
-<tr>
+<tr class=b>
<td class=r title='924 = 0x39c'>924</td>
<td>ChromaticAberrationCorrParams</td>
<td class=c>int16s[32]</td>
<td>&nbsp;</td></tr>
-<tr class=b>
+<tr>
<td class=r title='944 = 0x3b0'>944</td>
<td>ChromaticAberrationCorrParams</td>
<td class=c>int16s[32]</td>
<td>&nbsp;</td></tr>
-<tr>
+<tr class=b>
<td class=r title='952 = 0x3b8'>952</td>
<td>ChromaticAberrationCorrParams</td>
<td class=c>int16s[32]</td>
@@ -11196,7 +11215,7 @@ some models when the <a href="../ExifTool.html#ExtractEmbedded">ExtractEmbedded<
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Jul 19, 2019</i>
+<br><i>Last revised Aug 6, 2019</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/index.html b/html/TagNames/index.html
index fde4c05d..9bc82ff6 100644
--- a/html/TagNames/index.html
+++ b/html/TagNames/index.html
@@ -10,7 +10,7 @@
<h2 class=top>ExifTool Tag Names</h2>
<p>
The tables listed below give the names of all tags recognized by ExifTool.
-They contain a total of 22992 tags, with 15044 unique tag names.
+They contain a total of 22996 tags, with 15044 unique tag names.
</p>
<blockquote>
<table width='100%' class=frame><tr><td>
@@ -226,7 +226,7 @@ ExifTool. A big thanks to everyone who has helped with this so far!)</i>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Created Feb 15, 2005</i>
-<br><i>Last revised Jul 17, 2019</i>
+<br><i>Last revised Aug 6, 2019</i>
<p class=lf><a href='../index.html'>&lt;-- Back to ExifTool home page</a></p>
</body>
</html>
diff --git a/html/commentary.html b/html/commentary.html
index d9509ddc..8e72463e 100644
--- a/html/commentary.html
+++ b/html/commentary.html
@@ -169,7 +169,10 @@ This was a huge mistake, and as a work-around software (eg. ImageMagick)
must encode binary information in ASCII-hex, then compress it to offset the
increase in size, and store it as a compressed text block. This adds
unnecessary complexity, greatly slows down processing, and makes it much
-harder to develop software which supports PNG meta information.</p>
+harder to develop software which supports PNG meta information.
+<i class=lt>[July 2017: PNG adopts eXIf chunk to allow EXIF metadata to be
+stored in native binary format. This is useful, but still doesn't allow storage
+of arbitrary binary metadata.]</i></p>
<a name='PICT'></a>
<h3>PICT</h3>
@@ -320,7 +323,7 @@ offers a number of other features:</p>
<hr>
<i>Created Nov. 15, 2005</i><br>
-<i>Last revised May. 2, 2019</i>
+<i>Last revised July 31, 2019</i>
<p class='lf'><a href="index.html">&lt;-- Back to ExifTool home page</a></p>
</body>
</html>
diff --git a/html/exiftool_pod.html b/html/exiftool_pod.html
index 1094d7a0..123c07d7 100644
--- a/html/exiftool_pod.html
+++ b/html/exiftool_pod.html
@@ -663,7 +663,7 @@
<p>produces output like this:</p>
-<pre><code> -- Generated by ExifTool 11.57 --
+<pre><code> -- Generated by ExifTool 11.61 --
File: a.jpg - 2003:10:31 15:44:19
(f/5.6, 1/60s, ISO 100)
File: b.jpg - 2006:05:23 11:57:38
diff --git a/html/faq.html b/html/faq.html
index 9a351ab2..6203a864 100644
--- a/html/faq.html
+++ b/html/faq.html
@@ -1336,9 +1336,9 @@ been lost in the process</u>.</blockquote>
<blockquote><b>Note</b>: ExifTool will not modify the JPEG image data, so if the
image itself is corrupted (eg. if you get a message saying "Not a valid JPEG"),
then ExifTool can not be used to repair the image. Also, ExifTool may not
-be used like this to repair TIFF-based files -- the risk of image corruption is
-too great because the image is stored in the same IFD as the metadata in these
-files.</blockquote>
+be used like this to repair TIFF-based files or RAW files -- the risk of image
+corruption is too great because the image is stored in the same IFD as the
+metadata in these files.</blockquote>
<blockquote>If there are also MakerNote problems in the file, you may want to
add the <code>-F</code> option to the command. See <a href='#Q15'>FAQ 15</a>
diff --git a/html/geotag.html b/html/geotag.html
index cb8a2997..1c1a4c59 100644
--- a/html/geotag.html
+++ b/html/geotag.html
@@ -482,9 +482,8 @@ extract <code>DateTimeOriginal</code> from the file. For example, if the time in
the GPS display reads 19:32:21 UTC and <code>DateTimeOriginal</code> is
14:31:49, then for this image the camera clock was 32 seconds slow (assuming
that the timezone of the camera clock was <span class=nr>-05:00</span>). There
-are two different ways to use this time synchronization to improve your
-geotagging accuracy:
-</blockquote>
+are various ways to use this time synchronization to improve your geotagging
+accuracy:</blockquote>
<blockquote>A) Use the <code>Geosync</code> tag to specify the time difference
while geotagging. Using this technique the existing image timestamps will not
@@ -508,7 +507,12 @@ with GPS time, then geotag using the corrected timestamps:
exiftool -geotag my_gps.log C:\Images
</pre>
-Both examples above assume that your track log file (<code>my_gps.log</code>)
+C) Do both in the same command:
+
+<pre>exiftool -alldates+=00:00:32 -geosync=+00:00:32 -geotag my_gps.log C:\Images
+</pre>
+
+The examples above assume that your track log file (<code>my_gps.log</code>)
is in the current directory, that the images were downloaded to the
<code>C:\Images</code> directory, and that the computer and camera clocks are
in the same timezone.</blockquote>
@@ -681,7 +685,7 @@ forum post</a> for more useful tips about creating KML files.</p>
<hr>
<i>Created Apr. 2, 2009</i><br>
-<i>Last revised Mar. 4, 2019</i>
+<i>Last revised Jul. 22, 2019</i>
<p class='lf'><a href="index.html">&lt;-- Back to ExifTool home page</a></p>
</body>
</html>
diff --git a/html/history.html b/html/history.html
index 2836640e..846aad0f 100644
--- a/html/history.html
+++ b/html/history.html
@@ -17,6 +17,73 @@ considered development releases, and are not uploaded to <a href="https://metacp
<!-- Use line width of 80 -->
<!-- *********************************************************************** -->
+<a name='v11.61'><b>Aug. 7, 2019 - Version 11.61</b></a>
+<ul>
+<li>Added a new FujiFilm CropMode (thanks LibRaw)
+<li>Added a couple of proprietary CustomRendered values (thanks Jeffrey Friedl)
+<li>Added a new Nikon LensID and fixed a Canon LensType (thanks LibRaw)
+<li>Added a new CanonModelID
+<li>Decode more Sony DSC-RX100M7 tags (thanks Jos Roost)
+<li>Write standard EXIF to PNG even if non-standard EXIF already exists
+<li>Patched to avoid problems overriding new values when writing thumbnail and
+ preview images
+<li>Changed a Minolta/Sony LensType (thanks LibRaw)
+<li>Changed Composite GPS reference direction tags to be derived from only the
+ XMP-exif GPS coordinate tags (and not other XMP GPS coordinates)
+<li>Reverted a PNG Validation check that was removed from 11.60
+</ul>
+
+<a name='v11.60'><b>July 30, 2019 - Version 11.60</b></a>
+<ul>
+<li>Added a few new Sigma LensType values (thanks LibRaw)
+<li>Updated Sony makernote decoding for the DSC-RX100M7 (thanks Jos Roost)
+<li>Various internal improvements to PNG reader/writer
+<li>Fixed bug in RIFF decoder that could cause an "undefined subroutine" error
+ (thanks Hayo Baan)
+<li>Fixed problem writing some QuickTime tags if the PREFERRED levels were
+ changed via the config file
+<li>Install Changes:
+ <ul>
+ <li>Properly erase all temporary files after validation tests
+ </ul>
+</ul>
+
+<a name='v11.59'><b>July 25, 2019 - Version 11.59</b></a>
+<ul>
+<li>Added a new SonyModelID (thanks LibRaw)
+<li>Changed block delete to allow subsequent writing of tags from the same group
+ (like a group delete)
+<li>Minor changes to warnings and verbose output when writing PNG images
+<li>Fixed potential runtime warning on an error rewriting XMP in a PNG image
+</ul>
+
+<a name='v11.58'><b>July 25, 2019 - Version 11.58</b></a>
+<ul>
+<li>Added a number of new Canon and Sony LensType values (thanks LibRaw)
+<li>Decode NikonMeteringMode for the D500
+<li>Decode LensID for Nikon Z lenses
+<li>Extract RawThermalImage from Parrot Bebop-Pro Thermal images
+<li>Validate PNG CRC values when writing or using the Validate option
+<li>Improved Russian translation (thanks Andrei Korzhyts)
+<li>Improved identification of some Tamron lenses for Canon cameras
+<li>Changed name of D810MeteringMode tag to NikonMeteringMode
+<li>Patched writing of XMP in PNG images to always come before IDAT, and warn if
+ XMP comes after IDAT when reading
+<li>Fixed problem replacing multiple lang-alt default-language structure
+ elements in lists of XMP structures (behaviour for other languages still not
+ ideal)
+<li>API Changes:
+ <ul>
+ <li>Removed PNGEarlyXMP option
+ <li>Fixed problem introduced in 11.54 which caused Options('UserParam') to
+ return undef
+ </ul>
+<li>Internal Changes:
+ <ul>
+ <li>A block delete of EXIF, XMP, IPTC, etc now sets the group delete flag
+ </ul>
+</ul>
+
<a name='v11.57'><b>July 19, 2019 - Version 11.57</b></a>
<ul>
<li>Improved decoding of some tags for the Sony ILCE-7RM4 (thanks Jos Roost)
diff --git a/html/index.html b/html/index.html
index 0077dff8..49b92dea 100644
--- a/html/index.html
+++ b/html/index.html
@@ -74,9 +74,9 @@ span.sup { font-size: 0.8em; font-weight: normal; position: relative; top
</div>
<blockquote><table class='dl lg'><tr><td><b>
-<a href="Image-ExifTool-11.57.tar.gz">
-Download Version 11.57</a> (4.4 MB) -
-<a href="history.html">July 19, 2019</a></b></td></tr></table></blockquote>
+<a href="Image-ExifTool-11.61.tar.gz">
+Download Version 11.61</a> (4.4 MB) -
+<a href="history.html">Aug. 7, 2019</a></b></td></tr></table></blockquote>
<p><b>ExifTool is a platform-independent <a href="ExifTool.html">Perl
library</a> plus a <a href="exiftool_pod.html">command-line application</a> for
@@ -128,8 +128,8 @@ distribution above.)</i></p>
<blockquote><table class='dl lg'><tr><td><b>
<a name="alone">Windows Executable:</a>
-<a href="exiftool-11.57.zip">
- exiftool-11.57.zip</a> (6.1 MB)</b></td></tr></table></blockquote>
+<a href="exiftool-11.61.zip">
+ exiftool-11.61.zip</a> (6.1 MB)</b></td></tr></table></blockquote>
<p><b>The stand-alone Windows executable</b> does not require Perl. Just
download and un-zip the archive then double-click on
@@ -140,8 +140,8 @@ of Windows.</p>
<blockquote><table class='dl lg'><tr><td><b>
MacOS Package:
-<a href="ExifTool-11.57.dmg">
- ExifTool-11.57.dmg</a> (2.8 MB)</b></td></tr></table></blockquote>
+<a href="ExifTool-11.61.dmg">
+ ExifTool-11.61.dmg</a> (2.8 MB)</b></td></tr></table></blockquote>
<p><b>The MacOS package</b> installs the ExifTool command-line application and
libraries in /usr/local/bin. After installing, type "<code>exiftool</code>" in
@@ -467,6 +467,7 @@ of meta information in JPEG images:</p>
<tr><td>APP1 - <a href="TagNames/XMP.html">XMP</a></td><td>R/W/C</td><td>Extensible Metadata Platform (multi-segment)</td></tr>
<tr><td>APP1 - <a href="TagNames/Casio.html#QVCI">QVCI</a></td><td>R</td><td>Casio QV-7000SX QVCI information</td></tr>
<tr><td>APP1 - <a href="TagNames/FLIR.html#FFF">FLIR</a></td><td>R</td><td>FLIR thermal imaging data (multi-segment)</td></tr>
+<tr><td>APP1 - RawThermalImage</td><td>R</td><td>Thermal image from Parrot Bebop-Pro Thermal drone</td></tr>
<tr><td>APP2 - <a href="TagNames/ICC_Profile.html">ICC</a></td><td>R/W/C</td><td>International Color Consortium (multi-segment)</td></tr>
<tr><td>APP2 - <a href="TagNames/FlashPix.html">FPXR</a></td><td>R</td><td>FlashPix Ready (multi-segment)</td></tr>
<tr><td>APP2 - <a href="TagNames/MPF.html">MPF</a></td><td>R</td><td>Multi-Picture Format</td></tr>
@@ -979,9 +980,9 @@ CC (version 14.0) <b>ignore XMP in PNG images</b> if it comes after the image
data, which is where ExifTool adds new XMP. This should be considered as a bug
in the Apple and Adobe software since XMP is allowed to exist after the image
data according to the XMP and PNG specifications. <i class=grn>[ExifTool 9.40
-provides the <a href="ExifTool.html#PNGEarlyXMP">PNGEarlyXMP API option</a> to
-allow writing XMP before the IDAT chunk, but there are caveats associated with
-its use]</i></li>
+provides the PNGEarlyXMP API option to allow writing XMP before the IDAT chunk,
+but there are caveats associated with its use. ExifTool 11.58 and later remove
+this option and always write XMP before IDAT.]</i></li>
<li><span class=red>[2013-04-21]</span>
Memory available to ExifTool in the <b>Windows EXE version</b> is limited to
a few hundred MB. This limitation has been known to cause <b>unreasonably long
diff --git a/html/install.html b/html/install.html
index c840c712..6331dd85 100644
--- a/html/install.html
+++ b/html/install.html
@@ -52,10 +52,10 @@ documentation or some other files of the full distribution.</p>
<h3>Stand-Alone Executable</h3>
<ol>
<li><b>Download</b> the <b>Windows Executable</b> from the <a href="index.html">ExifTool home page</a>.
-<br><span class=lt>(The file you download should be named "<code>exiftool-11.57.zip</code>".)</span></li>
+<br><span class=lt>(The file you download should be named "<code>exiftool-11.61.zip</code>".)</span></li>
<li><b>Extract "<code>exiftool(-k).exe</code>"</b> from the
"<code>.zip</code>" file, and place it <b>on your Desktop</b>.
-<br><span class=lt>(Double-click on "<code>exiftool-11.57.zip</code>" to open
+<br><span class=lt>(Double-click on "<code>exiftool-11.61.zip</code>" to open
the archive, then drag "<code>exiftool(-k).exe</code>" to your Desktop.)</span></li>
</ol>
<p>You can now double-click on "<code>exiftool(-k).exe</code>" to read the
@@ -107,7 +107,7 @@ can be downloaded from
<a href="http://www.activestate.com/activeperl/">activeperl.com</a>.)</p>
<ol>
<li><b>Download</b> the <b>Image-ExifTool distribution</b> from the <a href="index.html">ExifTool home page</a>
-<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-11.57.tar.gz</code>".)</span></li>
+<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-11.61.tar.gz</code>".)</span></li>
<li><b>Extract the ExifTool files</b> from the archive.
<br><span class=lt>(The archive is a gzipped tar file, and can be opened with
various Windows utilities, including WinZip.)</span></li>
@@ -149,7 +149,7 @@ in the OS X package. Both versions run natively on PPC and Intel Macs.</p>
<h3>OS X Package</h3>
<ol>
<li><b>Download</b> the <b>ExifTool OS X Package</b> from the <a href="index.html">ExifTool home page</a>.
-<br><span class=lt>(The file you download should be named "<code>ExifTool-11.57.dmg</code>".)</span></li>
+<br><span class=lt>(The file you download should be named "<code>ExifTool-11.61.dmg</code>".)</span></li>
<li><b>Install</b> as a normal <b>OS X package</b>.
<br><span class=lt>(Open the disk image, double-click on the install package, and follow the instructions.)
</span></li>
@@ -164,12 +164,12 @@ in the OS X package. Both versions run natively on PPC and Intel Macs.</p>
<ol>
<li><b>Download</b> the <b>Image-ExifTool distribution</b> from the <a href="index.html">ExifTool home page</a>
to your Desktop.
-<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-11.57.tar.gz</code>".)</span></li>
+<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-11.61.tar.gz</code>".)</span></li>
<li><b>Launch</b> the <b>Terminal</b> application from the Utilities folder in your Applications folder.</li>
<li>In the Terminal window, <b>type the following</b>:
<pre class='code'> cd ~/Desktop
- tar -xzf Image-ExifTool-11.57.tar.gz
- cd Image-ExifTool-11.57
+ tar -xzf Image-ExifTool-11.61.tar.gz
+ cd Image-ExifTool-11.61
sudo cp -r exiftool lib /usr/local/bin
</pre>
<span class=lt>(Note: The last step above will require you to enter your
@@ -185,7 +185,7 @@ your Perl version. If both sets of libraries exist, /usr/local/bin/lib takes
precedence for exiftool, but /Library/Perl/#.#.# is the default for any other
Perl scripts.</li>
<li>In OS X 10.8 or later, you may see this message when you try to open the install package:
-<blockquote class=red>"ExifTool-11.57.pkg" can't be opened because it is from an
+<blockquote class=red>"ExifTool-11.61.pkg" can't be opened because it is from an
unidentified developer.</blockquote> The solution is to control-click on the pkg
then select "Open" from the pop-up menu instead of just double-clicking. An alternative
is to lower the security settings by changing "Allow applications downloaded from" to
@@ -211,11 +211,11 @@ have the wrong "<code>lib</code>" folder.</li>
<ol>
<li><b>Download</b> the <b>Image-ExifTool distribution</b> from the <a href="index.html">ExifTool home page</a>
-<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-11.57.tar.gz</code>".)</span></li>
+<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-11.61.tar.gz</code>".)</span></li>
<li><b>Unpack the distribution</b> and <b>make it your current directory</b> by typing:
<pre class='code'> cd <i>&lt;your download directory&gt;</i>
- gzip -dc Image-ExifTool-11.57.tar.gz | tar -xf -
- cd Image-ExifTool-11.57
+ gzip -dc Image-ExifTool-11.61.tar.gz | tar -xf -
+ cd Image-ExifTool-11.61
</pre>
<span class=lt>(At this point you may run exiftool by typing
"<code>./exiftool <i>&lt;image file name&gt;</i></code>".)</span></li>
diff --git a/html/metafiles.html b/html/metafiles.html
index c47359cc..e4693e61 100644
--- a/html/metafiles.html
+++ b/html/metafiles.html
@@ -102,6 +102,8 @@ source files or entire directories.</p>
copied by this command, and the 2 kB of padding recommended by the XMP
specification is not added when copying as a block)</p>
<pre>exiftool -tagsfromfile <i>SRC</i>.xmp -xmp <i>DST</i>.jpg</pre>
+<p class=b>or equivalently</p>
+<pre>exiftool "-xmp&lt;=<i>SRC</i>.xmp" <i>DST</i>.jpg</pre>
<h4>Batch Processing</h4>
@@ -236,12 +238,11 @@ original locations in an image.</p>
<a name="exif"></a>
<h3>EXIF Files</h3>
-<p>EXIF files store EXIF information in the same format as in the APP1 segment
-of a JPEG image (<i>with the exception that there is no size limit for an
-EXIF file, while EXIF data in a JPEG image is limited to a maximum of 65527
-bytes</i>). The three commands below illustrate techniques for copying the
-entire EXIF block from a source image (<code><i>SRCFILE</i></code>) to an
-output EXIF file (<code>out.exif</code>):</p>
+<p>EXIF files store EXIF information in the same TIFF-based format as the EXIF
+APP1 segment of a JPEG image, but without the "Exif\0\0" header. The three
+commands below illustrate techniques for copying the entire EXIF block from a
+source image (<code><i>SRCFILE</i></code>) to an output EXIF file
+(<code>out.exif</code>):</p>
<pre>exiftool -exif -b <i>SRCFILE</i> > out.exif
@@ -249,11 +250,11 @@ exiftool -tagsfromfile <i>SRCFILE</i> -exif out.exif
exiftool -o out.exif -exif <i>SRCFILE</i></pre>
-<p>It is the specification of the <a href="TagNames/Extra.html">Extra</a> EXIF
-tag in each of the above commands (the "<code>-exif</code>" argument) that
-causes the EXIF information to be extracted as a block. JPEG, PNG, JP2, MIE and
-MIFF files all support storage of EXIF data blocks in this format, although
-exiftool does not currently write MIFF images.</p>
+<p>The <a href="TagNames/Extra.html">Extra</a> EXIF tag used in each of the
+above commands (the "<code>-exif</code>" argument) represents the EXIF metadata
+in the form of a binary data block. JPEG, PNG, JP2, MIE and MIFF files all
+support storage of EXIF data blocks in this format, although exiftool does not
+currently write MIFF images.</p>
<p>Tags may also be copied individually to and from an EXIF file, but remember
that this will not copy "unsafe" tags unless they are specified explicitly. The
@@ -316,7 +317,7 @@ etc.). ExifTool has full read, write and create support for this format.</p>
<hr>
<i>Created Nov 12, 2008</i><br>
-<i>Last revised Sept 3, 2015</i>
+<i>Last revised July 31, 2019</i>
<p class='lf'><a href="index.html">&lt;-- Back to ExifTool home page</a></p>
</body>
</html>
diff --git a/html/struct.html b/html/struct.html
index 4eb5e42d..6a13ed8f 100644
--- a/html/struct.html
+++ b/html/struct.html
@@ -292,7 +292,7 @@ added after the last field in a structure.</li>
<pre class=code>exiftool "-RegionInfo&lt;=INFILE" a.xmp</pre>
</td></tr></table></blockquote>
-<p>the INFILE below writes structured information to XMP-mwg-rs:RegionInfo.</p>
+<p>and the INFILE below, structured information is written to XMP-mwg-rs:RegionInfo.</p>
<blockquote><table class='box'><tr><td>
<pre>{
diff --git a/lib/Image/ExifTool.pm b/lib/Image/ExifTool.pm
index 609a4173..13fc162a 100644
--- a/lib/Image/ExifTool.pm
+++ b/lib/Image/ExifTool.pm
@@ -27,7 +27,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
%mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
%jpegMarker %specialTags %fileTypeLookup);
-$VERSION = '11.57';
+$VERSION = '11.61';
$RELEASE = '';
@ISA = qw(Exporter);
%EXPORT_TAGS = (
@@ -1378,7 +1378,7 @@ my %systemTagsNotes = (
is generated only if specifically requested
},
Groups => { 0 => 'EXIF', 1 => 'EXIF' },
- Flags => ['Writable' ,'Protected', 'Binary'],
+ Flags => ['Writable' ,'Protected', 'Binary', 'DelGroup'],
WriteCheck => q{
return undef if $val =~ /^(II\x2a\0|MM\0\x2a)/;
return 'Invalid EXIF data';
@@ -1390,7 +1390,7 @@ my %systemTagsNotes = (
requested
},
Groups => { 0 => 'IPTC', 1 => 'IPTC' },
- Flags => ['Writable', 'Protected', 'Binary'],
+ Flags => ['Writable', 'Protected', 'Binary', 'DelGroup'],
Priority => 0, # so main IPTC (which hopefully comes first) takes priority
WriteCheck => q{
return undef if $val =~ /^(\x1c|\0+$)/;
@@ -1403,7 +1403,7 @@ my %systemTagsNotes = (
into multiple blocks. This tag is generated only if specifically requested
},
Groups => { 0 => 'XMP', 1 => 'XMP' },
- Flags => ['Writable', 'Protected', 'Binary'],
+ Flags => ['Writable', 'Protected', 'Binary', 'DelGroup'],
Priority => 0, # so main xmp (which usually comes first) takes priority
WriteCheck => q{
require Image::ExifTool::XMP;
@@ -1416,7 +1416,7 @@ my %systemTagsNotes = (
requested
},
Groups => { 0 => 'ICC_Profile', 1 => 'ICC_Profile' },
- Flags => ['Writable' ,'Protected', 'Binary'],
+ Flags => ['Writable' ,'Protected', 'Binary', 'DelGroup'],
WriteCheck => q{
require Image::ExifTool::ICC_Profile;
return Image::ExifTool::ICC_Profile::ValidateICC(\$val);
@@ -1428,7 +1428,7 @@ my %systemTagsNotes = (
specifically requested
},
Groups => { 0 => 'CanonVRD', 1 => 'CanonVRD' },
- Flags => ['Writable' ,'Protected', 'Binary'],
+ Flags => ['Writable' ,'Protected', 'Binary', 'DelGroup'],
Permanent => 0, # (this is 1 by default for MakerNotes tags)
WriteCheck => q{
return undef if $val =~ /^CANON OPTIONAL DATA\0/;
@@ -1973,8 +1973,10 @@ sub Options($$;@)
}
}
$oldVal = $$options{$param};
- # get previous Compact/XMPShorthand setting
- $oldVal = $$oldVal{$param} if ref $oldVal eq 'HASH';
+ if (ref $oldVal eq 'HASH' and ($param eq 'Compact' or $param eq 'XMPShorthand')) {
+ # get previous Compact/XMPShorthand setting
+ $oldVal = $$oldVal{$param};
+ }
last unless @_;
my $newVal = shift;
if ($param eq 'Lang') {
@@ -2187,7 +2189,6 @@ sub ClearOptions($)
MissingTagValue =>undef,# value for missing tags when expanded in expressions
NoPDFList => undef, # flag to avoid splitting PDF List-type tag values
Password => undef, # password for password-protected PDF documents
- PNGEarlyXMP => undef, # write XMP in PNG images before IDAT chunk
PrintConv => 1, # flag to enable print conversion
QuickTimeHandler => undef, # flag to add mdir Handler to newly created Meta box
QuickTimeUTC=> undef, # assume that QuickTime date/time tags are stored as UTC
@@ -6245,7 +6246,7 @@ sub ProcessJPEG($$)
DirStart(\%dirInfo, 4);
$self->ProcessDirectory(\%dirInfo, $tagTablePtr);
}
- } elsif ($marker == 0xe1) { # APP1 (EXIF, XMP, QVCI)
+ } elsif ($marker == 0xe1) { # APP1 (EXIF, XMP, QVCI, PARROT)
# (some Kodak cameras don't put a second "\0", and I have seen an
# example where there was a second 4-byte APP1 segment header)
if ($$segDataPt =~ /^(.{0,4})Exif\0/is) {
@@ -6389,6 +6390,11 @@ sub ProcessJPEG($$)
} else {
$self->WarnOnce('Invalid or extraneous FLIR chunk(s)');
}
+ } elsif ($$segDataPt =~ /^PARROT\0(II\x2a\0|MM\0\x2a)/) {
+ # (don't know if this could span multiple segments)
+ my $tagTablePtr = GetTagTable('Image::ExifTool::JPEG::Main');
+ $self->HandleTag($tagTablePtr, 'APP1', $$segDataPt);
+ $dumpType = 'Parrot';
} else {
# Hmmm. Could be XMP, let's see
my $processed;
diff --git a/lib/Image/ExifTool.pod b/lib/Image/ExifTool.pod
index caad6b44..63620682 100644
--- a/lib/Image/ExifTool.pod
+++ b/lib/Image/ExifTool.pod
@@ -809,23 +809,6 @@ Password for reading/writing password-protected PDF documents. Ignored if a
password is not required. Character encoding of the password is determined
by the value of the Charset option at processing time. Default is undef.
-=item PNGEarlyXMP
-
-Flag to write XMP in PNG images before the IDAT (image data) chunk. By
-default, ExifTool adds new XMP to the end of a PNG file (just before IEND).
-This is allowed by the PNG and XMP specifications, but some utilities seem
-to ignore XMP if it comes after the image data. The PNGEarlyXMP option
-causes ExifTool to instead add new XMP before the PNG IDAT chunk. However,
-since ExifTool uses a single-pass writing algorithm, it has no way to tell
-if XMP already exists later in the file before writing the new XMP in this
-location. If this happens, a minor error is issued when the extra XMP is
-encountered, and the file is not written. Adding the L</IgnoreMinorErrors>
-option causes the XMP after IDAT to be deleted, thus resolving the conflict
-(at the expense of possible metadata loss), and allowing the file to be
-written. The PNGEarlyXMP option is applied automatically when deleting all
-XMP and writing new XMP back in one step. When reading, this option causes
-a warning to be issued if standard XMP is found after the IDAT chunk.
-
=item PrintConv
Flag to enable automatic print conversion. Also enables inverse
@@ -1057,9 +1040,9 @@ Binary, Charset, CharsetEXIF, CharsetFileName, CharsetID3, CharsetIPTC,
CharsetPhotoshop, CharsetQuickTime, CharsetRIFF, Composite, ExtendedXMP,
ExtractEmbedded, FastScan, FixBase, HtmlDump, HtmlDumpBase,
IgnoreMinorErrors, Lang, LargeFileSupport, MakerNotes, MDItemTags,
-NoPDFList, Password, PNGEarlyXMP, QuickTimeUTC (enforced 1904 time zero),
-RequestAll, RequestTags, ScanForXMP, Struct, TextOut, Unknown, Verbose,
-XAttrTags and XMPAutoConv.
+NoPDFList, Password, QuickTimeUTC (enforced 1904 time zero), RequestAll,
+RequestTags, ScanForXMP, Struct, TextOut, Unknown, Verbose, XAttrTags and
+XMPAutoConv.
=item Return Value:
@@ -1190,8 +1173,8 @@ called with a source file name.
The following ExifTool options are effective in the call to L</WriteInfo>:
ByteOrder, Charset, CharsetEXIF, CharsetFileName, CharsetIPTC, Compact,
-Compress, FixBase, IgnoreMinorErrors, Password, PNGEarlyXMP,
-QuickTimeHandler, Verbose and WriteMode.
+Compress, FixBase, IgnoreMinorErrors, Password, QuickTimeHandler, Verbose
+and WriteMode.
=head2 GetTagList
diff --git a/lib/Image/ExifTool/Canon.pm b/lib/Image/ExifTool/Canon.pm
index 453d72d2..69984d44 100644
--- a/lib/Image/ExifTool/Canon.pm
+++ b/lib/Image/ExifTool/Canon.pm
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
sub ProcessExifInfo($$$);
sub SwapWords($);
-$VERSION = '4.18';
+$VERSION = '4.20';
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
@@ -213,6 +213,7 @@ $VERSION = '4.18';
103 => 'Samyang AF 14mm f/2.8 EF or Rokinon Lens', #IB
103.1 => 'Rokinon SP 14mm f/2.4', #IB
103.2 => 'Rokinon AF 14mm f/2.8 EF', #IB
+ 106 => 'Rokinon SP / Samyang XP 35mm f/1.2', #IB
124 => 'Canon MP-E 65mm f/2.8 1-5x Macro Photo', #9
125 => 'Canon TS-E 24mm f/3.5L',
126 => 'Canon TS-E 45mm f/2.8', #15
@@ -268,6 +269,7 @@ $VERSION = '4.18';
150.2 => 'Sigma 30mm f/1.4 DC HSM', #15
150.3 => 'Sigma 24mm f/1.8 DG Macro EX', #15
150.4 => 'Sigma 28mm f/1.8 DG Macro EX', #IB
+ 150.5 => 'Sigma 18-35mm f/1.8 DC HSM | A', #IB
151 => 'Canon EF 200mm f/2.8L USM',
152 => 'Canon EF 300mm f/4L IS USM or Sigma Lens', #15
152.1 => 'Sigma 12-24mm f/4.5-5.6 EX DG ASPHERICAL HSM', #15
@@ -281,7 +283,8 @@ $VERSION = '4.18';
153.4 => 'Tamron 18-250mm f/3.5-6.3 Di II LD Aspherical [IF] Macro', #PH
154 => 'Canon EF 20mm f/2.8 USM or Zeiss Lens', #15
154.1 => 'Zeiss Milvus 21mm f/2.8', #IB
- 155 => 'Canon EF 85mm f/1.8 USM',
+ 155 => 'Canon EF 85mm f/1.8 USM or Sigma Lens',
+ 155.1 => 'Sigma 14mm f/1.8 DG HSM | A', #IB (A017)
156 => 'Canon EF 28-105mm f/3.5-4.5 USM or Tamron Lens',
156.1 => 'Tamron SP 70-300mm f/4-5.6 Di VC USD', #PH (model A005)
156.2 => 'Tamron SP AF 28-105mm f/2.8 LD Aspherical IF', #JR (Model 176D)
@@ -344,6 +347,7 @@ $VERSION = '4.18';
180.7 => 'Sigma 50mm f/1.5 FF High-Speed Prime | 017', #IB
180.8 => 'Sigma 85mm f/1.5 FF High-Speed Prime | 017', #IB
180.9 => 'Tokina Opera 50mm f/1.4 FF', #IB
+ '180.10' => 'Sigma 20mm f/1.4 DG HSM | A', #IB (015)
181 => 'Canon EF 100-400mm f/4.5-5.6L IS USM + 1.4x or Sigma Lens', #15
181.1 => 'Sigma 150-600mm f/5-6.3 DG OS HSM | S + 1.4x', #50
182 => 'Canon EF 100-400mm f/4.5-5.6L IS USM + 2x or Sigma Lens',
@@ -446,6 +450,7 @@ $VERSION = '4.18';
368.4 => 'Sigma 60-600mm f/4.5-6.3 DG OS HSM | S', #IB (018)
368.5 => 'Sigma 28mm f/1.4 DG HSM | A', #IB (A019)
368.6 => 'Sigma 150-600mm f/5-6.3 DG OS HSM | S', #50
+ 368.7 => 'Sigma 85mm f/1.4 DG HSM | A', #IB (016)
# Note: LensType 488 (0x1e8) is reported as 232 (0xe8) in 7D CameraSettings
488 => 'Canon EF-S 15-85mm f/3.5-5.6 IS USM', #PH
489 => 'Canon EF 70-300mm f/4-5.6L IS USM', #Gerald Kapounek
@@ -506,7 +511,7 @@ $VERSION = '4.18';
4154 => 'Canon EF-S 24mm f/2.8 STM', #IB
4155 => 'Canon EF-M 28mm f/3.5 Macro IS STM', #42
4156 => 'Canon EF 50mm f/1.8 STM', #42
- 4157 => 'Canon EF-M 18-150mm 1:3.5-6.3 IS STM', #42
+ 4157 => 'Canon EF-M 18-150mm f/3.5-6.3 IS STM', #42
4158 => 'Canon EF-S 18-55mm f/4-5.6 IS STM', #PH
4159 => 'Canon EF-M 32mm f/1.4 STM', #42
4160 => 'Canon EF-S 35mm f/2.8 Macro IS STM', #42
@@ -524,6 +529,7 @@ $VERSION = '4.18';
61182.1 => 'Canon RF 50mm F1.2 L USM', #IB
61182.2 => 'Canon RF 24-105mm F4 L IS USM', #IB
61182.3 => 'Canon RF 28-70mm F2 L USM', #IB
+ 61182.4 => 'Canon RF 85mm F1.2L USM', #IB
65535 => 'n/a',
);
@@ -768,6 +774,7 @@ $VERSION = '4.18';
0x4180000 => 'PowerShot G1 X Mark III', #IB
0x6040000 => 'PowerShot S100 / Digital IXUS / IXY Digital',
0x801 => 'PowerShot SX740 HS',
+ 0x804 => 'PowerShot G5 X Mark II',
0x805 => 'PowerShot SX70 HS',
0x808 => 'PowerShot G7 X Mark III',
@@ -8422,6 +8429,7 @@ my %filterConv = (
},
# CTBO - (CR3 files) int32u entry count N, N x (int32u index, int64u offset, int64u size)
# index: 1=XMP, 2=PRVW, 3=mdat, 4=?, 5=?
+ # --> ignored when reading, but offsets are updated when writing
CMT1 => { # (CR3 files)
Name => 'IFD0',
SubDirectory => {
diff --git a/lib/Image/ExifTool/Exif.pm b/lib/Image/ExifTool/Exif.pm
index 603f06a2..6fd06737 100644
--- a/lib/Image/ExifTool/Exif.pm
+++ b/lib/Image/ExifTool/Exif.pm
@@ -42,6 +42,7 @@
# 29) http://www.libtiff.org
# 30) http://geotiff.maptools.org/spec/geotiffhome.html
# 31) https://android.googlesource.com/platform/external/dng_sdk/+/refs/heads/master/source/dng_tag_codes.h
+# 32) Jeffry Friedl private communication
# IB) Iliah Borg private communication (LibRaw)
# JD) Jens Duttke private communication
#------------------------------------------------------------------------------
@@ -55,7 +56,7 @@ use vars qw($VERSION $AUTOLOAD @formatSize @formatName %formatNumber %intFormat
use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::MakerNotes;
-$VERSION = '4.19';
+$VERSION = '4.21';
sub ProcessExif($$$);
sub WriteExif($$$);
@@ -2552,11 +2553,11 @@ my %sampleFormat = (
PrintConv => {
0 => 'Normal',
1 => 'Custom',
- # 2 - also seen (Apple iOS)
- 3 => 'HDR', # non-standard (Apple iOS)
- # 4 - also seen (Apple iOS) - normal image from iOS Camera app (ref http://regex.info/blog/lightroom-goodies/metadata-presets)
+ 2 => 'HDR (no original saved)', #32 non-standard (Apple iOS)
+ 3 => 'HDR (original saved)', #32 non-standard (Apple iOS)
+ 4 => 'Original (for HDR)', #32 non-standard (Apple iOS)
6 => 'Panorama', # non-standard (Apple iOS, horizontal or vertical)
- # 7 - also seen (Apple iOS)
+ 7 => 'Portrait HDR', #32 non-standard (Apple iOS)
8 => 'Portrait', # non-standard (Apple iOS, blurred background)
# 9 - also seen (Apple iOS) (HDR Portrait?)
},
@@ -5243,7 +5244,8 @@ sub PrintLensID($$@)
$lensTypePrt = $$printConv{$lensType} if $$printConv{$lensType};
}
}
- } elsif ($shortFocal and $longFocal) {
+ # (Min/MaxFocalLength may report the current focal length for Tamron zoom lenses)
+ } elsif ($shortFocal and $longFocal and (not $lensModel or $lensModel !~ /^TAMRON.*-\d+mm/)) {
# Canon (and some other makes) include makernote information
# which allows better lens identification
require Image::ExifTool::Canon;
diff --git a/lib/Image/ExifTool/FujiFilm.pm b/lib/Image/ExifTool/FujiFilm.pm
index 9f8379c6..289ad5c6 100644
--- a/lib/Image/ExifTool/FujiFilm.pm
+++ b/lib/Image/ExifTool/FujiFilm.pm
@@ -30,7 +30,7 @@ use vars qw($VERSION);
use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::Exif;
-$VERSION = '1.72';
+$VERSION = '1.73';
sub ProcessFujiDir($$$);
sub ProcessFaceRec($$$);
@@ -453,8 +453,9 @@ my %faceCategories = (
0x104d => { #forum9634
Name => 'CropMode',
Writable => 'int16u',
- PrintConv => {
+ PrintConv => { # (perhaps this is a bit mask?)
0 => 'n/a',
+ 1 => 'Full-frame on GFX', #IB
2 => 'Sports Finder Mode', # (mechanical shutter)
4 => 'Electronic Shutter 1.25x Crop', # (continuous high)
},
diff --git a/lib/Image/ExifTool/JPEG.pm b/lib/Image/ExifTool/JPEG.pm
index 1e8d9afd..1ca594d4 100644
--- a/lib/Image/ExifTool/JPEG.pm
+++ b/lib/Image/ExifTool/JPEG.pm
@@ -11,7 +11,7 @@ use strict;
use vars qw($VERSION);
use Image::ExifTool qw(:DataAccess :Utils);
-$VERSION = '1.28';
+$VERSION = '1.29';
sub ProcessOcad($$$);
sub ProcessJPEG_HDR($$$);
@@ -63,6 +63,13 @@ sub ProcessJPEG_HDR($$$);
Name => 'FLIR',
Condition => '$$valPt =~ /^FLIR\0/',
SubDirectory => { TagTable => 'Image::ExifTool::FLIR::FFF' },
+ }, {
+ Name => 'RawThermalImage', # (from Parrot Bebop-Pro Thermal drone)
+ Condition => '$$valPt =~ /^PARROT\0(II\x2a\0|MM\0\x2a)/',
+ Groups => { 0 => 'APP1', 1 => 'Parrot', 2 => 'Preview' },
+ Notes => 'thermal image from Parrot Bebop-Pro Thermal drone',
+ RawConv => 'substr($val, 7)',
+ Binary => 1,
}],
APP2 => [{
Name => 'ICC_Profile',
diff --git a/lib/Image/ExifTool/Lang/ru.pm b/lib/Image/ExifTool/Lang/ru.pm
index 83ed118d..895a856f 100644
--- a/lib/Image/ExifTool/Lang/ru.pm
+++ b/lib/Image/ExifTool/Lang/ru.pm
@@ -11,95 +11,95 @@ package Image::ExifTool::Lang::ru;
use strict;
use vars qw($VERSION);
-$VERSION = '1.05';
+$VERSION = '1.06';
%Image::ExifTool::Lang::ru::Translate = (
- 'A100DataOffset' => 'Смещение данных (для Sony A100)',
+ 'A100DataOffset' => 'Смещение данных (Sony A100)',
'ARMIdentifier' => 'Идентификатор ARM',
'ARMVersion' => 'Версия ARM',
- 'Acceleration' => 'Скорость движения',
+ 'Acceleration' => 'Ускорение',
'ActionAdvised' => {
Description => 'Рекомендуемое действие',
PrintConv => {
'Object Append' => 'Добавить объект',
'Object Kill' => 'Уничтожить объект',
- 'Object Reference' => 'Сделать ссылку на объект',
+ 'Object Reference' => 'Ссылка на объект',
'Object Replace' => 'Заменить объект',
},
},
'ActiveArea' => 'Активная область',
'Address' => 'Адресс',
- 'AdventRevision' => 'Advent - Ревизия',
- 'AdventScale' => 'Advent - Масштаб',
- 'AffineTransformMat' => 'Аффинное преобразование матрицы',
+ 'AdventRevision' => 'Проверка появления',
+ 'AdventScale' => 'Масштаб появления',
+ 'AffineTransformMat' => 'Аффинное матричное преобразование',
'Album' => 'Альбом',
- 'AliasLayerMetadata' => 'Alias - Метаданные слоя',
- 'AlphaByteCount' => 'Размер альфа-канала (байт)',
+ 'AliasLayerMetadata' => 'Псевдоним метаданных слоя',
+ 'AlphaByteCount' => 'Число байтов альфа-канала',
'AlphaDataDiscard' => {
- Description => 'Удаленные данные из альфа-канала после сжатия',
+ Description => 'Отброшенные данные альфа-канала',
PrintConv => {
- 'Flexbits Discarded' => 'Удалены данные Flexbits',
+ 'Flexbits Discarded' => 'Гибкие биты отброшены',
'Full Resolution' => 'Полное разрешение',
- 'HighPass Frequency Data Discarded' => 'Удалены данные о высоких частотах',
- 'Highpass and LowPass Frequency Data Discarded' => 'Удалены данные о высоких и низких частотах',
+ 'HighPass Frequency Data Discarded' => 'Данные высоких частот отброшены',
+ 'Highpass and LowPass Frequency Data Discarded' => 'Данные высоких и низких частот отброшены',
},
},
'AlphaOffset' => 'Смещение альфа-канала',
'AmbientTemperature' => 'Температура окружающей среды',
'AnalogBalance' => 'Аналоговый баланс белого',
- 'Annotation' => 'Аннотация',
- 'AnnotationUsageRights' => 'Права на использование Аннотации',
- 'Annotations' => 'Аннотации',
+ 'Annotation' => 'Примечание',
+ 'AnnotationUsageRights' => 'Право использования примечания',
+ 'Annotations' => 'Примечания',
'AntiAliasStrength' => 'Сила сглаживания',
'Aperture' => 'Диафрагма',
- 'ApertureValue' => 'Диафрагма',
- 'AppleKeywords' => 'Apple - Ключевые слова',
- 'ApplicationNotes' => 'Примечания приложения',
- 'ApplicationRecordVersion' => 'Версия Application Record',
- 'Artist' => 'Автор',
- 'AsShotICCProfile' => 'ICC профиль при съёмке',
+ 'ApertureValue' => 'Значение диафрагмы',
+ 'AppleKeywords' => 'Ключевые слова Apple',
+ 'ApplicationNotes' => 'Заметки приложения',
+ 'ApplicationRecordVersion' => 'Версия записи приложения',
+ 'Artist' => 'Артист',
+ 'AsShotICCProfile' => 'ICC-профиль при съёмке',
'AsShotNeutral' => 'Нейтральный цвет при съёмке',
- 'AsShotPreProfileMatrix' => 'Pre профиль матрицы при съёмке',
+ 'AsShotPreProfileMatrix' => 'Предварительный профиль матрицы при съёмке',
'AsShotProfileName' => 'Имя профиля при съёмке',
- 'AsShotWhiteXY' => 'Белый XY при съёмке',
+ 'AsShotWhiteXY' => 'XY белого при съёмке',
'AudioDuration' => 'Продолжительность аудио',
- 'AudioOutcue' => 'Заключительные слова аудио',
- 'AudioSamplingRate' => 'Частота дискретизации',
- 'AudioSamplingResolution' => 'Разрядность аудио',
+ 'AudioOutcue' => 'Выходной сигнал аудио',
+ 'AudioSamplingRate' => 'Частота дискретизации аудио',
+ 'AudioSamplingResolution' => 'Разрядность дискретизации аудио',
'AudioType' => {
Description => 'Тип аудио',
PrintConv => {
- 'Mono Actuality' => 'Моно - Актуальное',
- 'Mono Music' => 'Моно - Музыка',
- 'Mono Question and Answer Session' => 'Моно - Сеанс вопросов и ответов',
- 'Mono Raw Sound' => 'Моно - Raw Sound',
- 'Mono Response to a Question' => 'Моно - Ответ на вопрос',
- 'Mono Scener' => 'Моно - Сцена',
- 'Mono Voicer' => 'Моно - Голос',
- 'Mono Wrap' => 'Моно - Wrap',
- 'Stereo Actuality' => 'Стерео - Актуальное',
- 'Stereo Music' => 'Стерео - Музыка',
- 'Stereo Question and Answer Session' => 'Стерео - Сеанс вопросов и ответов',
- 'Stereo Raw Sound' => 'Стерео - Raw Sound',
- 'Stereo Response to a Question' => 'Стерео - Ответ на вопрос',
- 'Stereo Scener' => 'Стерео - Сцена',
- 'Stereo Voicer' => 'Стерео - Голос',
- 'Stereo Wrap' => 'Стерео - Wrap',
+ 'Mono Actuality' => 'Моно — Реальность',
+ 'Mono Music' => 'Моно — Музыка',
+ 'Mono Question and Answer Session' => 'Моно — Сессия вопроса и ответа',
+ 'Mono Raw Sound' => 'Моно — Сырой звук',
+ 'Mono Response to a Question' => 'Моно — Ответ на вопрос',
+ 'Mono Scener' => 'Моно — Сценер',
+ 'Mono Voicer' => 'Моно — Рупор',
+ 'Mono Wrap' => 'Моно — Обёртка',
+ 'Stereo Actuality' => 'Стерео — Реальность',
+ 'Stereo Music' => 'Стерео — Музыка',
+ 'Stereo Question and Answer Session' => 'Стерео — Сессия вопроса и ответа',
+ 'Stereo Raw Sound' => 'Стерео — Сырой звук',
+ 'Stereo Response to a Question' => 'Стерео — Ответ на вопрос',
+ 'Stereo Scener' => 'Стерео — Сценер',
+ 'Stereo Voicer' => 'Стерео — Рупор',
+ 'Stereo Wrap' => 'Стерео — Обёртка',
'Text Only' => 'Только текст',
},
},
- 'AuthenticationTime' => 'Электронная подпись - Время аутентификации',
- 'AuthenticationType' => 'Электронная подпись - Тип аутентификации',
+ 'AuthenticationTime' => 'Время аутентификации',
+ 'AuthenticationType' => 'Тип аутентификации',
'Author' => 'Автор',
'AuthorsPosition' => 'Должность автора',
'BackgroundColorIndicator' => {
Description => 'Цвет фона',
PrintConv => {
- 'Specified Background Color' => 'Указан',
- 'Unspecified Background Color' => 'Не указан',
+ 'Specified Background Color' => 'Указанный цвет фона',
+ 'Unspecified Background Color' => 'Не указанный цвет фона',
},
},
- 'BackgroundColorValue' => 'Значение фонового цвета',
+ 'BackgroundColorValue' => 'Значение цвета фона',
'BadFaxLines' => 'Количество битых строк',
'BaselineExposure' => 'Базовая экспозиция',
'BaselineExposureOffset' => 'Сдвиг базовой экспозиции',
@@ -109,119 +109,119 @@ $VERSION = '1.05';
'BayerGreenSplit' => 'Разделение зелёных каналов в матрице Байера',
'BestQualityScale' => 'Оптимальный масштаб',
'BitsPerComponent' => 'Количество бит на компонент',
- 'BitsPerExtendedRunLength' => 'Число битов для кодирования длины длинного запуска.',
+ 'BitsPerExtendedRunLength' => 'Число битов для кодирования длины длинного запуска',
'BitsPerRunLength' => 'Число битов для кодирования длины короткого запуска',
'BitsPerSample' => 'Количество бит на компонент',
'BlackLevel' => 'Уровень чёрного',
- 'BlackLevelBlue' => 'Уровень чёрного - Синий',
- 'BlackLevelDeltaH' => 'Уровень чёрного - Delta H',
- 'BlackLevelDeltaV' => 'Уровень чёрного - Delta V',
- 'BlackLevelGreen' => 'Уровень чёрного - Зелёный',
- 'BlackLevelRed' => 'Уровень чёрного - Красный',
- 'BlackLevelRepeatDim' => 'Уровень чёрного - Повтор размера патерна',
+ 'BlackLevelBlue' => 'Уровень чёрного — Синий',
+ 'BlackLevelDeltaH' => 'Уровень чёрного — Delta H',
+ 'BlackLevelDeltaV' => 'Уровень чёрного — Delta V',
+ 'BlackLevelGreen' => 'Уровень чёрного — Зелёный',
+ 'BlackLevelRed' => 'Уровень чёрного — Красный',
+ 'BlackLevelRepeatDim' => 'Уровень чёрного — Повтор размера патерна',
'BlueBalance' => 'Баланс синего',
'BookTitle' => 'Название книги',
'Brightness' => 'Яркость',
- 'BrightnessValue' => 'Яркость',
+ 'BrightnessValue' => 'Значение яркость',
'By-line' => 'Автор',
'By-lineTitle' => 'Титул автора',
'CFALayout' => {
- Description => 'Структура CFA',
+ Description => 'Макет CFA',
PrintConv => {
'Even columns offset down 1/2 row' => 'Чётные столбцы смещены вниз на 1/2 строки',
'Even columns offset up 1/2 row' => 'Чётные столбцы смещены вверх 1/2 строки',
'Even rows offset down by 1/2 row, even columns offset left by 1/2 column' => 'Чётные строки смещены вниз на 1/2 строки, чётные столбцы смещены влево на 1/2 столбца',
'Even rows offset down by 1/2 row, even columns offset right by 1/2 column' => 'Чётные строки смещены вниз на 1/2 строки, чётные столбцы смещены вправо на 1/2 столбца',
- 'Even rows offset left 1/2 column' => 'Чётные строки смещены влево 1/2 столбца',
- 'Even rows offset right 1/2 column' => 'Чётные строки смещены вправо 1/2 столбца',
+ 'Even rows offset left 1/2 column' => 'Чётные строки смещены влево на 1/2 столбца',
+ 'Even rows offset right 1/2 column' => 'Чётные строки смещены вправо на 1/2 столбца',
'Even rows offset up by 1/2 row, even columns offset left by 1/2 column' => 'Чётные строки смещены вверх на 1/2 строки, чётные столбцы смещены влево на 1/2 столбца',
'Even rows offset up by 1/2 row, even columns offset right by 1/2 column' => 'Чётные строки смещены вверх на 1/2 строки, чётные столбцы смещены вправо на 1/2 столбца',
- 'Rectangular' => 'Прямоугольная (или квадратная) компоновка',
+ 'Rectangular' => 'Прямоугольная компоновка',
},
},
'CFAPattern' => {
- Description => 'CFA паттерн',
+ Description => 'Образец CFA',
PrintConv => {
- '[Blue,Green][Green,Red]' => '[Синий,Зелёный][Зелёный,Красный]',
- '[Green,Blue][Red,Green]' => '[Зелёный,Синий][Красный,Зелёный]',
- '[Green,Red][Blue,Green]' => '[Зелёный,Красный][Синий,Зелёный]',
- '[Red,Green][Green,Blue]' => '[Красный,Зелёный][Зелёный,Синий]',
- 'n/a' => 'Нет данных',
+ '[Blue,Green][Green,Red]' => '[Синий, Зелёный][Зелёный, Красный]',
+ '[Green,Blue][Red,Green]' => '[Зелёный, Синий][Красный, Зелёный]',
+ '[Green,Red][Blue,Green]' => '[Зелёный, Красный][Синий, Зелёный]',
+ '[Red,Green][Green,Blue]' => '[Красный, Зелёный][Зелёный, Синий]',
+ 'n/a' => 'Недоступно',
},
},
- 'CFAPattern2' => 'Паттерн CFA 2',
- 'CFAPlaneColor' => 'CFA - Цветовые плоскости',
- 'CFARepeatPatternDim' => 'Повторяющиеся паттерны CFA',
- 'CIP3DataFile' => 'CIP3 - Файл данных',
- 'CIP3Sheet' => 'CIP3 - Лист',
- 'CIP3Side' => 'CIP3 - Сторона',
+ 'CFAPattern2' => 'Образец CFA 2',
+ 'CFAPlaneColor' => 'Цветовые плоскости CFA',
+ 'CFARepeatPatternDim' => 'Повторяющиеся образцы CFA',
+ 'CIP3DataFile' => 'Файл данных CIP3',
+ 'CIP3Sheet' => 'Лист CIP3',
+ 'CIP3Side' => 'Сторона CIP3',
'CMYKEquivalent' => 'Эквивалент CMYK',
'CR2CFAPattern' => {
- Description => 'CR2 - Паттерны CFA',
+ Description => 'CR2-образец CFA',
PrintConv => {
- '[Blue,Green][Green,Red]' => '[Синий,Зеленый][Зеленый,Красный]',
- '[Green,Blue][Red,Green]' => '[Зеленый,Синий][Красный,Зеленый]',
- '[Green,Red][Blue,Green]' => '[Зеленый,Красный][Синий,Зеленый]',
- '[Red,Green][Green,Blue]' => '[Красный,Зеленый][Зеленый,Синий]',
+ '[Blue,Green][Green,Red]' => '[Синий, Зеленый][Зеленый, Красный]',
+ '[Green,Blue][Red,Green]' => '[Зеленый, Синий][Красный, Зеленый]',
+ '[Green,Red][Blue,Green]' => '[Зеленый, Красный][Синий, Зеленый]',
+ '[Red,Green][Green,Blue]' => '[Красный, Зеленый][Зеленый, Синий]',
},
},
- 'CacheVersion' => 'Версия хеш-суммы',
+ 'CacheVersion' => 'Версия кэша',
'CalibrationIlluminant1' => {
- Description => 'Калибровочное освещение №1',
- PrintConv => {
- 'Cloudy' => 'Облачно (6500К)',
- 'Cool White Fluorescent' => 'Флуоресцентная лампа - Холодный свет (4150К)',
- 'D50' => 'D50 (5000К)',
- 'D55' => 'D55 (5500К)',
- 'D65' => 'D65 (6500К)',
- 'D75' => 'D75 (7500К)',
- 'Day White Fluorescent' => 'Флуоресцентная лампа - Дневной белый (5050К)',
- 'Daylight' => 'Дневной свет (5500К)',
- 'Daylight Fluorescent' => 'Флуоресцентная лампа дневного света (6400К)',
- 'Fine Weather' => 'Ясная погода (5500К)',
- 'Flash' => 'Вспышка (5500К)',
- 'Fluorescent' => 'Флуоресцентная лампа (4150К)',
- 'ISO Studio Tungsten' => 'Студийная лампа накаливания (3200К)',
+ Description => 'Калибровочное освещение 1',
+ PrintConv => {
+ 'Cloudy' => 'Облачно (6500 К)',
+ 'Cool White Fluorescent' => 'Флуоресцентная лампа — Холодный свет (4150 К)',
+ 'D50' => 'D50 (5000 К)',
+ 'D55' => 'D55 (5500 К)',
+ 'D65' => 'D65 (6500 К)',
+ 'D75' => 'D75 (7500 К)',
+ 'Day White Fluorescent' => 'Флуоресцентная лампа — Дневной белый (5050 К)',
+ 'Daylight' => 'Дневной свет (5500 К)',
+ 'Daylight Fluorescent' => 'Флуоресцентная лампа дневного света (6400 К)',
+ 'Fine Weather' => 'Ясная погода (5500 К)',
+ 'Flash' => 'Вспышка (5500 К)',
+ 'Fluorescent' => 'Флуоресцентная лампа (4150 К)',
+ 'ISO Studio Tungsten' => 'Студийная лампа накаливания (3200 К)',
'Other' => 'Другой источник света',
- 'Shade' => 'Тень (7500К)',
- 'Standard Light A' => 'Стандартное освещение A. (2850К)',
- 'Standard Light B' => 'Стандартное освещение B. (5500К)',
- 'Standard Light C' => 'Стандартное освещение C. (6500К)',
- 'Tungsten (Incandescent)' => 'Лампа накаливания (2850К)',
+ 'Shade' => 'Тень (7500 К)',
+ 'Standard Light A' => 'Стандартное освещение A (2850 К)',
+ 'Standard Light B' => 'Стандартное освещение B (5500 К)',
+ 'Standard Light C' => 'Стандартное освещение C (6500 К)',
+ 'Tungsten (Incandescent)' => 'Лампа накаливания (2850 К)',
'Unknown' => 'Неизвестно',
- 'Warm White Fluorescent' => 'Флуоресцентная лампа - Тёплый свет (2925К)',
- 'White Fluorescent' => 'Флуоресцентная лампа - Белый свет (3525К)',
+ 'Warm White Fluorescent' => 'Флуоресцентная лампа — Тёплый свет (2925 К)',
+ 'White Fluorescent' => 'Флуоресцентная лампа — Белый свет (3525 К)',
},
},
'CalibrationIlluminant2' => {
- Description => 'Калибровочное освещение №2',
- PrintConv => {
- 'Cloudy' => 'Облачно (6500К)',
- 'Cool White Fluorescent' => 'Флуоресцентная лампа - Холодный свет (4150К)',
- 'D50' => 'D50 (5000К)',
- 'D55' => 'D55 (5500К)',
- 'D65' => 'D65 (6500К)',
- 'D75' => 'D75 (7500К)',
- 'Day White Fluorescent' => 'Флуоресцентная лампа - Дневной белый (5050К)',
- 'Daylight' => 'Дневной свет (5500К)',
- 'Daylight Fluorescent' => 'Флуоресцентная лампа дневного света (6400К)',
- 'Fine Weather' => 'Ясная погода (5500К)',
- 'Flash' => 'Вспышка (5500К)',
- 'Fluorescent' => 'Флуоресцентная лампа (4150К)',
- 'ISO Studio Tungsten' => 'Студийная лампа накаливания (3200К)',
+ Description => 'Калибровочное освещение 2',
+ PrintConv => {
+ 'Cloudy' => 'Облачно (6500 К)',
+ 'Cool White Fluorescent' => 'Флуоресцентная лампа — Холодный свет (4150 К)',
+ 'D50' => 'D50 (5000 К)',
+ 'D55' => 'D55 (5500 К)',
+ 'D65' => 'D65 (6500 К)',
+ 'D75' => 'D75 (7500 К)',
+ 'Day White Fluorescent' => 'Флуоресцентная лампа — Дневной белый (5050 К)',
+ 'Daylight' => 'Дневной свет (5500 К)',
+ 'Daylight Fluorescent' => 'Флуоресцентная лампа дневного света (6400 К)',
+ 'Fine Weather' => 'Ясная погода (5500 К)',
+ 'Flash' => 'Вспышка (5500 К)',
+ 'Fluorescent' => 'Флуоресцентная лампа (4150 К)',
+ 'ISO Studio Tungsten' => 'Студийная лампа накаливания (3200 К)',
'Other' => 'Другой источник света',
- 'Shade' => 'Тень (7500К)',
- 'Standard Light A' => 'Стандартное освещение A. (2850К)',
- 'Standard Light B' => 'Стандартное освещение B. (5500К)',
- 'Standard Light C' => 'Стандартное освещение C. (6500К)',
- 'Tungsten (Incandescent)' => 'Лампа накаливания (2850К)',
- 'Unknown' => 'Неизвестный',
- 'Warm White Fluorescent' => 'Флуоресцентная лампа - Тёплый свет (2925К)',
- 'White Fluorescent' => 'Флуоресцентная лампа - Белый свет (3525К)',
- },
- },
- 'CameraCalibration1' => 'Калибровочная матрица фотокамеры №1',
- 'CameraCalibration2' => 'Калибровочная матрица фотокамеры №2',
+ 'Shade' => 'Тень (7500 К)',
+ 'Standard Light A' => 'Стандартное освещение A (2850 К)',
+ 'Standard Light B' => 'Стандартное освещение B (5500 К)',
+ 'Standard Light C' => 'Стандартное освещение C (6500 К)',
+ 'Tungsten (Incandescent)' => 'Лампа накаливания (2850 К)',
+ 'Unknown' => 'Неизвестно',
+ 'Warm White Fluorescent' => 'Флуоресцентная лампа — Тёплый свет (2925 К)',
+ 'White Fluorescent' => 'Флуоресцентная лампа — Белый свет (3525 К)',
+ },
+ },
+ 'CameraCalibration1' => 'Калибровочная матрица фотокамеры 1',
+ 'CameraCalibration2' => 'Калибровочная матрица фотокамеры 2',
'CameraCalibrationSig' => 'Сигнатура калибровки камеры',
'CameraElevationAngle' => 'Угол обзора камеры',
'CameraLabel' => 'Название камеры',
@@ -241,7 +241,7 @@ $VERSION = '1.05';
PrintConv => {
'Auto' => 'Автоматическая',
'No correction params available' => 'Недоступна',
- 'Off' => 'Не включена',
+ 'Off' => 'Отключена',
},
},
'City' => 'Город происхождения данных',
@@ -250,7 +250,7 @@ $VERSION = '1.05';
Description => 'Наличие битых строк',
PrintConv => {
'Clean' => 'Без битых строк',
- 'Regenerated' => 'Битые строки восстановлены',
+ 'Regenerated' => 'Битые строки восстановлены',
'Unclean' => 'Битые строки не восстановлены',
},
},
@@ -261,10 +261,10 @@ $VERSION = '1.05';
PrintConv => {
'Baseline JPEG' => 'Базовое JPEG',
'JBIG color' => 'Цветное JBIG',
- 'Modified Huffman' => 'Одномерное - Модификация Хаффмана',
- 'Modified MR' => 'Двумерное - Modified Modified READ',
- 'Modified Read' => 'Двумерное - Modified READ',
- 'Unspecified compression' => 'Неуказанное сжатие',
+ 'Modified Huffman' => 'Одномерное — Модификация Хаффмана',
+ 'Modified MR' => 'Двумерное — Modified Modified READ',
+ 'Modified Read' => 'Двумерное — Modified READ',
+ 'Unspecified compression' => 'Не указанное сжатие',
},
},
'ColorCalibrationMatrix' => 'Матрица калибровки цвета',
@@ -276,20 +276,20 @@ $VERSION = '1.05';
},
'ColorFilter' => 'Цветовой фильтр',
'ColorMap' => 'Карта цветов',
- 'ColorMatrix1' => 'Цветовая матрица №1',
- 'ColorMatrix2' => 'Цветовая матрица №2',
+ 'ColorMatrix1' => 'Цветовая матрица 1',
+ 'ColorMatrix2' => 'Цветовая матрица 2',
'ColorMode' => {
- Description => 'ТворческийСтиль',
+ Description => 'Творческий Стиль',
PrintConv => {
'Autumn Leaves' => 'Осенние листья',
- 'B&W' => 'Черно-белое',
+ 'B&W' => 'Чёрно-белое',
'Clear' => 'Прозрачный',
'Deep' => 'Глубокий',
'Landscape' => 'Пейзаж',
'Light' => 'Бледный',
'Neutral' => 'Нейтральный',
'Night View' => 'Ночной вид',
- 'Night View/Portrait' => 'Ночной портрет',
+ 'Night View/Portrait' => 'Ночной вид/портрет',
'Portrait' => 'Портрет',
'Standard' => 'Стандартное',
'Sunset' => 'Закат',
@@ -317,12 +317,12 @@ $VERSION = '1.05';
},
},
'ColorResponseUnit' => 'Единицы цветовой чувствительности',
- 'ColorSequence' => 'Последовательность цветов отличной от CMYK',
+ 'ColorSequence' => 'Последовательность цветов',
'ColorSpace' => {
Description => 'Цветовое пространство',
PrintConv => {
- 'ICC Profile' => 'Профиль ICC',
- 'Uncalibrated' => 'Не указано',
+ 'ICC Profile' => 'ICC-профиль',
+ 'Uncalibrated' => 'Некалиброванный',
},
},
'ColorTable' => 'Таблица цвета',
@@ -335,51 +335,51 @@ $VERSION = '1.05';
PrintConv => {
'Composite Image Captured While Shooting' => 'Полученное во время съёмки',
'General Composite Image' => 'Созданное в редакторе',
- 'Not a Composite Image' => 'Нет',
+ 'Not a Composite Image' => 'Не составное изображение',
+ 'Unknown' => 'Неизвестно',
},
},
- 'CompositeImageCount' => 'Составное изображение - Количество',
- 'CompositeImageExposureTimes' => 'Составное изображение - Выдержка',
- 'CompressedBitsPerPixel' => 'Сжатые Биты на Пиксель',
+ 'CompositeImageCount' => 'Составное изображение — Количество',
+ 'CompositeImageExposureTimes' => 'Составное изображение — Выдержка',
+ 'CompressedBitsPerPixel' => 'Сжатые биты на пиксель',
'Compression' => {
Description => 'Метод сжатия',
PrintConv => {
- 'JPEG' => 'JPEG сжатие',
'JPEG (old-style)' => 'JPEG (старый стиль)',
- 'Uncompressed' => 'Без сжатия',
+ 'Uncompressed' => 'Несжатый',
},
},
'ConfirmedObjectSize' => 'Подтверждённый размер объекта',
- 'ConsecutiveBadFaxLines' => 'Количество последовательных битых строк ',
+ 'ConsecutiveBadFaxLines' => 'Количество последовательных битых строк',
'Contact' => 'Контакт',
'ContainerVersion' => 'Версия контейнера',
- 'ContentLocationCode' => 'Контент - Код страны',
- 'ContentLocationName' => 'Контент - Страна',
+ 'ContentLocationCode' => 'Контент — Код страны',
+ 'ContentLocationName' => 'Контент — Страна',
'Contrast' => {
Description => 'Контрастность',
PrintConv => {
'High' => 'Высокая',
'Low' => 'Низкая',
- 'Normal' => 'Стандартная',
+ 'Normal' => 'Обычная',
},
},
'Converter' => 'Конвертер',
'Copyright' => 'Авторское право',
- 'CopyrightNotice' => 'Авторское право',
+ 'CopyrightNotice' => 'Уведомление об авторских правах',
'Country' => 'Страна',
'Country-PrimaryLocationCode' => 'Код страны',
'Country-PrimaryLocationName' => 'Страна',
'CreateDate' => 'Дата создания',
'CreationDate' => 'Дата создания',
- 'Creator' => 'Создан в',
- 'CreatorVersion' => 'Версия исходного приложения',
+ 'Creator' => 'Создавшее приложение',
+ 'CreatorVersion' => 'Версия создавшего приложения',
'Credit' => 'Поставщик',
'CropBottom' => 'Обрезка снизу',
'CropLeft' => 'Обрезка слева',
'CropRight' => 'Обрезка справа',
'CropTop' => 'Обрезка сверху',
- 'CurrentICCProfile' => 'Текущий ICC профиль',
- 'CurrentPreProfileMatrix' => 'Текущий Pre профиль матрицы',
+ 'CurrentICCProfile' => 'Текущий ICC-профиль',
+ 'CurrentPreProfileMatrix' => 'Текущий предварительный профиль матрицы',
'CustomRendered' => {
Description => 'Пользовательский рендеринг',
PrintConv => {
@@ -389,11 +389,11 @@ $VERSION = '1.05';
'Portrait' => 'Портрет',
},
},
- 'DNGAdobeData' => 'DNG - Данные Adobe',
- 'DNGBackwardVersion' => 'DNG - Совместимая версия',
+ 'DNGAdobeData' => 'DNG — Данные Adobe',
+ 'DNGBackwardVersion' => 'DNG — Совместимая версия',
'DNGLensInfo' => 'Минимальное фокусное расстояние',
- 'DNGPrivateData' => 'DNG - Данные производителя',
- 'DNGVersion' => 'DNG - Версия',
+ 'DNGPrivateData' => 'DNG — Данные производителя',
+ 'DNGVersion' => 'DNG — Версия',
'DataCompressionMethod' => 'Метод сжатия данных',
'DataType' => 'Тип данных',
'DateCreated' => 'Дата создания',
@@ -401,10 +401,10 @@ $VERSION = '1.05';
'DateTimeOriginal' => 'Дата съёмки',
'Decode' => 'Декодирование',
'DefaultBlackRender' => {
- Description => 'Вычитание уровня чёрного',
+ Description => 'Приведение чёрного по-умолчанию',
PrintConv => {
'Auto' => 'Автоматически',
- 'None' => 'Не обрабатывать',
+ 'None' => 'Никак',
},
},
'DefaultCropOrigin' => 'Положение обрезанного изображения по-умолчанию',
@@ -416,38 +416,38 @@ $VERSION = '1.05';
'DeviceSettingDescription' => 'Описание предустановок камеры',
'DigitalCreationDate' => 'Дата создания файла',
'DigitalCreationTime' => 'Время создания файла',
- 'DigitalZoom' => 'Цифровой зум',
+ 'DigitalZoom' => 'Цифровое увеличение',
'DigitalZoomRatio' => 'Коэффициент цифрового увеличения',
- 'Directory' => '"Файл, размещение"',
+ 'Directory' => 'Каталог',
'DistortionCorrParams' => 'Параметры коррекции дисторсии',
'DistortionCorrection' => {
Description => 'Коррекция дисторсии',
PrintConv => {
'Auto' => 'Автоматическая',
'Auto fixed by lens' => 'Автоматическая по объективу',
- 'No correction params available' => 'Недоступна',
- 'Off' => 'Не включена',
+ 'No correction params available' => 'Корректирующие параметры недоступны',
+ 'Off' => 'Отключена',
},
},
'DjVuVersion' => 'Версия DjVu',
'DocumentHistory' => 'История документа',
'DocumentName' => 'Имя документа',
'DocumentNotes' => 'Комментарии к документу',
- 'DocumentUsageRights' => 'Права на использование Документа',
+ 'DocumentUsageRights' => 'Права на использование документа',
'DotRange' => 'Значения компонента соответствующих точке',
'DriveMode' => 'Режим спуска',
'DynamicRangeOptimizer' => {
- Description => 'Оптим.Д-диапаз.',
- PrintConv => {
- 'Advanced Auto' => 'Улучш.авто',
- 'Advanced Lv1' => 'Улучш.уровень1',
- 'Advanced Lv2' => 'Улучш.уровень2',
- 'Advanced Lv3' => 'Улучш.уровень3',
- 'Advanced Lv4' => 'Улучш.уровень4',
- 'Advanced Lv5' => 'Улучш.уровень5',
- 'Auto' => 'Авто',
- 'Off' => 'Отключено',
- 'Standard' => 'Стандартное',
+ Description => 'Оптимизатор динамического диапазона',
+ PrintConv => {
+ 'Advanced Auto' => 'Продвинутый автоматический',
+ 'Advanced Lv1' => 'Продвинутый 1-го уровня',
+ 'Advanced Lv2' => 'Продвинутый 2-го уровня',
+ 'Advanced Lv3' => 'Продвинутый 3-го уровня',
+ 'Advanced Lv4' => 'Продвинутый 4-го уровня',
+ 'Advanced Lv5' => 'Продвинутый 5-го уровня',
+ 'Auto' => 'Автоматический',
+ 'Off' => 'Отключён',
+ 'Standard' => 'Стандартный',
},
},
'EditStatus' => 'Статус редактирования',
@@ -458,26 +458,26 @@ $VERSION = '1.05';
'Additional language' => 'Дополнительный язык',
},
},
- 'EmbeddedFileUsageRights' => 'Права на использование Встроенных файлов',
+ 'EmbeddedFileUsageRights' => 'Права на использование встроенных файлов',
'EmbeddedImage' => 'Встроенное изображение',
- 'EmbeddedImageColorSpace' => 'Встроенное изображение - Цветовое пространство',
- 'EmbeddedImageFilter' => 'Встроенное изображение - Фильтр',
- 'EmbeddedImageHeight' => 'Встроенное изображение - Высота',
- 'EmbeddedImageWidth' => 'Встроенное изображение - Ширина',
+ 'EmbeddedImageColorSpace' => 'Встроенное изображение — Цветовое пространство',
+ 'EmbeddedImageFilter' => 'Встроенное изображение — Фильтр',
+ 'EmbeddedImageHeight' => 'Встроенное изображение — Высота',
+ 'EmbeddedImageWidth' => 'Встроенное изображение — Ширина',
'Encryption' => 'Шифрование',
'EndPoints' => 'Конечные точки',
'EnvelopeNumber' => 'Номер конверта',
'EnvelopePriority' => {
Description => 'Приоритет конверта',
PrintConv => {
- '0 (reserved)' => '0 (В резерве)',
- '1 (most urgent)' => '1 (Неотложное)',
- '5 (normal urgency)' => '5 (Обычное)',
- '8 (least urgent)' => '8 (Не срочное)',
- '9 (user-defined priority)' => '9 (Пользовательский приоритет)',
+ '0 (reserved)' => '0 (зарезервирован)',
+ '1 (most urgent)' => '1 (неотложный)',
+ '5 (normal urgency)' => '5 (обычный)',
+ '8 (least urgent)' => '8 (несрочный)',
+ '9 (user-defined priority)' => '9 (пользовательский приоритет)',
},
},
- 'EnvelopeRecordVersion' => 'Версия Envelope Record',
+ 'EnvelopeRecordVersion' => 'Версия записи конверта',
'ExcursionTolerance' => {
Description => 'Выход за пределы диапазона',
PrintConv => {
@@ -486,16 +486,16 @@ $VERSION = '1.05';
},
},
'ExifCameraInfo' => 'Сведения о камере из Exif',
- 'ExifImageHeight' => 'Exif - Высота изображения',
- 'ExifImageWidth' => 'Exif - Ширина изображения',
+ 'ExifImageHeight' => 'Exif — Высота изображения',
+ 'ExifImageWidth' => 'Exif — Ширина изображения',
'ExifOffset' => 'Exif IFD указатель',
'ExifVersion' => 'Версия Exif',
- 'ExpandFilm' => 'Expand - Пленка',
- 'ExpandFilterLens' => 'Expand - Фильтр объектива',
- 'ExpandFlashLamp' => 'Expand - Вспышка',
- 'ExpandLens' => 'Expand - Объектив',
- 'ExpandScanner' => 'Expand - Сканер',
- 'ExpandSoftware' => 'Expand - Приложение',
+ 'ExpandFilm' => 'Expand — Плёнка',
+ 'ExpandFilterLens' => 'Expand — Фильтр объектива',
+ 'ExpandFlashLamp' => 'Expand — Вспышка',
+ 'ExpandLens' => 'Expand — Объектив',
+ 'ExpandScanner' => 'Expand — Сканер',
+ 'ExpandSoftware' => 'Expand — Приложение',
'ExpirationDate' => 'Дата истечения срока',
'ExpirationTime' => 'Время истечения срока',
'Exposure' => 'Экспозиция',
@@ -513,15 +513,15 @@ $VERSION = '1.05';
Description => 'Программа экспозиции',
PrintConv => {
'Action (High speed)' => 'Спорт',
- 'Aperture-priority AE' => 'Автоэкспозиция с приоритетом Диафрагмы',
+ 'Aperture-priority AE' => 'Автоэкспозиция с приоритетом диафрагмы',
'Bulb' => 'Выдержка от руки',
'Creative (Slow speed)' => 'Творческая',
'Landscape' => 'Пейзаж',
'Manual' => 'Ручная',
- 'Not Defined' => 'Не определено',
+ 'Not Defined' => 'Не определена',
'Portrait' => 'Портрет',
'Program AE' => 'Программная автоэкспозиция',
- 'Shutter speed priority AE' => 'Автоэкспозиция с приоритетом Выдержки',
+ 'Shutter speed priority AE' => 'Автоэкспозиция с приоритетом выдержки',
},
},
'ExposureTime' => 'Выдержка',
@@ -529,38 +529,38 @@ $VERSION = '1.05';
Description => 'Описание дополнительных компонентов',
PrintConv => {
'Associated Alpha' => 'Связаные альфа-данные',
- 'Unassociated Alpha' => 'Не связанные альфа-данные',
- 'Unspecified' => 'Данные без указания',
+ 'Unassociated Alpha' => 'Несвязанные альфа-данные',
+ 'Unspecified' => 'Не указаны',
},
},
- 'FNumber' => 'Диафрагма',
+ 'FNumber' => 'Относительное отверстие',
'FaceOrientation' => {
PrintConv => {
- 'Horizontal (normal)' => 'Положительное направление',
+ 'Horizontal (normal)' => 'Горизонтально (обычно)',
'Rotate 180' => 'Поворот на 180°',
'Rotate 270 CW' => 'Поворот на 270° по часовой стрелке',
'Rotate 90 CW' => 'Поворот на 90° по часовой стрелке',
},
},
'FaxProfile' => {
- Description => 'Факс профиль',
+ Description => 'Факс-профиль',
PrintConv => {
- 'Extended B&W lossless, F' => 'Черно-белый без потерь расширенный, профиль F',
- 'Lossless JBIG B&W, J' => 'JBIG черно-белый без потерь, профиль J',
+ 'Extended B&W lossless, F' => 'Расширенный чёрно-белый без потерь, профиль F',
+ 'Lossless JBIG B&W, J' => 'JBIG чёрно-белый без потерь, профиль J',
'Lossless color and grayscale, L' => 'Цветной и с оттенками серого без потерь, профиль L',
'Lossy color and grayscale, C' => 'Цветной и с оттенками серого с потерями, профиль C',
- 'Minimal B&W lossless, S' => 'Минимальный черно-белый без потерь, профиль S',
+ 'Minimal B&W lossless, S' => 'Минимальный чёрно-белый без потерь, профиль S',
'Mixed raster content, M' => 'Смешанное содержимое растра, профиль M',
'Multi Profiles' => 'Несколько профилей',
'Profile T' => 'Профиль T',
- 'Unknown' => 'Не соответствует профилю факсимильной связи',
+ 'Unknown' => 'Неизвестно',
},
},
'FaxRecvParams' => 'Параметры получения факсов',
'FaxRecvTime' => 'Требуемое время для получения факса',
- 'FaxSubAddress' => 'Субадрес факса',
+ 'FaxSubAddress' => 'Подадрес факса',
'FieldPermissions' => {
- Description => 'Разрешения на изменение Полей',
+ Description => 'Разрешения доступа к полям',
PrintConv => {
'Allow changes to specified form fields' => 'Разрешить изменения в указанных полях формы',
'Disallow changes to all form fields' => 'Запретить изменения во всех полях формы',
@@ -575,13 +575,13 @@ $VERSION = '1.05';
Description => 'Источник файла',
PrintConv => {
'Digital Camera' => 'Цифровая фотокамера',
- 'Film Scanner' => 'Пленочный сканер',
+ 'Film Scanner' => 'Плёночный сканер',
'Reflection Print Scanner' => 'Планшетный сканер',
'Sigma Digital Camera' => 'Цифровая фотокамера Sigma',
},
},
'FileType' => 'Тип файла',
- 'FileVersion' => 'Версия формата',
+ 'FileVersion' => 'Версия файла',
'Filename' => 'Имя файла',
'FillOrder' => {
Description => 'Порядок битов в байте',
@@ -594,180 +594,180 @@ $VERSION = '1.05';
'Flash' => {
Description => 'Состояние вспышки при съёмке',
PrintConv => {
- 'Auto, Did not fire' => 'Автоматический режим. Вспышка не сработала.',
- 'Auto, Did not fire, Red-eye reduction' => 'Автоматический режим. Вспышка не сработала. Включен режим уменьшения эффекта "красных глаз". ',
- 'Auto, Fired' => 'Автоматический режим. Вспышка сработала.',
- 'Auto, Fired, Red-eye reduction' => 'Автоматический режим. Вспышка сработала.',
- 'Auto, Fired, Red-eye reduction, Return detected' => 'Автоматический режим. Вспышка сработала. Включен режим уменьшения эффекта "красных глаз". Отражённый свет обнаружен.',
- 'Auto, Fired, Red-eye reduction, Return not detected' => 'Автоматический режим. Вспышка сработала. Включен режим уменьшения эффекта "красных глаз". Отражённый свет не обнаружен.',
- 'Auto, Fired, Return detected' => 'Автоматический режим. Вспышка сработала. Отражённый свет обнаружен.',
- 'Auto, Fired, Return not detected' => 'Автоматический режим. Вспышка сработала. Отражённый свет не обнаружен.',
+ 'Auto, Did not fire' => 'Автоматический режим. Вспышка не сработала',
+ 'Auto, Did not fire, Red-eye reduction' => 'Автоматический режим. Вспышка не сработала. Включён режим уменьшения эффекта «красных глаз»',
+ 'Auto, Fired' => 'Автоматический режим. Вспышка сработала',
+ 'Auto, Fired, Red-eye reduction' => 'Автоматический режим. Вспышка сработала',
+ 'Auto, Fired, Red-eye reduction, Return detected' => 'Автоматический режим. Вспышка сработала. Включён режим уменьшения эффекта «красных глаз». Отражённый свет обнаружен',
+ 'Auto, Fired, Red-eye reduction, Return not detected' => 'Автоматический режим. Вспышка сработала. Включён режим уменьшения эффекта «красных глаз». Отражённый свет не обнаружен',
+ 'Auto, Fired, Return detected' => 'Автоматический режим. Вспышка сработала. Отражённый свет обнаружен',
+ 'Auto, Fired, Return not detected' => 'Автоматический режим. Вспышка сработала. Отражённый свет не обнаружен',
'Did not fire' => 'Вспышка не сработала',
- 'Fired' => 'Вспышка сработала.',
- 'Fired, Red-eye reduction' => 'Вспышка сработала. Включен режим уменьшения эффекта "красных глаз".',
- 'Fired, Red-eye reduction, Return detected' => 'Вспышка сработала. Включен режим уменьшения эффекта "красных глаз". Отражённый свет обнаружен.',
- 'Fired, Red-eye reduction, Return not detected' => 'Вспышка сработала. Включен режим уменьшения эффекта "красных глаз". Отражённый свет не обнаружен.',
- 'Fired, Return detected' => 'Вспышка сработала. Отражённый свет обнаружен.',
- 'Fired, Return not detected' => 'Вспышка сработала. Отражённый свет не обнаружен.',
- 'No Flash' => 'Без вспышки.',
- 'No flash function' => 'Функция вспышки не поддерживается.',
- 'Off, Did not fire' => 'Отключена. Вспышка не сработала.',
- 'Off, Did not fire, Return not detected' => 'Отключена. Вспышка не сработала. Отражённый свет не обнаружен.',
- 'Off, No flash function' => 'Вспышка отключена. Функция вспышки не поддерживается.',
- 'Off, Red-eye reduction' => 'Вспышка отключена. Включен режим уменьшения эффекта "красных глаз".',
- 'On, Did not fire' => 'Принудительный режим. Вспышка не сработала.',
- 'On, Fired' => 'Принудительный режим. Вспышка сработала.',
- 'On, Red-eye reduction' => 'Принудительный режим. Включен режим уменьшения эффекта "красных глаз".',
- 'On, Red-eye reduction, Return detected' => 'Принудительный режим. Включен режим уменьшения эффекта "красных глаз". Отражённый свет обнаружен.',
- 'On, Red-eye reduction, Return not detected' => 'Принудительный режим. Включен режим уменьшения эффекта "красных глаз". Отражённый свет не обнаружен.',
- 'On, Return detected' => 'Принудительный режим. Отражённый свет обнаружен.',
- 'On, Return not detected' => 'Принудительный режим. Отражённый свет не обнаружен.',
+ 'Fired' => 'Вспышка сработала',
+ 'Fired, Red-eye reduction' => 'Вспышка сработала. Включён режим уменьшения эффекта «красных глаз»',
+ 'Fired, Red-eye reduction, Return detected' => 'Вспышка сработала. Включён режим уменьшения эффекта «красных глаз». Отражённый свет обнаружен',
+ 'Fired, Red-eye reduction, Return not detected' => 'Вспышка сработала. Включён режим уменьшения эффекта «красных глаз». Отражённый свет не обнаружен',
+ 'Fired, Return detected' => 'Вспышка сработала. Отражённый свет обнаружен',
+ 'Fired, Return not detected' => 'Вспышка сработала. Отражённый свет не обнаружен',
+ 'No Flash' => 'Без вспышки',
+ 'No flash function' => 'Функция вспышки не поддерживается',
+ 'Off, Did not fire' => 'Отключена. Вспышка не сработала',
+ 'Off, Did not fire, Return not detected' => 'Отключена. Вспышка не сработала. Отражённый свет не обнаружен',
+ 'Off, No flash function' => 'Вспышка отключена. Функция вспышки не поддерживается',
+ 'Off, Red-eye reduction' => 'Вспышка отключена. Включён режим уменьшения эффекта «красных глаз»',
+ 'On, Did not fire' => 'Принудительный режим. Вспышка не сработала',
+ 'On, Fired' => 'Принудительный режим. Вспышка сработала',
+ 'On, Red-eye reduction' => 'Принудительный режим. Включён режим уменьшения эффекта «красных глаз»',
+ 'On, Red-eye reduction, Return detected' => 'Принудительный режим. Включён режим уменьшения эффекта «красных глаз». Отражённый свет обнаружен',
+ 'On, Red-eye reduction, Return not detected' => 'Принудительный режим. Включён режим уменьшения эффекта «красных глаз». Отражённый свет не обнаружен',
+ 'On, Return detected' => 'Принудительный режим. Отражённый свет обнаружен',
+ 'On, Return not detected' => 'Принудительный режим. Отражённый свет не обнаружен',
},
},
'FlashEnergy' => 'Мощность вспышки',
'FlashExposureComp' => 'Коррекция вспышки',
- 'FlashpixVersion' => 'Поддерживаемая версия Flashpix',
+ 'FlashpixVersion' => 'Версия Flashpix',
'FocalLength' => 'Фокусное расстояние',
- 'FocalLength35efl' => 'Фокусное расстояние (приведено к 35 мм)',
- 'FocalLengthIn35mmFormat' => 'Эквивалентное фокусное расстояние для 35-мм фотопленки',
+ 'FocalLength35efl' => 'Эквивалентное (35 мм) фокусное расстояние',
+ 'FocalLengthIn35mmFormat' => 'Фокусное расстояние для 35-мм формата',
'FocalPlaneResolutionUnit' => {
Description => 'Единицы разрешения в фокальной плоскости',
PrintConv => {
- 'None' => 'Не указано',
- 'cm' => 'см.',
+ 'None' => 'Никакая',
+ 'cm' => 'см',
'inches' => 'дюймы',
- 'mm' => 'мм.',
- 'um' => 'мкм.',
+ 'mm' => 'мм',
+ 'um' => 'мкм',
},
},
'FocalPlaneXResolution' => 'Разрешение в фокальной плоскости по X',
'FocalPlaneYResolution' => 'Разрешение в фокальной плоскости по Y',
'FocusMode' => 'Фокусировка',
- 'FormExtraUsageRights' => 'Права на использование Форм Extra',
+ 'FormExtraUsageRights' => 'Права на использование форм Extra',
'FormFields' => 'Поля форм',
- 'FormUsageRights' => 'Права на использование Форм',
- 'ForwardMatrix1' => 'Прямая матрица №1',
- 'ForwardMatrix2' => 'Прямая матрица №2',
- 'FovCot' => 'Угол обзора и Котангенс',
+ 'FormUsageRights' => 'Права на использование форм',
+ 'ForwardMatrix1' => 'Прямая матрица 1',
+ 'ForwardMatrix2' => 'Прямая матрица 2',
+ 'FovCot' => 'Угол обзора и котангенс',
'FrameRate' => 'Частота кадров',
- 'FrameSize' => '"Кадр, размер"',
+ 'FrameSize' => 'Размер кадра',
'FreeByteCounts' => 'Количество байтов в строке неиспользуемых байтов',
'FreeOffsets' => 'Смещение к строке неиспользуемых байтов',
- 'GDALMetadata' => 'GDAL - Метаданные',
- 'GDALNoData' => 'GDAL - Прозрачность',
- 'GPSAltitude' => ' GPS - Высота',
+ 'GDALMetadata' => 'GDAL — Метаданные',
+ 'GDALNoData' => 'GDAL — Прозрачность',
+ 'GPSAltitude' => 'GPS — Высота',
'GPSAltitudeRef' => {
- Description => ' GPS - Индекс высоты',
+ Description => 'GPS — Индекс высоты',
PrintConv => {
'Above Sea Level' => 'Над уровнем моря',
'Below Sea Level' => 'Ниже уровня моря',
},
},
- 'GPSAreaInformation' => ' GPS - Название области',
- 'GPSDOP' => ' GPS - Точность измерения',
- 'GPSDateStamp' => ' GPS - Дата и время',
- 'GPSDestBearing' => ' GPS - Пеленг объекта съёмки',
+ 'GPSAreaInformation' => 'GPS — Название области',
+ 'GPSDOP' => 'GPS — Точность измерения',
+ 'GPSDateStamp' => 'GPS — Дата и время',
+ 'GPSDestBearing' => 'GPS — Пеленг объекта съёмки',
'GPSDestBearingRef' => {
- Description => ' GPS - Ориентир пеленга объекта съёмки',
+ Description => 'GPS — Ориентир пеленга объекта съёмки',
PrintConv => {
'Magnetic North' => 'На магнитный северный полюс',
'True North' => 'На географический северный полюс',
},
},
- 'GPSDestDistance' => ' GPS - Расстояние до объекта съёмки',
+ 'GPSDestDistance' => 'GPS — Расстояние до объекта съёмки',
'GPSDestDistanceRef' => {
- Description => ' GPS - Единицы измерения расстояния',
+ Description => 'GPS — Единицы измерения расстояния',
PrintConv => {
'Kilometers' => 'Километры',
'Miles' => 'Мили',
'Nautical Miles' => 'Морские мили',
},
},
- 'GPSDestLatitude' => ' GPS - Широта объекта съёмки',
+ 'GPSDestLatitude' => 'GPS — Широта объекта съёмки',
'GPSDestLatitudeRef' => {
- Description => ' GPS - Индекс широты объекта съёмки',
+ Description => 'GPS — Индекс широты объекта съёмки',
PrintConv => {
'North' => 'Северная широта',
'South' => 'Южная широта',
},
},
- 'GPSDestLongitude' => ' GPS - Долгота объекта съёмки',
+ 'GPSDestLongitude' => 'GPS — Долгота объекта съёмки',
'GPSDestLongitudeRef' => {
- Description => ' GPS - Индекс долготы объекта съёмки',
+ Description => 'GPS — Индекс долготы объекта съёмки',
PrintConv => {
'East' => 'Восточная долгота',
'West' => 'Западная долгота',
},
},
'GPSDifferential' => {
- Description => ' GPS - Дифференциальная поправка',
+ Description => 'GPS — Дифференциальная поправка',
PrintConv => {
'Differential Corrected' => 'Дифференциальная поправка применена',
'No Correction' => 'Измерение без дифференциальной поправки',
},
},
- 'GPSHPositioningError' => ' GPS - Ошибка горизонтального позиционирования',
- 'GPSImgDirection' => ' GPS - Направления камеры при съёмке',
+ 'GPSHPositioningError' => 'GPS — Ошибка горизонтального позиционирования',
+ 'GPSImgDirection' => 'GPS — Направления камеры при съёмке',
'GPSImgDirectionRef' => {
- Description => ' GPS - Ориентир направления камеры',
+ Description => 'GPS — Ориентир направления камеры',
PrintConv => {
'Magnetic North' => 'На магнитный северный полюс',
'True North' => 'На географический северный полюс',
},
},
'GPSInfo' => 'IFD указатель информации GPS',
- 'GPSLatitude' => ' GPS - Широта',
+ 'GPSLatitude' => 'GPS — Широта',
'GPSLatitudeRef' => {
- Description => ' GPS - Индекс широты',
+ Description => 'GPS — Индекс широты',
PrintConv => {
'North' => 'Северная широта',
'South' => 'Южная широта',
},
},
- 'GPSLongitude' => ' GPS - Долгота',
+ 'GPSLongitude' => 'GPS — Долгота',
'GPSLongitudeRef' => {
- Description => ' GPS - Индекс долготы',
+ Description => 'GPS — Индекс долготы',
PrintConv => {
'East' => 'Восточная долгота',
'West' => 'Западная долгота',
},
},
- 'GPSMapDatum' => ' GPS - Система координат',
+ 'GPSMapDatum' => 'GPS — Система координат',
'GPSMeasureMode' => {
- Description => ' GPS - Режим измерения GPS',
+ Description => 'GPS — Режим измерения GPS',
PrintConv => {
'2-Dimensional Measurement' => '2-мерная навигация',
'3-Dimensional Measurement' => '3-мерная навигация',
},
},
- 'GPSProcessingMethod' => ' GPS - Метод вычисления положения',
- 'GPSSatellites' => ' GPS - Используемые спутники',
- 'GPSSpeed' => ' GPS - Скорость передвижения',
+ 'GPSProcessingMethod' => 'GPS — Метод вычисления положения',
+ 'GPSSatellites' => 'GPS — Используемые спутники',
+ 'GPSSpeed' => 'GPS — Скорость передвижения',
'GPSSpeedRef' => {
- Description => ' GPS - Единицы измерения скорости',
+ Description => 'GPS — Единицы измерения скорости',
PrintConv => {
- 'km/h' => 'Километров в час',
+ 'km/h' => 'Км/ч',
'knots' => 'Узлы',
- 'mph' => 'Миль в час',
+ 'mph' => 'Миля/ч',
},
},
'GPSStatus' => {
- Description => ' GPS - Состояние приемника во время съёмки',
+ Description => 'GPS — Состояние приёмника во время съёмки',
PrintConv => {
'Measurement Active' => 'Координаты актуальные',
'Measurement Void' => 'Актуальных координат нету',
},
},
- 'GPSTimeStamp' => ' GPS - Время записанных координат',
- 'GPSTrack' => ' GPS - Трек',
+ 'GPSTimeStamp' => 'GPS — Время записанных координат',
+ 'GPSTrack' => 'GPS — Трек',
'GPSTrackRef' => {
- Description => ' GPS - Ориентир направления',
+ Description => 'GPS — Ориентир направления',
PrintConv => {
'Magnetic North' => 'На магнитный северный полюс',
'True North' => 'На географический северный полюс',
},
},
- 'GPSVersionID' => ' GPS - Версия тегов',
+ 'GPSVersionID' => 'GPS — Версия тегов',
'GainControl' => {
Description => 'Управление усилением',
PrintConv => {
@@ -775,58 +775,58 @@ $VERSION = '1.05';
'High gain up' => 'С большим шагом вверх',
'Low gain down' => 'С малым шагом вниз',
'Low gain up' => 'С малым шагом вверх',
- 'None' => 'Отсутствует',
+ 'None' => 'Никакое',
},
},
'Gamma' => 'Гамма',
'GammaCompensatedValue' => 'Значение гамма-компенсации',
- 'GeoTiffAsciiParams' => 'Geo Tiff - Параметры Ascii',
- 'GeoTiffDirectory' => 'Geo Tiff - Каталог',
- 'GeoTiffDoubleParams' => 'Geo Tiff - Параметры дублирования',
+ 'GeoTiffAsciiParams' => 'Geo Tiff — Параметры Ascii',
+ 'GeoTiffDirectory' => 'Geo Tiff — Каталог',
+ 'GeoTiffDoubleParams' => 'Geo Tiff — Параметры дублирования',
'GooglePlusUploadCode' => 'Код загрузки Google Plus',
- 'Gradation' => 'Впечатляющ.режим',
+ 'Gradation' => 'Градация',
'GrayResponseCurve' => 'Оптическая плотность серого',
'GrayResponseUnit' => 'Единицы плотности серого',
- 'HCUsage' => 'Тип информации HC файла',
+ 'HCUsage' => 'Использование HC',
'HDR' => {
- Description => 'Авто HDR',
+ Description => 'HDR',
PrintConv => {
- 'Off' => 'Отключено',
+ 'Off' => 'Отключён',
},
},
- 'HalftoneHints' => 'Хинты полутонов',
+ 'HalftoneHints' => 'Подсказки полутонов',
'HasXFA' => {
- Description => 'XFA',
+ Description => 'Имеет XFA',
PrintConv => {
- 'No' => 'Отсутствует',
- 'Yes' => 'Есть',
+ 'No' => 'Нет',
+ 'Yes' => 'Да',
},
},
'Headline' => 'Заголовок',
- 'HeightResolution' => 'Разрешение по высоте (PPI)',
- 'HighISOMultiplierBlue' => 'Множитель ISO - Синий',
- 'HighISOMultiplierGreen' => 'Множитель ISO - Зелёный',
- 'HighISOMultiplierRed' => 'Множитель ISO - Красный',
+ 'HeightResolution' => 'Разрешение по высоте',
+ 'HighISOMultiplierBlue' => 'Множитель ISO — Синий',
+ 'HighISOMultiplierGreen' => 'Множитель ISO — Зелёный',
+ 'HighISOMultiplierRed' => 'Множитель ISO — Красный',
'HighISONoiseReduction' => {
- Description => 'NR высокого ISO',
+ Description => 'Шумоподавление при повышенных ISO',
PrintConv => {
- 'Auto' => 'Авто',
- 'High' => 'Hi',
- 'Low' => 'Lo',
- 'Normal' => 'Нормальная',
+ 'Auto' => 'Автоматическое',
+ 'High' => 'Высокое',
+ 'Low' => 'Низкое',
+ 'Normal' => 'Обычное',
'Off' => 'Отключено',
},
},
- 'HostComputer' => 'Компьютер/Система',
+ 'HostComputer' => 'Узловой компьютер',
'HowPublished' => 'Метод публикации',
'Hue' => 'Оттенок',
'Humidity' => 'Влажность',
- 'ICC_Profile' => 'ICC Профиль',
- 'INGRReserved' => 'Intergraph - Резерв',
- 'IPTCBitsPerSample' => 'IPTC - Количество бит на компонент',
- 'IPTCImageHeight' => 'IPTC - Высота изображения',
+ 'ICC_Profile' => 'ICC-профиль',
+ 'INGRReserved' => 'INGR — Резерв',
+ 'IPTCBitsPerSample' => 'IPTC — Количество бит на компонент',
+ 'IPTCImageHeight' => 'IPTC — Высота изображения',
'IPTCImageRotation' => {
- Description => 'IPTC - Вращение изображения',
+ Description => 'IPTC — Вращение изображения',
PrintConv => {
'0' => 'Не вращать',
'180' => 'Повернуть вправо на 180°',
@@ -834,43 +834,43 @@ $VERSION = '1.05';
'90' => 'Повернуть вправо на 90°',
},
},
- 'IPTCImageWidth' => 'IPTC - Ширина изображения',
- 'IPTCPictureNumber' => 'IPTC - Номер изображения',
- 'IPTCPixelHeight' => 'IPTC - Высота (в пикселях)',
- 'IPTCPixelWidth' => 'IPTC - Ширина (в пикселях)',
+ 'IPTCImageWidth' => 'IPTC — Ширина изображения',
+ 'IPTCPictureNumber' => 'IPTC — Номер изображения',
+ 'IPTCPixelHeight' => 'IPTC — Высота в пикселях',
+ 'IPTCPixelWidth' => 'IPTC — Ширина в пикселях',
'ISO' => 'Значение ISO',
'ISOSpeed' => 'ISO',
- 'ISOSpeedLatitudeyyy' => 'ISO - Фотографическая широта yyy',
- 'ISOSpeedLatitudezzz' => 'ISO - Фотографическая широта zzz',
- 'IT8Header' => 'IT8 Заголовок',
+ 'ISOSpeedLatitudeyyy' => 'ISO — Фотографическая широта yyy',
+ 'ISOSpeedLatitudezzz' => 'ISO — Фотографическая широта zzz',
+ 'IT8Header' => 'IT8-заголовок',
'Image::ExifTool::DjVu::Form' => 'Форма DjVu',
'Image::ExifTool::DjVu::Info' => 'Сведения о DjVu',
- 'Image::ExifTool::DjVu::Meta' => 'DjVu метаданные',
- 'Image::ExifTool::IPTC::ObjectData' => 'IPTC - Данные объекта',
- 'Image::ExifTool::IPTC::PostObjectData' => 'IPTC - Данные Post объекта',
- 'Image::ExifTool::IPTC::PreObjectData' => 'IPTC - Данные Pre объекта',
+ 'Image::ExifTool::DjVu::Meta' => 'DjVu-метаданные',
+ 'Image::ExifTool::IPTC::ObjectData' => 'IPTC — Данные объекта',
+ 'Image::ExifTool::IPTC::PostObjectData' => 'IPTC — Данные Post-объекта',
+ 'Image::ExifTool::IPTC::PreObjectData' => 'IPTC — Данные Pre-объекта',
'Image::ExifTool::PDF::Encrypt' => 'PDF зашифрован',
- 'Image::ExifTool::PDF::Info' => 'Сведения о PDF файле',
+ 'Image::ExifTool::PDF::Info' => 'Сведения о PDF',
'Image::ExifTool::PDF::Pages' => 'Страниц в PDF',
'Image::ExifTool::PDF::Root' => 'Основные параметры PDF',
'Image::ExifTool::PDF::Signature' => 'Электронная подпись PDF',
- 'Image::ExifTool::PDF::TransformParams' => 'Параметры изменения PDF файла',
- 'ImageByteCount' => 'Размер изображения (байт)',
+ 'Image::ExifTool::PDF::TransformParams' => 'Параметры изменения PDF',
+ 'ImageByteCount' => 'Число байтов изображения',
'ImageColorIndicator' => {
- Description => 'Цвет переднего плана или прозрачности',
+ Description => 'Указатель цвета изображения',
PrintConv => {
- 'Specified Image Color' => 'Указан',
- 'Unspecified Image Color' => 'Не указан',
+ 'Specified Image Color' => 'Указанный цвет изображения',
+ 'Unspecified Image Color' => 'Не указанный цвет изображения',
},
},
- 'ImageColorValue' => 'Значение цвета переднего плана или прозрачности',
+ 'ImageColorValue' => 'Значение цвета изображения',
'ImageDataDiscard' => {
- Description => 'Удаленные данные из изображения после сжатия',
+ Description => 'Отброшенные данные изображения',
PrintConv => {
- 'Flexbits Discarded' => 'Удалены данные Flexbits',
+ 'Flexbits Discarded' => 'Гибкие биты отброшены',
'Full Resolution' => 'Полное разрешение',
- 'HighPass Frequency Data Discarded' => 'Удалены данные о высоких частотах',
- 'Highpass and LowPass Frequency Data Discarded' => 'Удалены данные о высоких и низких частотах',
+ 'HighPass Frequency Data Discarded' => 'Данные высоких частот отброшены',
+ 'Highpass and LowPass Frequency Data Discarded' => 'Данные высоких и низких частот отброшены',
},
},
'ImageDepth' => 'Глубина изображения',
@@ -892,14 +892,14 @@ $VERSION = '1.05';
},
},
'ImageReferencePoints' => 'Опорные точки изображения',
- 'ImageSize' => '"Снимок, размер"',
+ 'ImageSize' => 'Размер изображения',
'ImageSourceData' => 'Исходные данные изображения',
'ImageStabilization' => {
PrintConv => {
'CCD Shift' => 'Оптический стабилизатор',
'High Sensitivity' => 'Движение объекта съёмки',
- 'Off' => 'Выкл',
- 'Off (1)' => 'Выкл (1)',
+ 'Off' => 'Отключён',
+ 'Off (1)' => 'Отключён (1)',
},
},
'ImageType' => {
@@ -930,16 +930,16 @@ $VERSION = '1.05';
'Institution' => 'Институт',
'Instructions' => 'Инструкции',
'InterchangeColorSpace' => 'Смена цветового пространства',
- 'IntergraphFlagRegisters' => 'Intergraph - Флаг регистров',
- 'IntergraphMatrix' => 'Intergraph - Матрица',
- 'IntergraphPacketData' => 'Intergraph - Данные пакета',
+ 'IntergraphFlagRegisters' => 'Intergraph — Флаг регистров',
+ 'IntergraphMatrix' => 'Intergraph — Матрица',
+ 'IntergraphPacketData' => 'Intergraph — Данные пакета',
'Interlace' => 'Чересстрочная развёртка',
'InteropIndex' => {
Description => 'Индекс файловой совместимости',
PrintConv => {
- 'R03 - DCF option file (Adobe RGB)' => 'R03 - Альтернативный файл DCF (Adobe RGB)',
- 'R98 - DCF basic file (sRGB)' => 'R98 - Основной файл DCF (sRGB)',
- 'THM - DCF thumbnail file' => 'THM - Файл миниатюр DCF',
+ 'R03 - DCF option file (Adobe RGB)' => 'R03 — Альтернативный файл DCF (Adobe RGB)',
+ 'R98 - DCF basic file (sRGB)' => 'R98 — Основной файл DCF (sRGB)',
+ 'THM - DCF thumbnail file' => 'THM — Файл миниатюр DCF',
},
},
'InteropOffset' => 'Тэг взаимной совместимости',
@@ -950,7 +950,7 @@ $VERSION = '1.05';
'JPEGLosslessPredictors' => 'Значения предиктора JPEG без потерь',
'JPEGPointTransforms' => 'Преобразование точек JPEG',
'JPEGProc' => {
- Description => 'JPEG сжатие в старом стиле ',
+ Description => 'JPEG-сжатие в старом стиле',
PrintConv => {
'Baseline' => 'Базовое последовательное',
'Lossless' => 'Без потерь с кодированием Хаффмана',
@@ -962,16 +962,16 @@ $VERSION = '1.05';
PrintConv => {
'Extra Fine' => 'Сверхвысокое',
'Fine' => 'Высокое',
- 'Standard' => 'Стандартное качество',
+ 'Standard' => 'Стандартное',
},
},
'JPEGRestartInterval' => 'Интервал перезапуска JPEG',
- 'JPEGTables' => 'JPEG таблицы',
+ 'JPEGTables' => 'JPEG-таблицы',
'JobID' => 'ID задания',
'Journal' => 'Журнал',
- 'JpgFromRaw' => 'Jpg встроенный в Raw файл',
- 'JpgFromRawLength' => 'Высота Jpeg встроенного в Raw файл',
- 'JpgFromRawStart' => 'Смещение Jpeg встроенного в Raw файл',
+ 'JpgFromRaw' => 'JPG-файл, встроенный в RAW-файл',
+ 'JpgFromRawLength' => 'Высота JPG-файла, встроенного в RAW-файл',
+ 'JpgFromRawStart' => 'Смещение JPG-файла, встроенного в RAW-файл',
'Key' => 'Код',
'Keywords' => 'Ключевые слова',
'Language' => 'Язык',
@@ -984,31 +984,31 @@ $VERSION = '1.05';
'LightSource' => {
Description => 'Тип освещения',
PrintConv => {
- 'Cloudy' => 'Облачно (6500К)',
- 'Cool White Fluorescent' => 'Флуоресцентная лампа - Холодный свет (4150К)',
- 'Day White Fluorescent' => 'Флуоресцентная лампа - Дневной белый (5050К)',
- 'Daylight' => 'Дневной свет (5500К)',
- 'Daylight Fluorescent' => 'Флуоресцентная лампа дневного света (6400К)',
- 'Fine Weather' => 'Ясная погода (5500К)',
- 'Flash' => 'Вспышка (5500К)',
- 'Fluorescent' => 'Флуоресцентная лампа (4150К)',
+ 'Cloudy' => 'Облачно (6500 К)',
+ 'Cool White Fluorescent' => 'Флуоресцентная лампа — Холодный свет (4150 К)',
+ 'Day White Fluorescent' => 'Флуоресцентная лампа — Дневной белый (5050 К)',
+ 'Daylight' => 'Дневной свет (5500 К)',
+ 'Daylight Fluorescent' => 'Флуоресцентная лампа дневного света (6400 К)',
+ 'Fine Weather' => 'Ясная погода (5500 К)',
+ 'Flash' => 'Вспышка (5500 К)',
+ 'Fluorescent' => 'Флуоресцентная лампа (4150 К)',
'ISO Studio Tungsten' => 'ISO для студийных ламп накаливания',
'Other' => 'другой источник света',
- 'Shade' => 'Тень (7500К)',
+ 'Shade' => 'Тень (7500 К)',
'Standard Light A' => 'Стандартный свет A',
'Standard Light B' => 'Стандартный свет B',
'Standard Light C' => 'Стандартный свет C',
- 'Tungsten (Incandescent)' => 'Лампа накаливания (2850К)',
- 'Unknown' => 'Неизвестный',
- 'Warm White Fluorescent' => 'Флуоресцентная лампа - Тёплый свет (2925К)',
- 'White Fluorescent' => 'Флуоресцентная лампа - Белый свет (3525К)',
+ 'Tungsten (Incandescent)' => 'Лампа накаливания (2850 К)',
+ 'Unknown' => 'Неизвестно',
+ 'Warm White Fluorescent' => 'Флуоресцентная лампа — Тёплый свет (2925 К)',
+ 'White Fluorescent' => 'Флуоресцентная лампа — Белый свет (3525 К)',
},
},
'Lightness' => 'Освещенность',
'LinearResponseLimit' => 'Предел линейного отклика',
- 'LinearityLimitBlue' => 'Предел линейности - Синий',
- 'LinearityLimitGreen' => 'Предел линейности - Зелёный',
- 'LinearityLimitRed' => 'Предел линейности - Красный',
+ 'LinearityLimitBlue' => 'Предел линейности — Синий',
+ 'LinearityLimitGreen' => 'Предел линейности — Зелёный',
+ 'LinearityLimitRed' => 'Предел линейности — Красный',
'LinearizationTable' => 'Таблица линеаризации',
'Linearized' => {
Description => 'Линеаризация',
@@ -1018,27 +1018,27 @@ $VERSION = '1.05';
},
},
'LocalCaption' => 'Описание места',
- 'LocalizedCameraModel' => 'Локализованное имя модели камеры ',
- 'Location' => 'Место съемки',
+ 'LocalizedCameraModel' => 'Локализованное имя модели камеры',
+ 'Location' => 'Место съёмки',
'LongExposureNoiseReduction' => {
- Description => 'NR долгой эксп.',
+ Description => 'Шумоподавление при длинной выдержке',
PrintConv => {
'Off' => 'Отключено',
'On' => 'Включено',
},
},
'LookupTable' => 'Таблица подстановки',
- 'MDColorTable' => 'MD - Таблица цветов',
- 'MDFileTag' => 'MD - Формат исходных данных',
- 'MDFileUnits' => 'MD - Единицы данных файла',
- 'MDLabName' => 'MD - Создатель файла',
- 'MDPrepDate' => 'MD - Дата создания',
- 'MDPrepTime' => 'MD - Время создания',
- 'MDSampleInfo' => 'MD - Описание файла',
- 'MDScalePixel' => 'MD - Коефициент масштабирования пикселя',
- 'MSDocumentText' => 'MS - Текстовый документ',
- 'MSDocumentTextPosition' => 'MS - Текстовый документ - Позиция',
- 'MSPropertySetStorage' => 'MS - Хранилище свойств ',
+ 'MDColorTable' => 'MD — Таблица цветов',
+ 'MDFileTag' => 'MD — Формат исходных данных',
+ 'MDFileUnits' => 'MD — Единицы данных файла',
+ 'MDLabName' => 'MD — Создатель файла',
+ 'MDPrepDate' => 'MD — Дата создания',
+ 'MDPrepTime' => 'MD — Время создания',
+ 'MDSampleInfo' => 'MD — Описание файла',
+ 'MDScalePixel' => 'MD — Коефициент масштабирования пикселя',
+ 'MSDocumentText' => 'MS — Текстовый документ',
+ 'MSDocumentTextPosition' => 'MS — Текстовый документ — Позиция',
+ 'MSPropertySetStorage' => 'MS — Хранилище свойств',
'Make' => 'Производитель',
'MakerNote' => 'Приватные данные DNG',
'MakerNoteApple' => 'Комментарии Apple',
@@ -1057,7 +1057,7 @@ $VERSION = '1.05';
'MakerNoteHasselblad' => 'Комментарии Hasselblad',
'MakerNoteISL' => 'Комментарии ISL',
'MakerNoteJVC' => 'Комментарии JVC',
- 'MakerNoteJVCText' => 'Комментарии JVC - Текст',
+ 'MakerNoteJVCText' => 'Комментарии JVC — Текст',
'MakerNoteKodak10' => 'Комментарии Kodak 10',
'MakerNoteKodak11' => 'Комментарии Kodak 11',
'MakerNoteKodak12' => 'Комментарии Kodak 12',
@@ -1074,7 +1074,7 @@ $VERSION = '1.05';
'MakerNoteKodak8b' => 'Комментарии Kodak 8b',
'MakerNoteKodak8c' => 'Комментарии Kodak 8c',
'MakerNoteKodak9' => 'Комментарии Kodak 9',
- 'MakerNoteKodakUnknown' => 'Комментарии Kodak - Неизвестный',
+ 'MakerNoteKodakUnknown' => 'Комментарии Kodak — Неизвестно',
'MakerNoteKyocera' => 'Комментарии Kyocera',
'MakerNoteLeica' => 'Комментарии Leica',
'MakerNoteLeica10' => 'Комментарии Leica 10',
@@ -1112,7 +1112,7 @@ $VERSION = '1.05';
'MakerNoteRicoh' => 'Комментарии Ricoh',
'MakerNoteRicoh2' => 'Комментарии Ricoh 2',
'MakerNoteRicohPentax' => 'Комментарии Ricoh Pentax',
- 'MakerNoteRicohText' => 'Комментарии Ricoh - Текст',
+ 'MakerNoteRicohText' => 'Комментарии Ricoh — Текст',
'MakerNoteSafety' => {
Description => 'Примечания безопасности',
PrintConv => {
@@ -1136,13 +1136,13 @@ $VERSION = '1.05';
'MakerNoteSonyEricsson' => 'Комментарии Sony Ericsson',
'MakerNoteSonySRF' => 'Комментарии Sony SRF',
'MakerNoteUnknown' => 'Комментарии неизвестного производителя',
- 'MakerNoteUnknownBinary' => 'Комментарии неизвестного производителя - Бинарный',
- 'MakerNoteUnknownText' => 'Комментарии неизвестного производителя - Текст',
+ 'MakerNoteUnknownBinary' => 'Комментарии неизвестного производителя — Бинарный',
+ 'MakerNoteUnknownText' => 'Комментарии неизвестного производителя — Текстовый',
'MakerNotes' => 'Данные производителей',
'MaskedAreas' => 'Маскированные области',
'MasterDocumentID' => 'Основной ID документа',
- 'MatrixWorldToCamera' => 'Матрица Мира на Камеру',
- 'MatrixWorldToScreen' => 'Матрица Мира на Экран',
+ 'MatrixWorldToCamera' => 'Матрица мира на камеру',
+ 'MatrixWorldToScreen' => 'Матрица мира на экран',
'Matteing' => 'Матирование',
'MaxAperture' => 'Макс. диафрагма объектива',
'MaxApertureValue' => 'Максимальное число диафрагмы объектива',
@@ -1155,35 +1155,35 @@ $VERSION = '1.05';
PrintConv => {
'Average' => 'Усреднённый',
'Center-weighted average' => 'Центрально-взвешенный',
- 'Multi-segment' => 'Оценочный / Многозонный',
+ 'Multi-segment' => 'Оценочный/многозонный',
'Multi-spot' => 'Многоточечный',
'Other' => 'Другой',
'Partial' => 'Частичный',
'Spot' => 'Точечный',
- 'Unknown' => 'Неизвестный',
+ 'Unknown' => 'Неизвестно',
},
},
- 'MinSampleValue' => 'Мин. значение, используемое компонентом',
- 'ModeNumber' => 'Режим стандарта факс профиля',
- 'Model' => 'Модель камеры',
+ 'MinSampleValue' => 'Минимальное значение образца',
+ 'ModeNumber' => 'Номер режима',
+ 'Model' => 'Модель',
'Model2' => 'Модель 2',
'ModelTiePoint' => 'Пространственная привязка',
'ModelTransform' => 'Модель преобразования',
'ModificationPermissions' => {
- Description => 'Разрешения на Редактирование',
+ Description => 'Разрешения на редактирование',
PrintConv => {
'Do not restrict applications to reader permissions' => 'Не ограничивать всем приложениям права на чтение',
- 'Fill forms, Create page templates, Sign' => 'Разрешается: Заполнение форм, Создание шаблонов страниц, Электронная подпись',
- 'Fill forms, Create page templates, Sign, Create/Delete/Edit annotations' => 'Разрешается: Заполнение форм, Создание шаблонов страниц, Электронная подпись, Создание / Удаление / Редактирование аннотаций',
+ 'Fill forms, Create page templates, Sign' => 'Заполнение форм, создание шаблонов страниц, электронная подпись',
+ 'Fill forms, Create page templates, Sign, Create/Delete/Edit annotations' => 'Заполнение форм, создание шаблонов страниц, электронная подпись, создание/удаление/редактирование примечаний',
'No changes permitted' => 'Редактирование запрещено',
'Restrict all applications to reader permissions' => 'Ограничивать всем приложениям права на чтение',
},
},
'ModifyDate' => 'Дата редактирования',
- 'MoireFilter' => 'Фильтр Муар',
+ 'MoireFilter' => 'Фильтр муара',
'Month' => 'Месяц',
'MultiFrameNoiseReduction' => {
- Description => 'Многокадр. шумоподавл.',
+ Description => 'Многокадровое шумоподавление',
PrintConv => {
'Off' => 'Отключено',
'On' => 'Включено',
@@ -1201,18 +1201,24 @@ $VERSION = '1.05';
'Profile M' => 'Профиль M',
'Profile S' => 'Профиль S',
'Profile T' => 'Профиль T',
- 'Resolution/Image Width' => 'Разрешение/Ширина изображения',
+ 'Resolution/Image Width' => 'Разрешение/ширина изображения',
'Shared Data' => 'Общие данные',
},
},
- 'Multishot' => 'Мультишот',
- 'NewRawImageDigest' => 'RAW - Хеш-сумма изображения в новом формате',
- 'NewsPhotoVersion' => 'Версия News Photo',
- 'Noise' => 'Уровень шума',
- 'NoiseProfile' => 'Профиль - Уровень шума',
+ 'Multishot' => {
+ Description => 'Мультисъёмка',
+ PrintConv => {
+ 'Off' => 'Отключена',
+ 'Pixel Shift' => 'Сдвиг пикселей',
+ },
+ },
+ 'NewRawImageDigest' => 'Новый обзор RAW-изображения',
+ 'NewsPhotoVersion' => 'Версия фоторепортажа',
+ 'Noise' => 'Шум',
+ 'NoiseProfile' => 'Профиль шума',
'NoiseReduction' => 'Шумоподавление',
- 'NoiseReductionApplied' => 'Применённый шумодав',
- 'NoiseReductionParams' => 'Параметры шумодава',
+ 'NoiseReductionApplied' => 'Прилагаемое шумоподавление',
+ 'NoiseReductionParams' => 'Параметры шумоподавления',
'Note' => 'Заметка',
'NumIndexEntries' => 'Количество индексов',
'Number' => 'Номер',
@@ -1220,8 +1226,8 @@ $VERSION = '1.05';
'OPIProxy' => {
Description => 'Подстановка изображения',
PrintConv => {
- 'Higher resolution image does not exist' => 'Изображение большего разрешения нет',
- 'Higher resolution image exists' => 'Есть изображение с большим разрешением',
+ 'Higher resolution image does not exist' => 'Изображение большего разрешения отсутствует',
+ 'Higher resolution image exists' => 'Изображение большего разрешения присутствует',
},
},
'ObjectAttributeReference' => 'Ссылка на атрибут объекта',
@@ -1234,24 +1240,25 @@ $VERSION = '1.05';
},
},
'ObjectName' => 'Заголовок объекта',
- 'ObjectPreviewData' => 'Object Preview - Данные',
- 'ObjectPreviewFileFormat' => 'Object Preview - Формат файла',
- 'ObjectPreviewFileVersion' => 'Object Preview - Версия',
+ 'ObjectPreviewData' => 'Данные предпросмотра объекта',
+ 'ObjectPreviewFileFormat' => 'Формат файла предпросмотра объекта',
+ 'ObjectPreviewFileVersion' => 'Версия файла предпросмотра объекта',
'ObjectSizeAnnounced' => 'Заявленный размер объекта',
'ObjectTypeReference' => 'Ссылка на тип объекта',
- 'OceApplicationSelector' => 'Oce - Приложение',
- 'OceIDNumber' => 'Oce - ID номер',
- 'OceScanjobDesc' => 'Oce - Scanticket использованный при сканировании',
+ 'OceApplicationSelector' => 'Задатчик приложения Oce',
+ 'OceIDNumber' => 'ID-номер Oce',
+ 'OceImageLogic' => 'Логика изображения Oce',
+ 'OceScanjobDesc' => 'Описание задания сканирования Oce',
'OffsetSchema' => 'Схема смещения',
'OffsetTime' => 'Смещение времени',
'OffsetTimeDigitized' => 'Смещения времени создания файла',
'OffsetTimeOriginal' => 'Смещение времени съёмки',
'OldSubfileType' => {
- Description => 'Тип данных (старый)',
+ Description => 'Старый подтип файла',
PrintConv => {
'Full-resolution image' => 'Изображение с полным разрешением',
'Reduced-resolution image' => 'Изображение с пониженным разрешением',
- 'Single page of multi-page image' => 'Страница из многостраничного изображения',
+ 'Single page of multi-page image' => 'Одна страница многостраничного изображения',
},
},
'OpcodeList1' => 'Список кодов операций обработки изображений 1',
@@ -1262,11 +1269,11 @@ $VERSION = '1.05';
'Orientation' => {
Description => 'Ориентация',
PrintConv => {
- 'Horizontal (normal)' => 'Горизонтальная',
- 'Mirror horizontal' => 'Зеркало по горизонтали',
- 'Mirror horizontal and rotate 270 CW' => 'Зеркало по горизонтали и поворот на 270° по часовой стрелке',
- 'Mirror horizontal and rotate 90 CW' => 'Зеркало по горизонтали и поворот на 90° по часовой стрелке',
- 'Mirror vertical' => 'Зеркало по вертикали',
+ 'Horizontal (normal)' => 'Горизонтальная (обычная)',
+ 'Mirror horizontal' => 'Отражение по горизонтали',
+ 'Mirror horizontal and rotate 270 CW' => 'Отражение по горизонтали и поворот на 270° по часовой стрелке',
+ 'Mirror horizontal and rotate 90 CW' => 'Отражение по горизонтали и поворот на 90° по часовой стрелке',
+ 'Mirror vertical' => 'Отражение по вертикали',
'Rotate 180' => 'Поворот на 180°',
'Rotate 270 CW' => 'Поворот на 270° по часовой стрелке',
'Rotate 90 CW' => 'Поворот на 90° по часовой стрелке',
@@ -1276,9 +1283,9 @@ $VERSION = '1.05';
'OriginalDefaultCropSize' => 'Исходный размер кропнутого изображения',
'OriginalDefaultFinalSize' => 'Полный размер исходного изображения',
'OriginalFileName' => 'Исходное имя файла',
- 'OriginalRawFileData' => 'Исходные данные Raw файла',
- 'OriginalRawFileDigest' => 'RAW - Хеш-сумма исходного файла',
- 'OriginalRawFileName' => 'Исходное имя Raw файла',
+ 'OriginalRawFileData' => 'Исходные данные RAW-файла',
+ 'OriginalRawFileDigest' => 'Исходный обзор RAW-файла',
+ 'OriginalRawFileName' => 'Исходное имя RAW-файла',
'OriginalTransmissionReference' => 'Исходная ссылка на передачу',
'OriginatingProgram' => 'Приложение',
'OtherImage' => 'Другое изображение',
@@ -1294,78 +1301,82 @@ $VERSION = '1.05';
'PageName' => 'Название страницы',
'PageNumber' => 'Номер страницы',
'Pages' => 'Страниц',
- 'PanasonicRawVersion' => 'Версия Panasonic Raw',
- 'PanasonicTitle' => 'Panasonic - Название',
- 'PanasonicTitle2' => 'Panasonic - Название 2',
+ 'PanasonicRawVersion' => 'Panasonic — Версия RAW',
+ 'PanasonicTitle' => 'Panasonic — Название',
+ 'PanasonicTitle2' => 'Panasonic — Название 2',
'PhotometricInterpretation' => {
Description => 'Цветовая модель',
PrintConv => {
+ 'Color Filter Array' => 'Массив цветных фильтров',
+ 'Linear Raw' => 'Линейный RAW',
'RGB Palette' => 'Палитра RGB',
+ 'Sequential Color Filter' => 'Последовательный цветной фильтр',
'Transparency Mask' => 'Маска прозрачности',
+ 'WhiteIsZero' => 'Белый — ноль',
},
},
'PixelFormat' => {
Description => 'Формат пикселя',
PrintConv => {
- '112-bit 6 Channels Alpha' => '112 бит 6 альфаканалов',
- '112-bit 7 Channels' => '112 бит 7 канаов',
- '128-bit 7 Channels Alpha' => '128 бит 7 альфаканалов',
- '128-bit 8 Channels' => '128 бит 8 канаов',
- '128-bit PRGBA Float' => '128 бит PRGBA Float',
- '128-bit RGB Float' => '128 бит RGB Float',
- '128-bit RGBA Fixed Point' => '128 бит RGBA Fixed Point',
- '128-bit RGBA Float' => '128 бит RGBA Float',
- '144-bit 8 Channels Alpha' => '144 бита 8 альфаканалов',
- '16-bit BGR555' => '16 бит BGR555',
- '16-bit BGR565' => '16 бит BGR565',
- '16-bit Gray' => '16 бит Градаций серого',
- '16-bit Gray Half' => '16 бит Градаций серого Half',
- '24-bit 3 Channels' => '24 бита 3 канала',
- '24-bit BGR' => '24 бита BGR',
- '24-bit RGB' => '24 бита RGB',
- '32-bit 3 Channels Alpha' => '32 бита 3 альфаканала',
- '32-bit 4 Channels' => '32 бита 4 канала',
- '32-bit BGR' => '32 бита BGR',
- '32-bit BGR101010' => '32 бита BGR101010',
- '32-bit BGRA' => '32 бита BGRA',
- '32-bit CMYK' => '32 бита CMYK',
- '32-bit Gray Fixed Point' => '32 бит Градаций серого Fixed Point',
- '32-bit Gray Float' => '32 бита Градаций серого Float',
- '32-bit PBGRA' => '32 бита PBGRA',
- '32-bit RGBE' => '32 бит RGBE',
- '40-bit 4 Channels Alpha' => '40 бит 4 альфаканала',
- '40-bit 5 Channels' => '40 бит 5 каналов',
- '40-bit CMYK Alpha' => '40 бит CMYK Альфаканал',
- '48-bit 3 Channels' => '48 бит 3 канала',
- '48-bit 5 Channels Alpha' => '48 бит 5 альфаканалов',
- '48-bit 6 Channels' => '48 бит 6 каналов',
- '48-bit RGB' => '48 бит RGB',
- '48-bit RGB Fixed Point' => '48 бит RGB Fixed Point',
- '48-bit RGB Half' => '48 бит RGB Half',
- '56-bit 6 Channels Alpha' => '56 бит 6 альфаканалов',
- '56-bit 7 Channels' => '56 бит 7 каналов',
- '64-bit 3 Channels Alpha' => '64 бит 3 альфаканала',
- '64-bit 4 Channels' => '64 бит 4 канала',
- '64-bit 7 Channels Alpha' => '64 бит 7 альфаканалов',
- '64-bit 8 Channels' => '64 бит 8 каналов',
- '64-bit CMYK' => '64 бит CMYK',
- '64-bit PRGBA' => '64 бит PRGBA',
- '64-bit RGBA' => '64 бит RGBA',
- '64-bit RGBA Fixed Point' => '64 бит RGBA Fixed Point',
- '64-bit RGBA Half' => '64 бит RGBA Half',
- '72-bit 8 Channels Alpha' => '72 бита 8 альфаканалов',
- '8-bit Gray' => '8 бит Градаций серого',
- '80-bit 4 Channels Alpha' => '80 бит 4 альфаканала',
- '80-bit 5 Channels' => '80 бит 5 канаов',
- '80-bit CMYK Alpha' => '80 бит CMYK Альфаканал',
- '96-bit 5 Channels Alpha' => '96 бит 5 альфаканалов',
- '96-bit 6 Channels' => '96 бит 6 канаов',
- '96-bit RGB Fixed Point' => '96 бит RGB Fixed Point',
- 'Black & White' => 'Черно-Белый',
- },
- },
- 'PixelIntensityRange' => 'Диапазон интенсивности пикселей (%)',
- 'PixelMagicJBIGOptions' => 'Pixel Magic - Параметры JBIG',
+ '112-bit 6 Channels Alpha' => '112-битный, 6 каналов, альфа-канал',
+ '112-bit 7 Channels' => '112-битный, 7 каналов',
+ '128-bit 7 Channels Alpha' => '128-битный, 7 каналов, альфа-канал',
+ '128-bit 8 Channels' => '128-битный, 8 каналов',
+ '128-bit PRGBA Float' => '128-битный, PRGBA с плавающей точкой',
+ '128-bit RGB Float' => '128-битный, RGB с плавающей точкой',
+ '128-bit RGBA Fixed Point' => '128-битный, RGBA с фиксированной точкой',
+ '128-bit RGBA Float' => '128-битный, RGBA с плавающей точкой',
+ '144-bit 8 Channels Alpha' => '144-битный, 8 каналов, альфа-канал',
+ '16-bit BGR555' => '16-битный, BGR555',
+ '16-bit BGR565' => '16-битный, BGR565',
+ '16-bit Gray' => '16-битный, серый',
+ '16-bit Gray Half' => '16-битный, половина серого',
+ '24-bit 3 Channels' => '24-битный, 3 канала',
+ '24-bit BGR' => '24-битный, BGR',
+ '24-bit RGB' => '24-битный, RGB',
+ '32-bit 3 Channels Alpha' => '32-битный, 3 канала, альфа-канал',
+ '32-bit 4 Channels' => '32-битный, 4 канала',
+ '32-bit BGR' => '32-битный, BGR',
+ '32-bit BGR101010' => '32-битный, BGR101010',
+ '32-bit BGRA' => '32-битный, BGRA',
+ '32-bit CMYK' => '32-битный, CMYK',
+ '32-bit Gray Fixed Point' => '32-битный, серый с фиксированной точкой',
+ '32-bit Gray Float' => '32-битный, серый с плавающей точкой',
+ '32-bit PBGRA' => '32-битный, PBGRA',
+ '32-bit RGBE' => '32-битный, RGBE',
+ '40-bit 4 Channels Alpha' => '40-битный, 4 канала, альфа-канал',
+ '40-bit 5 Channels' => '40-битный, 5 каналов',
+ '40-bit CMYK Alpha' => '40-битный, CMYK, альфа-канал',
+ '48-bit 3 Channels' => '48-битный, 3 канала',
+ '48-bit 5 Channels Alpha' => '48-битный, 5 каналов, альфа-канал',
+ '48-bit 6 Channels' => '48-битный, 6 каналов',
+ '48-bit RGB' => '48-битный, RGB',
+ '48-bit RGB Fixed Point' => '48-битный, RGB с фиксированной точкой',
+ '48-bit RGB Half' => '48-битный, RGB Half',
+ '56-bit 6 Channels Alpha' => '56-битный, 6 каналов, альфа-канал',
+ '56-bit 7 Channels' => '56-битный, 7 каналов',
+ '64-bit 3 Channels Alpha' => '64-битный, 3 канала, альфа-канал',
+ '64-bit 4 Channels' => '64-битный, 4 канала',
+ '64-bit 7 Channels Alpha' => '64-битный, 7 каналов, альфа-канал',
+ '64-bit 8 Channels' => '64-битный, 8 каналов',
+ '64-bit CMYK' => '64-битный, CMYK',
+ '64-bit PRGBA' => '64-битный, PRGBA',
+ '64-bit RGBA' => '64-битный, RGBA',
+ '64-bit RGBA Fixed Point' => '64-битный, RGBA с фиксированной точкой',
+ '64-bit RGBA Half' => '64-битный, RGBA Half',
+ '72-bit 8 Channels Alpha' => '72-битный, 8 каналов, альфа-канал',
+ '8-bit Gray' => '8-битный, Градаций серого',
+ '80-bit 4 Channels Alpha' => '80-битный, 4 канала, альфа-канал',
+ '80-bit 5 Channels' => '80-битный, 5 канаов',
+ '80-bit CMYK Alpha' => '80-битный, CMYK, альфа-канал',
+ '96-bit 5 Channels Alpha' => '96-битный, 5 каналов, альфа-канал',
+ '96-bit 6 Channels' => '96-битный, 6 канаов',
+ '96-bit RGB Fixed Point' => '96-битный, RGB с фиксированной точкой',
+ 'Black & White' => 'Чёрно-белый',
+ },
+ },
+ 'PixelIntensityRange' => 'Диапазон интенсивности пикселей (%)',
+ 'PixelMagicJBIGOptions' => 'Pixel Magic — Параметры JBIG',
'PixelScale' => 'Масштаб пикселя',
'PlanarConfiguration' => {
Description => 'Принцип организации данных',
@@ -1375,36 +1386,37 @@ $VERSION = '1.05';
},
},
'Predictor' => {
- Description => 'Предиктор',
+ Description => 'Предсказатель',
PrintConv => {
'Horizontal differencing' => 'Горизонтальное дифференцирование',
- 'None' => 'Не использовался',
+ 'None' => 'Никакой',
},
},
'Prefs' => 'Настройки',
'Pressure' => 'Давление',
- 'PreviewApplicationName' => 'Файл предпросмотра - Название приложения',
- 'PreviewApplicationVersion' => 'Файл предпросмотра - Версия приложения',
+ 'PreviewApplicationName' => 'Название приложения предпросмотра',
+ 'PreviewApplicationVersion' => 'Версия приложения предпросмотра',
'PreviewColorSpace' => {
- Description => 'Файл предпросмотра - Цветовое пространство',
+ Description => 'Цветовое пространство предпросмотра',
PrintConv => {
'Unknown' => 'Неизвестно',
},
},
- 'PreviewDateTime' => 'Файл предпросмотра - Дата и Время',
+ 'PreviewDateTime' => 'Дата и время файла предпросмотра',
'PreviewImage' => 'Файл предпросмотра',
'PreviewImageLength' => 'Высота файла предпросмотра',
'PreviewImageStart' => 'Смещение файла предпросмотра',
- 'PreviewSettingsDigest' => 'Файл предпросмотра - Идентификатор параметров преобразования',
- 'PreviewSettingsName' => 'Файл предпросмотра - Название параметров преобразования',
- 'PrimaryChromaticities' => 'Цветность основных цветов',
- 'ProcessingSoftware' => 'Редактировано в приложении',
- 'Producer' => 'Преобразован/Редактирован в',
+ 'PreviewSettingsDigest' => 'Обзор настроек файла предпросмотра',
+ 'PreviewSettingsName' => 'Название параметров файла предпросмотра',
+ 'PrimaryChromaticities' => 'Первичные цветности',
+ 'PrintIM' => 'Распечатать IM',
+ 'ProcessingSoftware' => 'Приложение редактирования',
+ 'Producer' => 'Продюсер',
'ProductID' => 'ID продукта',
'ProfileCalibrationSig' => 'Сигнатура калибровки профиля',
- 'ProfileCopyright' => 'Профиль - Авторское право',
+ 'ProfileCopyright' => 'Авторское право профиля',
'ProfileEmbedPolicy' => {
- Description => 'Профиль - Политика внедрения',
+ Description => 'Политика внедрения профиля',
PrintConv => {
'Allow Copying' => 'Разрешено копирование',
'Embed if Used' => 'Внедрить если используется',
@@ -1412,44 +1424,44 @@ $VERSION = '1.05';
'No Restrictions' => 'Без ограничений',
},
},
- 'ProfileHueSatMapData1' => 'Профиль - Карта оттенков/насыщенности - Данные 1',
- 'ProfileHueSatMapData2' => 'Профиль - Карта оттенков/насыщенности - Данные 2',
- 'ProfileHueSatMapDims' => 'Профиль - Карта оттенков/насыщенности - Dims',
+ 'ProfileHueSatMapData1' => 'Профиль — Карта оттенков/насыщенности — Данные 1',
+ 'ProfileHueSatMapData2' => 'Профиль — Карта оттенков/насыщенности — Данные 2',
+ 'ProfileHueSatMapDims' => 'Профиль — Карта оттенков/насыщенности — Потускнение',
'ProfileHueSatMapEncoding' => {
- Description => 'Профиль - Карта оттенков/насыщенности - Кодирование',
+ Description => 'Профиль — Карта оттенков/насыщенности — Кодирование',
PrintConv => {
'Linear' => 'Линейное',
},
},
- 'ProfileLookTableData' => 'Профиль - Look таблица - Данные',
- 'ProfileLookTableDims' => 'Профиль - Look таблица - Dims',
+ 'ProfileLookTableData' => 'Профиль — Таблица поиска — Данные',
+ 'ProfileLookTableDims' => 'Профиль — Таблица поиска — Потускнение',
'ProfileLookTableEncoding' => {
- Description => 'Профиль - Look таблица - Кодирование',
+ Description => 'Профиль — Таблица поиска — Кодирование',
PrintConv => {
'Linear' => 'Линейное',
},
},
'ProfileName' => 'Название профиля',
- 'ProfileToneCurve' => 'Профиль - Тоновая кривая',
+ 'ProfileToneCurve' => 'Профиль — Тоновая кривая',
'ProfileType' => {
Description => 'Тип профиля',
PrintConv => {
+ 'Group 3 FAX' => 'Группа 3 FAX',
'Unspecified' => 'Не указан',
},
},
- 'ProgramVersion' => 'Версия приложения',
+ 'ProgramVersion' => 'Версия программы',
'Province-State' => 'Область/район',
'Publisher' => 'Издатель',
'Quality' => {
- Description => 'Качество изображения',
+ Description => 'Качество',
PrintConv => {
- 'Compressed RAW' => 'cRAW',
- 'Compressed RAW + JPEG' => 'cRAW+JPEG',
+ 'Compressed RAW' => 'Сжатый RAW',
+ 'Compressed RAW + JPEG' => 'Сжатый RAW + JPEG',
'Extra Fine' => 'Сверхвысокое',
'Fine' => 'Высокое',
- 'Low' => 'Низкое качество',
- 'Normal' => 'Стандартное качество',
- 'RAW + JPEG' => 'RAW+JPEG',
+ 'Low' => 'Низкое',
+ 'Normal' => 'Обычное',
'Standard' => 'Стандартное',
},
},
@@ -1460,7 +1472,7 @@ $VERSION = '1.05';
'Compression Method Specific' => 'Специфичный метод сжатия',
'Gamma Compensated' => 'Компенсация гаммы',
'Linear Density' => 'Линейная плотность',
- 'Linear Reflectance/Transmittance' => 'Линейное Отражение/Пропускание',
+ 'Linear Reflectance/Transmittance' => 'Линейное отражение/пропускание',
},
},
'RasterPadding' => {
@@ -1473,23 +1485,23 @@ $VERSION = '1.05';
'Word' => 'Слово',
},
},
- 'RasterizedCaption' => 'Растрированное описание',
+ 'RasterizedCaption' => 'Растрированная подпись',
'Rating' => 'Рейтинг',
- 'RatingPercent' => 'Рейтинг (%)',
- 'RawDataOffset' => 'Смещение данных Raw',
- 'RawDataUniqueID' => 'Raw - Уникальный ID файла',
- 'RawFile' => 'Raw файл',
- 'RawFormat' => 'Raw формат',
- 'RawImageDigest' => 'RAW - Хеш-сумма изображения',
- 'RawImageSegmentation' => 'Raw - Сегментация изображения',
- 'RawToPreviewGain' => 'Коэффициент увеличения между Raw и файлом предпросмотра',
+ 'RatingPercent' => 'Проценты рейтинга',
+ 'RawDataOffset' => 'Смещение RAW-данных',
+ 'RawDataUniqueID' => 'Уникальный ID RAW-данных',
+ 'RawFile' => 'RAW-файл',
+ 'RawFormat' => 'RAW-формат',
+ 'RawImageDigest' => 'Обзор RAW-изображения',
+ 'RawImageSegmentation' => 'Сегментация RAW-изображения',
+ 'RawToPreviewGain' => 'Коэффициент увеличения между RAW и файлом предпросмотра',
'RecommendedExposureIndex' => 'Рекомендуемый индекс экспозиции',
'RecordMode' => 'Режим записи',
'RedBalance' => 'Баланс красного',
- 'ReductionMatrix1' => 'Матрица редукции №1',
- 'ReductionMatrix2' => 'Матрица редукции №2',
+ 'ReductionMatrix1' => 'Матрица редукции 1',
+ 'ReductionMatrix2' => 'Матрица редукции 2',
'ReelName' => 'Название носителя информации',
- 'ReferenceBlackWhite' => 'Исходные значения черного и белого',
+ 'ReferenceBlackWhite' => 'Исходные значения чёрного и белого',
'ReferenceDate' => 'Дата предыдущего конверта',
'ReferenceNumber' => 'Номер предыдущего конверта',
'ReferenceService' => 'Ссылка на предыдущий конверт',
@@ -1503,18 +1515,18 @@ $VERSION = '1.05';
'ResolutionUnit' => {
Description => 'Единицы разрешения по X и Y',
PrintConv => {
- 'None' => 'Не указано',
- 'cm' => 'см.',
+ 'None' => 'Никакие',
+ 'cm' => 'см',
'inches' => 'дюймы',
},
},
'RoundTripVersion' => 'Версия Round Trip',
'RowInterleaveFactor' => 'Коэффициент чередования строк',
'RowsPerStrip' => 'Количество строк на полосу',
- 'SEMInfo' => 'SEM - Описание',
- 'SMaxSampleValue' => 'Макс. значение компонента',
- 'SMinSampleValue' => 'Мин. значение компонента',
- 'SRawType' => 'SRaw - Тип',
+ 'SEMInfo' => 'Информация о SEM',
+ 'SMaxSampleValue' => 'Максимальное значение компонента',
+ 'SMinSampleValue' => 'Минимальное значение компонента',
+ 'SRawType' => 'Тип SRaw',
'SampleFormat' => {
Description => 'Формат компонента',
PrintConv => {
@@ -1535,16 +1547,16 @@ $VERSION = '1.05';
},
},
'SamplesPerPixel' => 'Количество компонентов на пиксель',
- 'SamsungRawByteOrder' => 'Samsung Raw - Порядок байтов',
- 'SamsungRawPointersLength' => 'Samsung Raw - Длина указателей',
- 'SamsungRawPointersOffset' => 'Samsung Raw - Смещение указателей',
- 'SamsungRawUnknown' => 'Samsung Raw - Неизвестный ',
+ 'SamsungRawByteOrder' => 'Samsung RAW — Порядок байтов',
+ 'SamsungRawPointersLength' => 'Samsung RAW — Длина указателей',
+ 'SamsungRawPointersOffset' => 'Samsung RAW — Смещение указателей',
+ 'SamsungRawUnknown' => 'Samsung RAW — Неизвестно',
'Saturation' => {
Description => 'Насыщенность',
PrintConv => {
'High' => 'Высокая',
'Low' => 'Низкая',
- 'Normal' => 'Стандартная',
+ 'Normal' => 'Обычная',
},
},
'ScanningDirection' => {
@@ -1564,27 +1576,27 @@ $VERSION = '1.05';
Description => 'Тип снимаемой сцены',
PrintConv => {
'Landscape' => 'Пейзаж',
- 'Night' => 'Ночная съёмка',
- 'Other' => 'Другой режим',
+ 'Night' => 'Ночь',
+ 'Other' => 'Другой',
'Portrait' => 'Портрет',
- 'Standard' => 'Стандартный режим',
+ 'Standard' => 'Стандартный',
},
},
'SceneMode' => {
Description => 'Выбор сцены',
PrintConv => {
'3D Sweep Panorama' => '3D',
- 'Anti Motion Blur' => 'Устр. размыт. движ.',
- 'Auto' => 'Авто',
- 'Cont. Priority AE' => 'Непрер. приор. АЭ',
+ 'Anti Motion Blur' => 'Противоразмытие движения',
+ 'Auto' => 'Автоматический',
+ 'Cont. Priority AE' => 'Непрерывный приоритет AE',
'Handheld Night Shot' => 'Ночная съемка с рук',
'Landscape' => 'Пейзаж',
- 'Macro' => 'Макросъёмка',
+ 'Macro' => 'Макро',
'Night Portrait' => 'Ночной портрет',
- 'Night Scene' => 'Ночной вид',
+ 'Night Scene' => 'Ночная сцена',
'Night View/Portrait' => 'Ночной вид/портрет',
'Portrait' => 'Портрет',
- 'Sports' => 'Спортивные сцены',
+ 'Sports' => 'Спортивная',
'Sunset' => 'Закат',
'Sweep Panorama' => 'Панорамный обзор',
},
@@ -1592,7 +1604,7 @@ $VERSION = '1.05';
'SceneType' => {
Description => 'Тип сцены',
PrintConv => {
- 'Directly photographed' => 'Сфотографировано цифровой камерой',
+ 'Directly photographed' => 'Непосредственно сфотографированная',
},
},
'School' => 'Школа',
@@ -1631,7 +1643,7 @@ $VERSION = '1.05';
'Standard Output Sensitivity and ISO Speed' => 'Стандартная выходная чувствительность и ISO',
'Standard Output Sensitivity and Recommended Exposure Index' => 'Стандартная выходная чувствительность и рекомендуемый индекс экспозиции',
'Standard Output Sensitivity, Recommended Exposure Index and ISO Speed' => 'Стандартная выходная чувствительность и рекомендуемый индекс экспозиции и ISO',
- 'Unknown' => 'Неизвестный',
+ 'Unknown' => 'Неизвестно',
},
},
'SensorBottomBorder' => 'Нижняя граница матрицы',
@@ -1640,9 +1652,9 @@ $VERSION = '1.05';
'SensorRightBorder' => 'Правая граница матрицы',
'SensorTopBorder' => 'Верхняя граница матрицы',
'SensorWidth' => 'Ширина матрицы',
- 'SerialNumber' => 'Серийный номер камеры',
+ 'SerialNumber' => 'Серийный номер',
'Series' => 'Серия',
- 'ServiceIdentifier' => 'Идентификатор поставщика и продукта',
+ 'ServiceIdentifier' => 'Сервисный идентификатор',
'ShadingCompensation' => 'Устранение теней',
'ShadowScale' => 'Диапазон теней',
'Shadows' => 'Тени',
@@ -1651,43 +1663,43 @@ $VERSION = '1.05';
Description => 'Резкость',
PrintConv => {
'Hard' => 'Сильная',
- 'Normal' => 'Стандартная',
+ 'Normal' => 'Обычная',
'Soft' => 'Слабая',
},
},
- 'ShootingMode' => 'Режим съемки',
- 'ShortDocumentID' => 'Краткий ID документа ',
+ 'ShootingMode' => 'Режим съёмки',
+ 'ShortDocumentID' => 'Краткий ID документа',
'ShutterSpeed' => 'Выдержка',
- 'ShutterSpeedValue' => 'Выдержка',
- 'SignatureUsageRights' => 'Права на использование Подписи',
- 'SignerContactInfo' => 'Электронная подпись - Контактная информация',
- 'SigningAuthority' => 'Электронная подпись - Орган',
- 'SigningDate' => 'Электронная подпись - Дата подписи',
- 'SigningLocation' => 'Электронная подпись - Местоположение',
- 'SigningReason' => 'Электронная подпись - Причина подписания',
+ 'ShutterSpeedValue' => 'Значение выдержки',
+ 'SignatureUsageRights' => 'Права на использование подписи',
+ 'SignerContactInfo' => 'Контактная информация подписавшего',
+ 'SigningAuthority' => 'Полномочия подписания',
+ 'SigningDate' => 'Дата подписания',
+ 'SigningLocation' => 'Место подписания',
+ 'SigningReason' => 'Причина подписания',
'SimilarityIndex' => 'Индекс сходства',
'Site' => 'Сайт',
'SizeMode' => {
Description => 'Режим размера',
PrintConv => {
- 'Size Known' => 'Размер известный',
+ 'Size Known' => 'Размер известен',
'Size Not Known' => 'Размер не известен',
},
},
'Smoothness' => 'Сглаживание',
- 'Software' => 'Создано/Редактировано в приложении',
- 'SonyCropSize' => 'Sony - Размер рамки кадрирования',
- 'SonyCropTopLeft' => 'Sony - Верхний левый угол рамки кадрирования',
+ 'Software' => 'Приложение',
+ 'SonyCropSize' => 'Sony — Размер рамки кадрирования',
+ 'SonyCropTopLeft' => 'Sony — Верхний левый угол рамки кадрирования',
'SonyRawFileType' => {
- Description => 'Sony Raw - Тип файла ',
+ Description => 'Sony — Тип RAW-файла',
PrintConv => {
- 'Sony Compressed RAW' => 'Sony RAW сжатый',
- 'Sony Lossless Compressed RAW' => 'Sony RAW сжатый без потерь',
- 'Sony Uncompressed 12-bit RAW' => 'Sony 12-bit RAW несжатый',
- 'Sony Uncompressed 14-bit RAW' => 'Sony 14-bit RAW несжатый',
+ 'Sony Compressed RAW' => 'Sony — сжатый RAW',
+ 'Sony Lossless Compressed RAW' => 'Sony — сжатый без потерь RAW',
+ 'Sony Uncompressed 12-bit RAW' => 'Sony — 12-битный несжатый RAW',
+ 'Sony Uncompressed 14-bit RAW' => 'Sony — 14-битный несжатый RAW',
},
},
- 'SonyToneCurve' => 'Sony - Тоновая кривая',
+ 'SonyToneCurve' => 'Sony — Тоновая кривая',
'Source' => 'Источник',
'SpatialFrequencyResponse' => 'Отклик пространственной частоты',
'SpatialResolution' => 'Пространственное разрешение',
@@ -1695,8 +1707,8 @@ $VERSION = '1.05';
'SpectralSensitivity' => 'Спектральная чувствительность',
'StandardOutputSensitivity' => 'Стандартная выходная чувствительность',
'State' => 'Область',
- 'StoNits' => 'Освещенность (Коэффициент пересчета кд/м.2 )',
- 'StripByteCounts' => 'Кол-во байт на полосу после сжатия',
+ 'StoNits' => 'Освещенность (коэффициент пересчета кд/м2)',
+ 'StripByteCounts' => 'Количество байт на полосу после сжатия',
'StripOffsets' => 'Смещение изображения',
'StripRowCounts' => 'Количество полос',
'Sub-location' => 'Местоположение в городе',
@@ -1704,7 +1716,7 @@ $VERSION = '1.05';
'SubSecTime' => 'Дата, время и субсекунды',
'SubSecTimeDigitized' => 'Дата, время и субсекунды создания файла',
'SubSecTimeOriginal' => 'Дата, время и субсекунды съёмки',
- 'SubTileBlockSize' => 'Sub Tile - Размер блока',
+ 'SubTileBlockSize' => 'Размер блока подзаголовка',
'SubfileType' => {
Description => 'Тип подфайла',
PrintConv => {
@@ -1732,10 +1744,10 @@ $VERSION = '1.05';
'SubjectArea' => 'Область объекта',
'SubjectDistance' => 'Дистанция к фокусируемому объекту',
'SubjectDistanceRange' => {
- Description => 'Расстояние к снимаемому объекту',
+ Description => 'Расстояние до снимаемого объекта',
PrintConv => {
'Close' => 'Съёмка с близкого расстояния',
- 'Distant' => 'Съёмка с дальнего расстояния',
+ 'Distant' => 'Съёмка с дальнего расстояния',
'Macro' => 'Макро съёмка',
'Unknown' => 'Неизвестно',
},
@@ -1768,13 +1780,13 @@ $VERSION = '1.05';
},
'T82Options' => 'Параметры T82',
'T88Options' => 'Параметры T88',
- 'TIFF-EPStandardID' => 'TIFF-EP - ID стандарта',
+ 'TIFF-EPStandardID' => 'ID стандарта TIFF-EP',
'TIFF_FXExtensions' => {
- Description => 'TIFF FX разширения',
+ Description => 'Разширения TIFF_FX',
PrintConv => {
'JBIG2 Profile M' => 'JBIG2 профиль M',
'N Layer Profile M' => 'N слой Профиль M',
- 'Resolution/Image Width' => 'Разрешение/Ширина изображения',
+ 'Resolution/Image Width' => 'Разрешение/ширина изображения',
'Shared Data' => 'Общие данные',
},
},
@@ -1791,9 +1803,9 @@ $VERSION = '1.05';
'Thresholding' => {
Description => 'Пороговая обработка',
PrintConv => {
- 'No dithering or halftoning' => 'Дизеринг (псевдотонирование) или полутонирование не применялось',
- 'Ordered dither or halftone' => 'Дизеринг (псевдотонирование) или полутонирование',
- 'Randomized dither' => 'Рандомизированный дизеринг (псевдотонирование)',
+ 'No dithering or halftoning' => 'Нет дизеринга или полутонирования',
+ 'Ordered dither or halftone' => 'Заказной дизеринг или полутонирование',
+ 'Randomized dither' => 'Случайностный дизеринг',
},
},
'ThumbnailImage' => 'Миниатюра изображения',
@@ -1815,10 +1827,10 @@ $VERSION = '1.05';
'Transformation' => {
Description => 'Трансформация',
PrintConv => {
- 'Horizontal (normal)' => 'Горизонтально',
+ 'Horizontal (normal)' => 'Горизонтально (обычно)',
'Mirror horizontal' => 'Отразить по горизонтали',
- 'Mirror horizontal and rotate 270 CW' => 'Зеркало по горизонтали и поворот на 270° по часовой стрелке',
- 'Mirror horizontal and rotate 90 CW' => 'Зеркало по горизонтали и поворот на 90° по часовой стрелке',
+ 'Mirror horizontal and rotate 270 CW' => 'Отражение по горизонтали и поворот на 270° по часовой стрелке',
+ 'Mirror horizontal and rotate 90 CW' => 'Отражение по горизонтали и поворот на 90° по часовой стрелке',
'Mirror vertical' => 'Отразить по вертикали',
'Rotate 180' => 'Повернуть на 180°',
'Rotate 270 CW' => 'Поворот на 270° по часовой стрелке',
@@ -1826,16 +1838,17 @@ $VERSION = '1.05';
},
},
'TransmissionReference' => 'Ссылка на источник',
- 'TransparencyIndicator' => 'Наличие прозрачности',
- 'TrapIndicator' => 'Применен ли треппинг к файлу',
+ 'TransparencyIndicator' => 'Показатель прозрачности',
+ 'TrapIndicator' => 'Показатель треплинга',
'Trapped' => 'Треппинг',
'Type' => 'Тип',
- 'UIC1Tag' => 'UIC - Тег 1',
- 'UIC2Tag' => 'UIC - Тег 2',
- 'UIC3Tag' => 'UIC - Тег 3',
- 'UIC4Tag' => 'UIC - Тег 4',
+ 'UIC1Tag' => 'UIC — Тег 1',
+ 'UIC2Tag' => 'UIC — Тег 2',
+ 'UIC3Tag' => 'UIC — Тег 3',
+ 'UIC4Tag' => 'UIC — Тег 4',
+ 'USPTOMiscellaneous' => 'USPTO — Разнообразный',
'USPTOOriginalContentType' => {
- Description => 'USPTO - Исходный тип контента',
+ Description => 'USPTO — Исходный тип контента',
PrintConv => {
'Color' => 'Цвет',
'Grayscale' => 'Оттенки серого',
@@ -1853,13 +1866,13 @@ $VERSION = '1.05';
'UniqueDocumentID' => 'Уникальный ID документа',
'UniqueObjectName' => 'Уникальное имя объекта',
'Urgency' => {
- Description => 'Приоритет обработки',
+ Description => 'Срочность',
PrintConv => {
- '0 (reserved)' => '0 (Зарезервированно)',
- '1 (most urgent)' => '1 (Срочно)',
- '5 (normal urgency)' => '5 (Обычный)',
- '8 (least urgent)' => '8 (Не срочно)',
- '9 (user-defined priority)' => '9 (Пользовательский приоритет)',
+ '0 (reserved)' => '0 (зарезервировано)',
+ '1 (most urgent)' => '1 (срочно)',
+ '5 (normal urgency)' => '5 (обычная)',
+ '8 (least urgent)' => '8 (не срочно)',
+ '9 (user-defined priority)' => '9 (пользовательский приоритет)',
},
},
'UsageRightsMessage' => 'Сообщение о правах использования',
@@ -1884,18 +1897,18 @@ $VERSION = '1.05';
PrintConv => {
'Auto' => 'Автоматическая',
'No correction params available' => 'Недоступна',
- 'Off' => 'Не включена',
+ 'Off' => 'Отключена',
},
},
'Volume' => 'Том',
- 'WBBlueLevel' => 'Баланс Белого - Уровень синего',
- 'WBGreenLevel' => 'Баланс Белого - Уровень зелёного',
- 'WBRedLevel' => 'Баланс Белого - Уровень красного',
- 'WB_GRGBLevels' => 'Уровни WB GRGB',
- 'WangAnnotation' => 'Wang Imaging - Аннотация',
- 'WangTag1' => 'Wang Imaging - Тег 1',
- 'WangTag3' => 'Wang Imaging - Тег 3',
- 'WangTag4' => 'Wang Imaging - Тег 4',
+ 'WBBlueLevel' => 'Баланс Белого — Уровень синего',
+ 'WBGreenLevel' => 'Баланс Белого — Уровень зелёного',
+ 'WBRedLevel' => 'Баланс Белого — Уровень красного',
+ 'WB_GRGBLevels' => 'Уровни WB_GRGB',
+ 'WangAnnotation' => 'Wang Imaging — Аннотация',
+ 'WangTag1' => 'Wang Imaging — Тег 1',
+ 'WangTag3' => 'Wang Imaging — Тег 3',
+ 'WangTag4' => 'Wang Imaging — Тег 4',
'WarpQuadrilateral' => 'Деформация четвероугольника',
'WaterDepth' => 'Глубина воды',
'WhiteBalance' => {
@@ -1904,37 +1917,37 @@ $VERSION = '1.05';
'Auto' => 'Автоматический',
'Black & White' => 'Монохром',
'Cloudy' => 'Облачность',
- 'Color Temperature/Color Filter' => 'Цветовая температура / Цветовой фильтр',
+ 'Color Temperature/Color Filter' => 'Цветовая температура/цветовой фильтр',
'Cool White Fluorescent' => 'Флуоресцентный белый холодный',
- 'Custom' => 'Пользователь',
- 'Custom 1' => 'ПЕРСОНАЛЬНЫЙ 1',
- 'Custom 2' => 'ПЕРСОНАЛЬНЫЙ 2',
- 'Custom 3' => 'ПЕРСОНАЛЬНЫЙ 3',
- 'Custom 4' => 'ПЕРСОНАЛЬНЫЙ 4',
+ 'Custom' => 'Пользовательский',
+ 'Custom 1' => 'Пользовательский 1',
+ 'Custom 2' => 'Пользовательский 2',
+ 'Custom 3' => 'Пользовательский 3',
+ 'Custom 4' => 'Пользовательский 4',
'Day White Fluorescent' => 'Флуоресцентный белый дневной',
- 'Daylight' => 'Дневной свет',
+ 'Daylight' => 'Дневной',
'Daylight Fluorescent' => 'Флуоресцентный дневной',
'Flash' => 'Вспышка',
'Fluorescent' => 'Флуоресцентный',
'Manual' => 'Ручной',
'Shade' => 'Тень',
'Tungsten' => 'Лампа накаливания',
- 'Unknown' => 'неизвестно',
+ 'Unknown' => 'Неизвестно',
'Warm White Fluorescent' => 'Флуоресцентный теплый белый',
'White Fluorescent' => 'Флуоресцентный белый',
},
},
'WhiteLevel' => 'Уровень белого',
- 'WhitePoint' => 'Цветность белой точки',
- 'WidthResolution' => 'Разрешение по ширине (PPI)',
+ 'WhitePoint' => 'Точка белого',
+ 'WidthResolution' => 'Разрешение по ширине',
'WrapModes' => 'Режим обёртывания',
- 'Writer-Editor' => 'Писатель/Редактор',
+ 'Writer-Editor' => 'Писатель/редактор',
'XClipPathUnits' => 'Единицы обтравочного контура (X)',
- 'XPAuthor' => 'XP - Автор',
- 'XPComment' => 'XP - Комментарии',
- 'XPKeywords' => 'XP - Ключевые слова',
- 'XPSubject' => 'XP - Тема',
- 'XPTitle' => 'XP - Название',
+ 'XPAuthor' => 'XP — Автор',
+ 'XPComment' => 'XP — Комментарии',
+ 'XPKeywords' => 'XP — Ключевые слова',
+ 'XPSubject' => 'XP — Тема',
+ 'XPTitle' => 'XP — Название',
'XPosition' => 'Смещение изображения по X',
'XResolution' => 'Разрешение по X',
'YCbCrCoefficients' => 'Коэффициенты преобразования из RGB в Y Cb Cr',
@@ -1947,22 +1960,21 @@ $VERSION = '1.05';
},
'YCbCrSubSampling' => 'Коэффициент субдискретизации Y Cb Cr',
'YClipPathUnits' => 'Единицы обтравочного контура (Y)',
- 'YPosition' => 'Смещение изображения по Y',
+ 'YPosition' => 'Позициия по Y',
'YResolution' => 'Разрешение по Y',
'Year' => 'Год',
'ZoneMatching' => {
Description => 'Соответствие областей',
PrintConv => {
- 'High Key' => 'Hi',
- 'ISO Setting Used' => 'Отключено',
- 'Low Key' => 'Lo',
+ 'High Key' => 'Высокий ключ',
+ 'ISO Setting Used' => 'Используемые настройки ISO',
+ 'Low Key' => 'Низкий ключ',
},
},
);
1; # end
-
__END__
=head1 NAME
diff --git a/lib/Image/ExifTool/Minolta.pm b/lib/Image/ExifTool/Minolta.pm
index 7f40d7cc..a789d6a8 100644
--- a/lib/Image/ExifTool/Minolta.pm
+++ b/lib/Image/ExifTool/Minolta.pm
@@ -49,7 +49,7 @@ use vars qw($VERSION %minoltaLensTypes %minoltaTeleconverters %minoltaColorMode
use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::Exif;
-$VERSION = '2.78';
+$VERSION = '2.79';
# Full list of product codes for Sony-compatible Minolta lenses
# (ref http://www.kb.sony.com/selfservice/documentLink.do?externalId=C1000570)
@@ -363,7 +363,9 @@ $VERSION = '2.78';
137 => 'Cosina 70-210mm F2.8-4 AF', #11
138 => 'Soligor 19-35mm F3.5-4.5', #11
139 => 'Tokina AF 28-300mm F4-6.3', #IB
- 142 => 'Voigtlander 70-300mm F4.5-5.6', #JD
+ # (the following Cosina 70-300mm lens was also marketed as a Phoenix, Vivitar Series 1, and
+ # some sort of 3rd-party marketing as a Voightlander 70-300mm F4.5-5.6 SKOPAR AF, ref IB)
+ 142 => 'Cosina AF 70-300mm F4.5-5.6 MC', #IB (was 'Voigtlander 70-300mm F4.5-5.6', #JD)
146 => 'Voigtlander Macro APO-Lanthar 125mm F2.5 SL', #JD
194 => 'Tamron SP AF 17-50mm F2.8 XR Di II LD Aspherical [IF]', #23 (Model A16)
202 => 'Tamron SP AF 70-200mm F2.8 Di LD [IF] Macro', #JR (Model A001) (see also 255.7)
diff --git a/lib/Image/ExifTool/Nikon.pm b/lib/Image/ExifTool/Nikon.pm
index 768ce600..6deaa343 100644
--- a/lib/Image/ExifTool/Nikon.pm
+++ b/lib/Image/ExifTool/Nikon.pm
@@ -60,7 +60,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::Exif;
use Image::ExifTool::GPS;
-$VERSION = '3.67';
+$VERSION = '3.69';
sub LensIDConv($$$);
sub ProcessNikonAVI($$$);
@@ -333,6 +333,7 @@ sub GetAFPointGrid($$;$);
'AA 48 88 A4 3C 3C D5 0E' => 'AF-S Nikkor 180-400mm f/4E TC1.4 FL ED VR + 1.4x TC',
'AB 44 5C 8E 34 3C D6 CE' => 'AF-P Nikkor 70-300mm f/4.5-5.6E ED VR',
'AB 44 5C 8E 34 3C D6 0E' => 'AF-P Nikkor 70-300mm f/4.5-5.6E ED VR',
+ 'AB 44 5C 8E 34 3C D6 4E' => 'AF-P Nikkor 70-300mm f/4.5-5.6E ED VR', #IB
'AC 54 3C 3C 0C 0C D7 46' => 'AF-S Nikkor 28mm f/1.4E ED',
'AC 54 3C 3C 0C 0C D7 06' => 'AF-S Nikkor 28mm f/1.4E ED',
'AD 3C A0 A0 3C 3C D8 0E' => 'AF-S Nikkor 500mm f/5.6E PF ED VR',
@@ -1719,7 +1720,7 @@ my %binaryDataAttrs = (
TagTable => 'Image::ExifTool::Nikon::ShotInfoD500',
DecryptStart => 4,
DecryptLen => 0x2c24 + 12,
- DecryptMore => 'Get32u(\$data, 0xa0) + 12',
+ DecryptMore => 'Get32u(\$data, 0xa8) + 0x2ea5 - 0x2c90',
ByteOrder => 'LittleEndian',
},
},
@@ -1730,7 +1731,7 @@ my %binaryDataAttrs = (
TagTable => 'Image::ExifTool::Nikon::ShotInfoD500',
DecryptStart => 4,
DecryptLen => 0x2cb2 + 4,
- DecryptMore => 'Get32u(\$data, 0xa0) + 12',
+ DecryptMore => 'Get32u(\$data, 0xa8) + 0x2ea5 - 0x2c90',
ByteOrder => 'LittleEndian',
},
},
@@ -4466,16 +4467,18 @@ my %nikonFocalConversions = (
RawConv => '$$self{NewLensData} = 1 unless $val =~ /^.\0+$/s; undef',
Hidden => 1,
},
- #0x30 => {
- # Name => 'LensID', ? (NC)
- # Condition => '$$self{NewLensData}',
- # Format => 'int16u',
- # PrintConv => {
- # 1 => 'Nikkor Z 24-70mm f/4 S',
- # 4 => 'Nikkor Z 35mm f/1.8 S',
- # 9 => 'Nikkor Z 50mm f/1.8 S',
- # },
- #},
+ 0x30 => {
+ Name => 'LensID',
+ Condition => '$$self{NewLensData}',
+ Format => 'int16u',
+ PrintConv => {
+ 1 => 'Nikkor Z 24-70mm f/4 S',
+ 2 => 'Nikkor Z 14-30mm f/4 S',
+ 4 => 'Nikkor Z 35mm f/1.8 S',
+ 9 => 'Nikkor Z 50mm f/1.8 S',
+ 13 => 'Nikkor Z 24-70mm f/2.8 S',
+ },
+ },
0x36 => {
Name => 'MaxAperture',
Condition => '$$self{NewLensData}',
@@ -5685,8 +5688,8 @@ my %nikonFocalConversions = (
WRITE_PROC => \&Image::ExifTool::Nikon::ProcessNikonEncrypted,
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
VARS => { ID_LABEL => 'Index' },
- DATAMEMBER => [ 0x04, 0x10, 0x14, 0x2c, 0x50, 0x58, 0xa0, 0xb0,
- 0x07b0, 0x086c, 0x0e7c, 0x0eea, 0x2c23 ],
+ DATAMEMBER => [ 0x04, 0x10, 0x14, 0x2c, 0x50, 0x58, 0xa0, 0xa8, 0xb0,
+ 0x07b0, 0x086c, 0x0e7c, 0x0eea, 0x2c23, 0x2c8f ],
IS_SUBDIR => [ 0x0eeb ],
WRITABLE => 1,
FIRST_ENTRY => 0,
@@ -5752,6 +5755,14 @@ my %nikonFocalConversions = (
Hidden => 1,
RawConv => '$$self{OrientationOffset} = $val || 0x10000000; undef', # (ignore if 0)
},
+ 0xa8 => {
+ Name => 'OtherOffset',
+ DataMember => 'OtherOffset',
+ Format => 'int32u',
+ Writable => 0,
+ Hidden => 1,
+ RawConv => '$$self{OtherOffset} = $val || 0x10000000; undef', # (ignore if 0)
+ },
#
# Tag ID's below are the offsets for a D500 JPEG image, but these offsets change
# for various image types according to the offset table above
@@ -6141,9 +6152,15 @@ my %nikonFocalConversions = (
PrintConv => 'sprintf("%.1f", $val)',
PrintConvInv => '$val',
},
- # note: DecryptLen currently set to OrientationOffset + 12
-
- # (not sure about how this moves around)
+### 0x2c90 - OtherInfo start (D500 firmware 1.20d)
+ 0x2c8f => {
+ Name => 'Hook7',
+ Hidden => 1,
+ RawConv => 'undef',
+ # account for variable location of OtherInfo data
+ Hook => '$varSize = $$self{OtherOffset} - 0x2c90',
+ },
+ # (needs testing)
#0x2cb2 => {
# Name => 'ExtendedPhotoShootingBanks',
# Mask => 0x01,
@@ -6152,10 +6169,10 @@ my %nikonFocalConversions = (
# 1 => 'Off',
# },
#},
- # don't decode this because it is duplicate information and moves around with firmware versions
+ # (may not be reliable and is found elsewhere)
#0x2ea2 => {
# Name => 'Rotation',
- # Condition => '$$self{Model} =~ /\bD500\b/ and $$self{FirmwareVersion} =~ /^1.1/',
+ # Condition => '$$self{Model} =~ /\bD500\b/',
# Notes => 'D500 firmware 1.1x',
# Mask => 0x30,
# PrintConv => {
@@ -6165,6 +6182,19 @@ my %nikonFocalConversions = (
# 3 => 'Rotate 180',
# },
#},
+ 0x2ea4 => {
+ Name => 'NikonMeteringMode',
+ Condition => '$$self{Model} =~ /\bD500\b/', # (didn't seem to work for D5, but I need more samples)
+ Notes => 'D500 only',
+ Mask => 0x03,
+ PrintConv => {
+ 0 => 'Matrix',
+ 1 => 'Center',
+ 2 => 'Spot',
+ 3 => 'Highlight'
+ },
+ },
+ # note: DecryptLen currently set to OtherOffset + 0x2ea5 - 0x2c90
);
# shot information for the D610 firmware 1.00 (encrypted) - ref PH
%Image::ExifTool::Nikon::ShotInfoD610 = (
@@ -6370,7 +6400,7 @@ my %nikonFocalConversions = (
},
},
0x175e => {
- Name => 'D810MeteringMode',
+ Name => 'NikonMeteringMode',
Mask => 0x03,
PrintConv => {
0 => 'Matrix',
diff --git a/lib/Image/ExifTool/PNG.pm b/lib/Image/ExifTool/PNG.pm
index a0354323..9213963f 100644
--- a/lib/Image/ExifTool/PNG.pm
+++ b/lib/Image/ExifTool/PNG.pm
@@ -19,6 +19,14 @@
# decompress then decode the ASCII/hex profile information before
# you can edit it, then you have to ASCII/hex-encode, recompress
# and calculate a CRC before you can write it out again. gaaaak.
+#
+# Although XMP is allowed after the IDAT chunk according to the
+# PNG specifiction, some apps (Apple Spotlight and Preview for
+# OS X 10.8.5 and Adobe Photoshop CC 14.0) ignore it unless it
+# comes before IDAT. As of version 11.58, ExifTool uses a 2-pass
+# writing algorithm to allow it to be compatible with XMP after
+# IDAT while writing it before IDAT. (PNG and EXIF are still
+# written after IDAT.)
#------------------------------------------------------------------------------
package Image::ExifTool::PNG;
@@ -27,7 +35,7 @@ use strict;
use vars qw($VERSION $AUTOLOAD %stdCase);
use Image::ExifTool qw(:DataAccess :Utils);
-$VERSION = '1.47';
+$VERSION = '1.51';
sub ProcessPNG_tEXt($$$);
sub ProcessPNG_iTXt($$$);
@@ -502,9 +510,7 @@ my %unreg = ( Notes => 'unregistered' );
XMP specification, and is where ExifTool will add a new XMP chunk if the
image didn't already contain XMP
},
- SubDirectory => {
- TagTable => 'Image::ExifTool::XMP::Main',
- },
+ SubDirectory => { TagTable => 'Image::ExifTool::XMP::Main' },
},
'Raw profile type APP1' => [
{
@@ -792,7 +798,7 @@ sub FoundPNG($$$$;$$$$)
my $processed;
if ($$tagInfo{SubDirectory}) {
if ($$et{OPTIONS}{Validate} and $$tagInfo{NonStandard}) {
- $et->Warn("Non-standard $$tagInfo{NonStandard} in PNG $tag chunk", 1);
+ $et->WarnOnce("Non-standard $$tagInfo{NonStandard} in PNG $tag chunk", 1);
}
my $subdir = $$tagInfo{SubDirectory};
my $dirName = $$subdir{DirName} || $tagName;
@@ -830,23 +836,11 @@ sub FoundPNG($$$$;$$$$)
return 1 unless $$et{EDIT_DIRS}{$dirName};
$$outBuff = $et->WriteDirectory(\%subdirInfo, $subTable);
if ($tagName eq 'XMP' and $$outBuff) {
- if ($$et{FoundIDAT} and $$et{DEL_GROUP}{XMP}) {
- $et->VPrint(0,' Deleting XMP');
- $$outBuff = '';
- } else {
- # make sure the XMP is marked as read-only
- Image::ExifTool::XMP::ValidateXMP($outBuff,'r');
- }
+ # make sure the XMP is marked as read-only
+ Image::ExifTool::XMP::ValidateXMP($outBuff,'r');
}
DoneDir($et, $dirName, $outBuff, $$tagInfo{NonStandard});
} else {
- # issue warning for standard XMP after IDAT (PNGEarlyXMP option)
- if ($tagName eq 'XMP' and not $$tagInfo{NonStandard} and
- $$et{FoundIDAT} and $$et{FoundIDAT} == 2)
- {
- $et->Warn('XMP found after PNG IDAT');
- $$et{FoundIDAT} = 1;
- }
$processed = $et->ProcessDirectory(\%subdirInfo, $subTable, $processProc);
}
$compressed = 1; # pretend this is compressed since it is binary data
@@ -1055,7 +1049,7 @@ sub ProcessProfile($$$)
$$outBuff = $et->WriteDirectory(\%dirInfo, $tagTablePtr,
\&Image::ExifTool::WriteTIFF);
$$outBuff = $Image::ExifTool::exifAPP1hdr . $$outBuff if $$outBuff;
- DoneDir($et, 'IFD0', $outBuff);
+ DoneDir($et, 'IFD0', $outBuff, $$tagInfo{NonStandard});
} else {
$processed = $et->ProcessTIFF(\%dirInfo);
}
@@ -1069,7 +1063,7 @@ sub ProcessProfile($$$)
return 1 unless $$editDirs{XMP};
$$outBuff = $et->WriteDirectory(\%dirInfo, $tagTablePtr);
$$outBuff and $$outBuff = $Image::ExifTool::xmpAPP1hdr . $$outBuff;
- DoneDir($et, 'XMP', $outBuff, 1);
+ DoneDir($et, 'XMP', $outBuff, $$tagInfo{NonStandard});
} else {
$processed = $et->ProcessDirectory(\%dirInfo, $tagTablePtr);
}
@@ -1085,7 +1079,7 @@ sub ProcessProfile($$$)
}
$$outBuff = $et->WriteDirectory(\%dirInfo, $tagTablePtr,
\&Image::ExifTool::WriteTIFF);
- DoneDir($et, 'IFD0', $outBuff);
+ DoneDir($et, 'IFD0', $outBuff, $$tagInfo{NonStandard});
} else {
$processed = $et->ProcessTIFF(\%dirInfo);
}
@@ -1148,6 +1142,7 @@ sub ProcessPNG_tEXt($$$)
my ($et, $dirInfo, $tagTablePtr) = @_;
my ($tag, $val) = split /\0/, ${$$dirInfo{DataPt}}, 2;
my $outBuff = $$dirInfo{OutBuff};
+ $$et{INDENT} = substr($$et{INDENT}, 0, -2) if $$et{OPTIONS}{Verbose};
return FoundPNG($et, $tagTablePtr, $tag, $val, undef, $outBuff, 'Latin');
}
@@ -1166,6 +1161,7 @@ sub ProcessPNG_iTXt($$$)
# set compressed flag so we will decompress it in FoundPNG()
$compressed and $compressed = 2 + $meth;
my $outBuff = $$dirInfo{OutBuff};
+ $$et{INDENT} = substr($$et{INDENT}, 0, -2) if $$et{OPTIONS}{Verbose};
return FoundPNG($et, $tagTablePtr, $tag, $val, $compressed, $outBuff, 'UTF8', $lang);
}
@@ -1234,14 +1230,14 @@ sub ProcessPNG($$)
my $datChunk = '';
my $datCount = 0;
my $datBytes = 0;
- my ($sig, $err);
+ my ($sig, $err, $xmp, $foundXMP, $foundIDAT, $editingXMP, $deletingXMP);
# check to be sure this is a valid PNG/MNG/JNG image
return 0 unless $raf->Read($sig,8) == 8 and $pngLookup{$sig};
- $$raf{NoBuffer} = 1 if $et->Options('FastScan'); # disable buffering in FastScan mode
+ # disable buffering in FastScan mode
+ $$raf{NoBuffer} = 1 if $et->Options('FastScan') and not $outfile;
- my $earlyXMP = $et->Options('PNGEarlyXMP');
if ($outfile) {
delete $$et{TextChunkType};
Write($outfile, $sig) or $err = 1 if $outfile;
@@ -1249,18 +1245,14 @@ sub ProcessPNG($$)
$$et{ADD_PNG} = $et->GetNewTagInfoHash(
\%Image::ExifTool::PNG::Main,
\%Image::ExifTool::PNG::TextualData);
- # NOTE: PNGDoneTag and PNGDoneDir are used to keep track of metadata added
- # before the PNG IEND chunk is encountered. Currently this is implemented
- # only for XMP (written before IDAT with the PNGEarlyXMP option), but
- # may be implemented in the future for other types - PH
+ # NOTE: PNGDoneTag is used to keep track of metadata added before the
+ # PNG IEND chunk is encountered. Currently this is implemented only
+ # for XMP, but may be implemented in the future for other types - PH
$$et{PNGDoneTag} = { };
- $$et{PNGDoneDir} = { };
# initialize with same directories, with PNG tags taking priority
$et->InitWriteDirs(\%pngMap,'PNG');
- # write XMP before IDAT if we would delete it later anyway
- $earlyXMP = 1 if $$et{DEL_GROUP}{XMP};
- } elsif ($$et{OPTIONS}{Validate}) {
- $earlyXMP = 1; # warn about XMP after IDAT when validating
+ $editingXMP = $$et{EDIT_DIRS}{XMP};
+ $deletingXMP = $$et{DEL_GROUP}{XMP};
}
my ($fileType, $hdrChunk, $endChunk) = @{$pngLookup{$sig}};
$et->SetFileType($fileType); # set the FileType tag
@@ -1271,9 +1263,34 @@ sub ProcessPNG($$)
$mngTablePtr = GetTagTable('Image::ExifTool::MNG::Main');
}
my $verbose = $et->Options('Verbose');
+ my $validate = $et->Options('Validate');
my $out = $et->Options('TextOut');
my ($hbuf, $dbuf, $cbuf, $wasHdr, $wasEnd);
+ # scan ahead for XMP if we are editing it
+ if ($outfile and $editingXMP and not $deletingXMP) {
+ while ($raf->Read($hbuf,8) == 8) {
+ my ($len, $chunk) = unpack('Na4',$hbuf);
+ last if $len > 0x7fffffff;
+ if ($chunk ne 'iTXt' or $len < 22) {
+ $raf->Seek($len + 4, 1) or last;
+ next;
+ }
+ $raf->Read($dbuf, 18) == 18 or last;
+ unless ($dbuf eq "XML:com.adobe.xmp\0") { # is this XMP?
+ $raf->Seek($len - 18 + 4, 1) or last;
+ next;
+ };
+ $raf->Read($dbuf, $len - 18) == $len - 18 or last;
+ my ($compressed, $meth) = unpack('CC', $dbuf);
+ $compressed and $et->Error('XMP is compressed'), last;
+ my ($lang, $trans);
+ ($lang, $trans, $xmp) = split /\0/, substr($dbuf, 2), 3;
+ last;
+ }
+ $raf->Seek(8,0) or $et->Error('Error seeking in file'), return -1;
+ }
+
# process the PNG/MNG/JNG chunks
undef $noCompressLib;
for (;;) {
@@ -1298,25 +1315,52 @@ sub ProcessPNG($$)
my $s = $datCount > 1 ? 's' : '';
print $out "$fileType $datChunk ($datCount chunk$s, total $datBytes bytes)\n";
$datCount = $datBytes = 0;
- $datChunk = '';
}
- if ($chunk =~ /^(IDAT|JDAT|JDAA)$/) {
- $datChunk = $chunk;
- $datCount++;
- $datBytes += $len;
+ }
+ unless ($wasHdr) {
+ if ($chunk eq $hdrChunk) {
+ $wasHdr = 1;
+ } elsif ($hdrChunk eq 'IHDR' and $chunk eq 'CgBI') {
+ $et->Warn('Non-standard PNG image (Apple iPhone format)');
+ } else {
+ $et->Warn("$fileType image did not start with $hdrChunk");
+ last;
}
}
+ if ($chunk =~ /^(IDAT|JDAT|JDAA)$/) {
+ $datChunk = $chunk;
+ $datCount++;
+ $datBytes += $len;
+ } else {
+ $datChunk = '';
+ }
if ($outfile) {
+ # add XMP before any data chunk, or before IEND/MEND if no data
+ if ($datChunk or $chunk eq $endChunk) {
+ if ($xmp) {
+ # rewrite existing XMP
+ my $tbl = GetTagTable('Image::ExifTool::PNG::TextualData');
+ my $buf;
+ FoundPNG($et, $tbl, 'XML:com.adobe.xmp', $xmp, 0, \$buf, 'UTF8', '');
+ my $outBuff = defined $buf ? \$buf : \$xmp;
+ if (length $$outBuff) {
+ my $hdr = pack('Na4', length($$outBuff), 'iTXt');
+ my $crc = CalculateCRC(\$hdr, undef, 4);
+ $crc = CalculateCRC($outBuff, $crc);
+ Write($outfile, $hdr, $$outBuff, pack('N',$crc)) or $err = 1;
+ }
+ undef $xmp; # done with this XMP
+ } elsif ($$et{ADD_DIRS}{XMP}) {
+ # add new XMP if necessary
+ AddChunks($et, $outfile, 'XMP') or $err = 1;
+ }
+ }
if ($chunk eq $endChunk) {
- # add any new chunks immediately before the IEND/MEND chunk
+ # add other new chunks immediately before the IEND/MEND chunk
AddChunks($et, $outfile) or $err = 1;
} elsif ($chunk eq 'PLTE' or $chunk eq 'IDAT') {
- if ($chunk eq 'IDAT') {
- # add XMP before IDAT if specified
- AddChunks($et, $outfile, 'XMP') or $err = 1 if $earlyXMP;
- # pHYs comes before IDAT
- AddChunks($et, $outfile, 'PNG-pHYs') or $err = 1;
- }
+ # pHYs must come before IDAT
+ AddChunks($et, $outfile, 'PNG-pHYs') or $err = 1 if $chunk eq 'IDAT';
# iCCP chunk must come before PLTE and IDAT
# (ignore errors -- will add later as text profile if this fails)
Add_iCCP($et, $outfile);
@@ -1352,34 +1396,61 @@ sub ProcessPNG($$)
}
next;
}
- # set FoundIDAT flag: 1=after IDAT, 2=after IDAT and warn about late XMP
- $$et{FoundIDAT} = $earlyXMP ? 2 : 1 if $chunk eq 'IDAT';
+ if ($datChunk) {
+ $foundIDAT = 1 if $chunk eq 'IDAT'; # set flag indicating IDAT was found
+ # skip over data chunks if possible
+ unless ($verbose or $validate or $outfile) {
+ $raf->Seek($len + 4, 1) or $et->Warn('Seek error'), last;
+ next;
+ }
+ }
# read chunk data and CRC
unless ($raf->Read($dbuf,$len)==$len and $raf->Read($cbuf, 4)==4) {
$et->Warn("Corrupted $fileType image") unless $wasEnd;
last;
}
- unless ($wasHdr) {
- if ($chunk eq $hdrChunk) {
- $wasHdr = 1;
- } elsif ($hdrChunk eq 'IHDR' and $chunk eq 'CgBI') {
- $et->Warn('Non-standard PNG image (Apple iPhone format)');
- } else {
- $et->Warn("$fileType image did not start with $hdrChunk");
- last;
- }
- }
- if ($verbose) {
+ if ($verbose or $validate or $outfile) {
# check CRC when in verbose mode (since we don't care about speed)
my $crc = CalculateCRC(\$hbuf, undef, 4);
$crc = CalculateCRC(\$dbuf, $crc);
- $crc == unpack('N',$cbuf) or $et->Warn("Bad CRC for $chunk chunk") unless $wasEnd;
+ unless ($crc == unpack('N',$cbuf)) {
+ my $msg = "Bad CRC for $chunk chunk";
+ $outfile ? $et->Error($msg, 1) : $et->Warn($msg);
+ }
if ($datChunk) {
Write($outfile, $hbuf, $dbuf, $cbuf) or $err = 1 if $outfile;
next;
}
- print $out "$fileType $chunk ($len bytes):\n";
- $et->VerboseDump(\$dbuf, Addr => $raf->Tell() - $len - 4) if $verbose > 2;
+ if ($verbose) {
+ print $out "$fileType $chunk ($len bytes):\n";
+ $et->VerboseDump(\$dbuf, Addr => $raf->Tell() - $len - 4) if $verbose > 2;
+ }
+ }
+ if ($chunk eq 'iTXt' and $dbuf =~ /^XML:com.adobe.xmp\0/) {
+ $foundXMP = ($foundXMP || 0) + 1;
+ if ($outfile and $editingXMP) {
+ # handle this standard XMP iTXt chunk
+ my $editNow;
+ if ($deletingXMP) {
+ # just fall through
+ } elsif ($foundXMP > 1) {
+ $et->Error('Multiple XMP chunks', 1) if $foundXMP == 2;
+ } elsif ($foundIDAT) {
+ $et->WarnOnce('XMP found after PNG IDAT. Fixed.');
+ } elsif ($xmp) {
+ # the XMP is already before IDAT, so edit it now
+ $editNow = 1;
+ undef $xmp; # (don't write again later)
+ }
+ unless ($editNow) {
+ ++$$et{CHANGED};
+ print $out " Deleting XMP\n" if $verbose;
+ next;
+ }
+ } else {
+ $et->WarnOnce('XMP found after PNG IDAT') if $foundIDAT;
+ $et->Warn('Multiple XMP chunks') if $foundXMP == 2;
+ }
}
# translate case of chunk name if necessary
if (not $$tagTablePtr{$chunk}) {
diff --git a/lib/Image/ExifTool/QuickTime.pm b/lib/Image/ExifTool/QuickTime.pm
index ebdfdd53..7d07f9a9 100644
--- a/lib/Image/ExifTool/QuickTime.pm
+++ b/lib/Image/ExifTool/QuickTime.pm
@@ -1337,8 +1337,8 @@ my %eeBox = (
L<ItemList|Image::ExifTool::TagNames/QuickTime ItemList Tags> tags are
preferred over these, so to create the tag when a same-named ItemList tag
exists, either "UserData" must be specified (eg. C<-UserData:Artist=Monet>
- on the command line), or the PREFERRED level must be changed via the config
- file.
+ on the command line), or the PREFERRED level must be changed via
+ L<the config file|../config.html#PREF>.
},
"\xa9cpy" => { Name => 'Copyright', Groups => { 2 => 'Author' } },
"\xa9day" => {
@@ -5568,7 +5568,7 @@ my %eeBox = (
preferred when writing, so to create a tag when a same-named tag exists in
either of these tables, either the "Keys" location must be specified (eg.
C<-Keys:Author=Phil> on the command line), or the PREFERRED level must be
- changed via the config file.
+ changed via L<the config file|../config.html#PREF>.
},
version => 'Version',
album => 'Album',
diff --git a/lib/Image/ExifTool/README b/lib/Image/ExifTool/README
index 1b00d66d..fadd7860 100644
--- a/lib/Image/ExifTool/README
+++ b/lib/Image/ExifTool/README
@@ -360,6 +360,9 @@ numerical, and generated automatically otherwise.
'DataTag' - associated tag name containing data for offset or
byte count tags.
+ 'DelGroup' - set if deleting this tag is the same as deleting
+ the group of the same name.
+
'Drop' - [IFD-format and PhaseOne makernote tags only] set to
1 for tags that should be excluded when rebuilding maker notes
when copying all tags. Set to a number larger than 1 to drop
diff --git a/lib/Image/ExifTool/RIFF.pm b/lib/Image/ExifTool/RIFF.pm
index c77bb730..5321a6c6 100644
--- a/lib/Image/ExifTool/RIFF.pm
+++ b/lib/Image/ExifTool/RIFF.pm
@@ -29,7 +29,7 @@ use strict;
use vars qw($VERSION);
use Image::ExifTool qw(:DataAccess :Utils);
-$VERSION = '1.52';
+$VERSION = '1.53';
sub ConvertTimecode($);
sub ProcessSGLT($$$);
@@ -904,7 +904,7 @@ my %code2charset = (
# RIFF character set chunk
%Image::ExifTool::RIFF::CSET = (
- PROCESS_PROC => \&Image::ExifTool::RIFF::ProcessBinaryData,
+ PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
GROUPS => { 2 => 'Other' },
FORMAT => 'int16u',
0 => {
diff --git a/lib/Image/ExifTool/Sigma.pm b/lib/Image/ExifTool/Sigma.pm
index 8689ee81..6011ebdf 100644
--- a/lib/Image/ExifTool/Sigma.pm
+++ b/lib/Image/ExifTool/Sigma.pm
@@ -19,7 +19,7 @@ use strict;
use vars qw($VERSION %sigmaLensTypes);
use Image::ExifTool::Exif;
-$VERSION = '1.25';
+$VERSION = '1.26';
# sigma LensType lookup (ref IB)
%sigmaLensTypes = (
@@ -88,7 +88,9 @@ $VERSION = '1.25';
0x256 => 'Sigma 105mm F2.8 EX Macro',
0x257 => 'Sigma 105mm F2.8 EX DG Macro',
0x258 => 'Sigma 105mm F2.8 EX DG OS HSM Macro',
+ 0x259 => 'Sigma 105mm F1.4 DG HSM | A', #IB (A018)
0x270 => 'Sigma 70mm F2.8 EX DG Macro', #NJ (SD1)
+ 0x271 => 'Sigma 70mm F2.8 DG Macro | A', #IB (A018)
0x300 => 'Sigma 30mm F1.4 EX DC HSM',
0x301 => 'Sigma 30mm F1.4 DC HSM | A',
0x302 => 'Sigma 30mm F1.4 DC DN | C', #JR (DN lenses are only for Sony E or MFT mount)
@@ -175,6 +177,7 @@ $VERSION = '1.25';
0x727 => 'Sigma 135-400mm F4.5-5.6 DG ASP APO',
0x728 => 'Sigma 120-400mm F4.5-5.6 DG APO OS HSM',
0x729 => 'Sigma 100-400mm F5-6.3 DG OS HSM | C', #JR (017)
+ 0x730 => 'Sigma 60-600mm F4.5-6.3 DG OS HSM | S', #IB (S018)
0x733 => 'Sigma 170-500mm F5-6.3 ASP APO',
0x734 => 'Sigma 170-500mm F5-6.3 DG ASP APO',
0x735 => 'Sigma 50-500mm F4-6.3 EX RF HSM APO',
diff --git a/lib/Image/ExifTool/Sony.pm b/lib/Image/ExifTool/Sony.pm
index a8398f05..7d75f268 100644
--- a/lib/Image/ExifTool/Sony.pm
+++ b/lib/Image/ExifTool/Sony.pm
@@ -22,6 +22,8 @@
# IB) Iliah Borg private communication (LibRaw)
# JD) Jens Duttke private communication
# JR) Jos Roost private communication
+#
+# NC = Not Confirmed
#------------------------------------------------------------------------------
package Image::ExifTool::Sony;
@@ -32,7 +34,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::Exif;
use Image::ExifTool::Minolta;
-$VERSION = '3.11';
+$VERSION = '3.15';
sub ProcessSRF($$$);
sub ProcessSR2($$$);
@@ -90,8 +92,9 @@ sub PrintInvLensSpec($;$$);
32791 => 'Sony E 16-70mm F4 ZA OSS', # VX9107
32792 => 'Sony E 10-18mm F4 OSS', # VX9108
32793 => 'Sony E PZ 16-50mm F3.5-5.6 OSS', # VX9109
- 32794 => 'Sony FE 35mm F2.8 ZA or Samyang AF 24mm F2.8', # VX9110
+ 32794 => 'Sony FE 35mm F2.8 ZA or Samyang Lens', # VX9110
32794.1 => 'Samyang AF 24mm F2.8', #JR
+ 32794.2 => 'Samyang AF 35mm F2.8', #IB (also 51505)
32795 => 'Sony FE 24-70mm F4 ZA OSS', # VX9111
32796 => 'Sony FE 85mm F1.8 or Viltrox PFU RBMH 85mm F1.8', #JR
32796.1 => 'Viltrox PFU RBMH 85mm F1.8', #JR (MF)
@@ -149,7 +152,7 @@ sub PrintInvLensSpec($;$$);
33078 => 'Sony FE 100-400mm F4.5-5.6 GM OSS + 2X Teleconverter', #JR
33079 => 'Sony FE 400mm F2.8 GM OSS + 1.4X Teleconverter', #IB
33080 => 'Sony FE 400mm F2.8 GM OSS + 2X Teleconverter', #JR
- 33081 => 'Sony FE 200-600mm F5.6-6.3 G OSS + 1.4X Teleconverter', #JR (NC)
+ 33081 => 'Sony FE 200-600mm F5.6-6.3 G OSS + 1.4X Teleconverter', #JR
33082 => 'Sony FE 200-600mm F5.6-6.3 G OSS + 2X Teleconverter', #JR
33083 => 'Sony FE 600mm F4 GM OSS + 1.4X Teleconverter', #JR (NC)
33084 => 'Sony FE 600mm F4 GM OSS + 2X Teleconverter', #JR
@@ -214,8 +217,9 @@ sub PrintInvLensSpec($;$$);
# 504xx => 'Sigma 18-200mm F3.5-6.3 DC MACRO OS HSM | C + MC-11', # (014)
# 504xx => 'Sigma 30mm F1.4 DC HSM | A + MC-11', # (013)
+ 51504 => 'Samyang AF 50mm F1.4', #IB
51505 => 'Samyang AF 14mm F2.8 or Samyang AF 35mm F2.8', #forum3833
- 51505.1 => 'Samyang AF 35mm F2.8', #PH
+ 51505.1 => 'Samyang AF 35mm F2.8', #PH (also 32794)
51507 => 'Samyang AF 35mm F1.4', #IB
);
@@ -977,7 +981,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010h' },
},{
Name => 'Tag2010i', # ?
- Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2))\b/',
+ Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M5A|RX100M7|HX99|RX0M2))\b/',
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010i' },
},{
Name => 'Tag_0x2010',
@@ -1053,7 +1057,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
# FocusMode for SLT/HV/ILCA and NEX/ILCE; doesn't seem to apply to DSC models (always 0)
# from 2018: at least DSC-RX10M4 and RX100M6 also use this tag
Name => 'FocusMode',
- Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2)/)',
+ Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2)/)',
Writable => 'int8u',
Priority => 0,
PrintConv => {
@@ -1085,7 +1089,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
},
},{
Name => 'AFAreaModeSetting',
- Condition => '$$self{Model} =~ /^(NEX-|ILCE-|DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2))/',
+ Condition => '$$self{Model} =~ /^(NEX-|ILCE-|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2))/',
Notes => 'NEX, ILCE and some DSC models',
RawConv => '$$self{AFAreaILCE} = $val',
DataMember => 'AFAreaILCE',
@@ -1121,7 +1125,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
# observed values in range (0 0) to (640 480), with center (320 240) often seen
# for NEX-5R/6, positions appear to be in an 11x9 grid
Name => 'FlexibleSpotPosition',
- Condition => '$$self{Model} =~ /^(NEX-|ILCE-|DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2))/',
+ Condition => '$$self{Model} =~ /^(NEX-|ILCE-|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2))/',
Writable => 'int16u',
Count => 2,
Notes => q{
@@ -1281,7 +1285,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
# from 2018: at least DSC-RX10M4 and RX100M6 also use this tag
0x2021 => { #JR
Name => 'AFTracking',
- Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2)/)',
+ Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2)/)',
Writable => 'int8u',
PrintConv => {
0 => 'Off',
@@ -1890,6 +1894,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
369 => 'DSC-RX100M5A', #JR
371 => 'ILCE-6400', #IB
372 => 'DSC-RX0M2', #JR
+ 374 => 'DSC-RX100M7', #IB
375 => 'ILCE-7RM4', #IB
},
},
@@ -5840,6 +5845,7 @@ my %releaseMode2010 = (
4 => 'Continuous - Burst', # seen for DSC-WX500 with burst of 10 shots
5 => 'Continuous - Speed/Advance Priority',
6 => 'Normal - Self-timer', # seen for ILCE-6300/6500/9, ILCA-99M2
+ 9 => 'Single Burst Shooting', # first seen for DSC-RX100M7
},
);
my %selfTimer2010 = (
@@ -7829,7 +7835,7 @@ my %isoSetting2010 = (
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
0x0009 => { %releaseMode2 },
0x000a => [{
- Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2))\b/',
+ Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2))\b/',
Name => 'ShotNumberSincePowerUp',
Format => 'int8u',
},{
@@ -7847,6 +7853,7 @@ my %isoSetting2010 = (
4 => '4 shots',
5 => '5 shots',
6 => '6 shots',
+ 7 => '7 shots', # DSC-RX100M7 Single Burst Shooting
9 => '9 shots', # ILCE-7RM2 9-shot bracketing
10 => '10 shots',
12 => '12 shots', # ILCA-77M2 12-shot MFNR-mode
@@ -7863,6 +7870,7 @@ my %isoSetting2010 = (
2 => '2 files',
3 => '3 files',
5 => '5 files',
+ 7 => '7 files', # DSC-RX100M7 Single Burst Shooting
9 => '9 files', # ILCE-7RM2 9-shot bracketing
10 => '10 files', # seen for DSC-WX500 with burst of 10 shots
},
@@ -7910,7 +7918,7 @@ my %isoSetting2010 = (
0x0000 => { Name => 'Ver9401', Hidden => 1, RawConv => '$$self{Ver9401} = $val; $$self{OPTIONS}{Unknown}<2 ? undef : $val' },
0x0498 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 148', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
- 0x04a2 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 152', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
+ 0x04a2 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(152|154)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
0x059d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(144|146)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
0x0634 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 68', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
0x0636 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(73|74)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
@@ -8368,7 +8376,7 @@ my %isoSetting2010 = (
},
0x0342 => {
Name => 'LensZoomPosition',
- Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|7RM3|7RM4|7SM2|6300|6400|6500|9)|DSC-(HX80|HX90V|HX99|RX0|RX10M2|RX10M3|RX10M4|RX100M4|RX100M5|RX100M5A|RX100M6|WX500))/',
+ Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|7RM3|7RM4|7SM2|6300|6400|6500|9)|DSC-(HX80|HX90V|HX99|RX0|RX10M2|RX10M3|RX10M4|RX100M4|RX100M5|RX100M5A|RX100M6|RX100M7|WX500))/',
Format => 'int16u',
PrintConv => 'sprintf("%.0f%%",$val/10.24)',
PrintConvInv => '$val=~s/ ?%$//; $val * 10.24',
@@ -8378,6 +8386,13 @@ my %isoSetting2010 = (
Condition => '$$self{Model} =~ /^(ILCA-(68|77M2)|ILCE-(5000|5100|6000|7|7R|7S|QX1)|Lusso)\b/',
Format => 'int16s[16]',
},
+ 0x034e => {
+ Name => 'LensZoomPosition',
+ Condition => '$$self{Model} =~ /^(DSC-(RX100M5|RX100M5A|RX100M6|RX100M7|RX10M4|HX99)|ILCE-(6400|7M3|7RM3|7RM4))/',
+ Format => 'int16u',
+ PrintConv => 'sprintf("%.0f%%",$val/10.24)',
+ PrintConvInv => '$val=~s/ ?%$//; $val * 10.24',
+ },
0x0350 => {
Name => 'VignettingCorrParams',
Condition => '$$self{Model} =~ /^(ILCE-7M2)/',
diff --git a/lib/Image/ExifTool/TagLookup.pm b/lib/Image/ExifTool/TagLookup.pm
index f0d28e86..f7824e7e 100644
--- a/lib/Image/ExifTool/TagLookup.pm
+++ b/lib/Image/ExifTool/TagLookup.pm
@@ -1819,7 +1819,6 @@ my %tagLookup = (
'd-rangeoptimizermode' => { 433 => 0x8022 },
'd-rangeoptimizershadow' => { 433 => 0x802d },
'd-rangeoptimizervalue' => { 433 => 0x8023 },
- 'd810meteringmode' => { 242 => 0x175e },
'darkblacksegrows' => { 132 => 0x18d8 },
'darkfocusenvironment' => { 302 => 0x8003 },
'darkframecountfactor' => { 132 => 0xc85 },
@@ -3305,7 +3304,7 @@ my %tagLookup = (
'lensfocusfunctionbuttons' => { 263 => '55.1', 265 => '52.1', 266 => '52.1', 275 => '52.1', 276 => '52.1' },
'lensformat' => { 412 => 0x1891, 414 => 0x18bd, 415 => 0x18ed, 416 => 0x17f1, 418 => 0x106, 419 => 0x106, 428 => 0x603, 429 => 0x5d },
'lensfstops' => { 207 => 0x7, 208 => 0xc, 209 => 0xd, 213 => 0xe, 215 => 0x8b, 328 => '0.3' },
- 'lensid' => { 452 => 'LensID' },
+ 'lensid' => { 213 => 0x30, 452 => 'LensID' },
'lensidnumber' => { 207 => 0x6, 208 => 0xb, 209 => 0xc, 213 => 0xd },
'lensinfo' => { 114 => 0xa432, 334 => 0x2a, 452 => 'LensInfo', 462 => 'LensSpecification' },
'lenskind' => { 328 => 0x1 },
@@ -3342,7 +3341,7 @@ my %tagLookup = (
'lenstype' => { 7 => 0xe2, 8 => 0xd, 9 => 0x1a7, 10 => 0xc, 11 => 0x111, 12 => 0xc, 13 => 0x14f, 14 => 0xd6, 15 => 0xde, 16 => 0xf6, 17 => 0xea, 18 => 0xff, 19 => [0xc,0x97], 20 => 0xe6, 21 => 0x153, 22 => 0xea, 23 => 0xe8, 24 => 0x127, 25 => 0x161, 26 => 0x166, 27 => 0x184, 28 => 0x112, 29 => 0x189, 34 => 0x16, 177 => 0x10c, 178 => 0x49bd, 215 => 0x83, 280 => 0x201, 293 => 0x16, 297 => 0x310, 299 => 0x303, 300 => 0x303, 302 => 0x51, 304 => 0x3405, 329 => 0x0, 330 => 0x0, 331 => 0x1, 332 => 0x1, 333 => 0x1, 335 => 0x0, 376 => 0xa003, 379 => 0x27, 400 => 0xb027, 412 => 0x1896, 414 => 0x18c2, 415 => 0x18f2, 416 => 0x17f6, 418 => 0x109, 419 => 0x109, 428 => 0x608, 429 => 0x62 },
'lenstype2' => { 389 => 0x3f7, 412 => 0x1893, 414 => 0x18bf, 415 => 0x18ef, 416 => 0x17f3, 418 => 0x107, 419 => 0x107, 428 => 0x605, 429 => 0x60 },
'lenstype3' => { 432 => 0x9 },
- 'lenszoomposition' => { 425 => 0x19, 426 => 0x1e, 429 => [0x342,0x35a] },
+ 'lenszoomposition' => { 425 => 0x19, 426 => 0x1e, 429 => [0x342,0x34e,0x35a] },
'levelindicator' => { 310 => 0x15 },
'levelmeter' => { 362 => ['Lvlm','lvlm'] },
'levelorientation' => { 336 => 0x0 },
@@ -3941,6 +3940,7 @@ my %tagLookup = (
'nikoncaptureversion' => { 215 => 0xe09 },
'nikoniccprofile' => { 215 => 0xe1d },
'nikonimagesize' => { 230 => '723.1', 231 => '732.1', 240 => 0x2c4 },
+ 'nikonmeteringmode' => { 234 => 0x2ea4, 242 => 0x175e },
'noisefilter' => { 279 => 0x527 },
'noiseprofile' => { 114 => 0xc761 },
'noisereduction' => { 122 => [0x100b,0x100e], 173 => 0xb0, 174 => 0x60, 175 => 0x3f, 215 => 0x95, 255 => 0x753dcbc0, 256 => 0x17, 279 => 0x50a, 284 => 0x103a, 302 => 0x2d, 337 => 0x49, 369 => 0x100f, 371 => 0x2a },
diff --git a/lib/Image/ExifTool/TagNames.pod b/lib/Image/ExifTool/TagNames.pod
index a721e62a..4bf3e5ae 100644
--- a/lib/Image/ExifTool/TagNames.pod
+++ b/lib/Image/ExifTool/TagNames.pod
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
=head1 TAG TABLES
The tables listed below give the names of all tags recognized by ExifTool.
-They contain a total of 22992 tags, with 15044 unique tag names.
+They contain a total of 22996 tags, with 15044 unique tag names.
B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
@@ -105,6 +105,7 @@ L<https://www.w3.org/Graphics/JPEG/jfif3.pdf> for the JPEG specification.
XMP XMP
QVCI Casio QVCI
FLIR FLIR FFF
+ RawThermalImage no
'APP2' ICC_Profile ICC_Profile
FPXR FlashPix
MPF MPF
@@ -11772,7 +11773,7 @@ different for other firmware versions.
464 SecondarySlotFunction int8u & 0x03
5974 AEBracketingSteps int8u & 0xff
5975 WBBracketingSteps int8u & 0xff
- 5982 D810MeteringMode int8u & 0x03
+ 5982 NikonMeteringMode int8u & 0x03
6236 ISOAutoShutterTime int8u & 0x3f
6237 ISOAutoHiLimit int8u & 0xff
6315 CustomSettingsD810 NikonCustom SettingsD810
@@ -11894,6 +11895,7 @@ These tags are extracted from encrypted data in images from the D5 and D500.
11300 RollAngle fixed32u
11304 PitchAngle fixed32u
11308 YawAngle fixed32u
+ 11940 NikonMeteringMode int8u & 0x03
=head3 Nikon ShotInfoD610 Tags
@@ -12064,6 +12066,7 @@ Tags found in the encrypted LensData from cameras such as the Z6 and Z7.
18 MaxApertureAtMaxFocal int8u
19 MCUVersion int8u
20 EffectiveMaxAperture int8u
+ 48 LensID int16u
54 MaxAperture int16u
56 FNumber int16u
60 FocalLength int16u
@@ -17626,6 +17629,7 @@ RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/WX220/WX350, ILCE-7/
100 DistortionCorrParams int16s[16]
834 LensZoomPosition int16u
842 VignettingCorrParams int16s[16]
+ 846 LensZoomPosition int16u
848 VignettingCorrParams int16s[16]
858 LensZoomPosition int16u
860 VignettingCorrParams int16s[16]
@@ -25497,8 +25501,8 @@ Note when creating new tags,
L<ItemList|Image::ExifTool::TagNames/QuickTime ItemList Tags> tags are
preferred over these, so to create the tag when a same-named ItemList tag
exists, either "UserData" must be specified (eg. C<-UserData:Artist=Monet>
-on the command line), or the PREFERRED level must be changed via the config
-file.
+on the command line), or the PREFERRED level must be changed via
+the config file.
Tag ID Tag Name Writable
------ -------- --------
@@ -28291,12 +28295,12 @@ WebP animation frame chunk.
=head3 RIFF CSET Tags
- Tag ID Tag Name Writable
+ Index2 Tag Name Writable
------ -------- --------
- 0x0000 CodePage no
- 0x0001 CountryCode no
- 0x0002 LanguageCode no
- 0x0003 Dialect no
+ 0 CodePage no
+ 1 CountryCode no
+ 2 LanguageCode no
+ 3 Dialect no
=head3 RIFF Info Tags
@@ -33586,20 +33590,20 @@ values, may created via the ExifTool configuration file.
GPS:GPSTimeStamp
GPSDestLatitude GPS:GPSDestLatitude no
GPS:GPSDestLatitudeRef
- GPSDestLatitudeRef XMP:GPSDestLatitude no
+ GPSDestLatitudeRef XMP-exif:GPSDestLatitude no
GPSDestLongitude GPS:GPSDestLongitude no
GPS:GPSDestLongitudeRef
- GPSDestLongitudeRef XMP:GPSDestLongitude no
+ GPSDestLongitudeRef XMP-exif:GPSDestLongitude no
GPSLatitude GPS:GPSLatitude no
GPS:GPSLatitudeRef
GPSLatitude QuickTime:GPSCoordinates no
GPSLatitude QuickTime:LocationInformation no
- GPSLatitudeRef XMP:GPSLatitude no
+ GPSLatitudeRef XMP-exif:GPSLatitude no
GPSLongitude GPS:GPSLongitude no
GPS:GPSLongitudeRef
GPSLongitude QuickTime:GPSCoordinates no
GPSLongitude QuickTime:LocationInformation no
- GPSLongitudeRef XMP:GPSLongitude no
+ GPSLongitudeRef XMP-exif:GPSLongitude no
GPSPosition GPSLatitude no
GPSLongitude
HyperfocalDistance FocalLength no
diff --git a/lib/Image/ExifTool/WritePNG.pl b/lib/Image/ExifTool/WritePNG.pl
index a6930218..9aee6ef5 100644
--- a/lib/Image/ExifTool/WritePNG.pl
+++ b/lib/Image/ExifTool/WritePNG.pl
@@ -130,7 +130,6 @@ sub Add_iCCP($$)
if (defined $buff and length $buff and WriteProfile($outfile, 'icm', \$buff)) {
$et->VPrint(0, "Created ICC profile\n");
delete $$et{ADD_DIRS}{ICC_Profile}; # don't add it again
- $$et{PNGDoneDir}{ICC_Profile} = 2;
}
}
return 1;
@@ -144,29 +143,15 @@ sub Add_iCCP($$)
sub DoneDir($$$;$)
{
my ($et, $dir, $outBuff, $nonStandard) = @_;
- $dir = 'IFD0' if $dir eq 'EXIF';
+ my $saveDir = $dir;
+ $dir = 'EXIF' if $dir eq 'IFD0';
# don't add this directory again unless this is in a non-standard location
- delete $$et{ADD_DIRS}{$dir} unless $nonStandard;
- # handle problem with duplicate XMP when using PNGEarlyXMP option
- return unless $dir eq 'XMP' and defined $$outBuff and length $$outBuff;
- if ($nonStandard and $$et{DEL_GROUP}{$dir}) {
+ if (not $nonStandard) {
+ delete $$et{ADD_DIRS}{$dir};
+ delete $$et{ADD_DIRS}{IFD0} if $dir eq 'EXIF';
+ } elsif ($$et{DEL_GROUP}{$dir} or $$et{DEL_GROUP}{$saveDir}) {
$et->VPrint(0," Deleting non-standard $dir\n");
$$outBuff = '';
- } elsif (not $$et{PNGDoneDir}{$dir}) {
- $$et{PNGDoneDir}{$dir} = 1; # set flag indicating the directory exists
- } elsif ($$et{OPTIONS}{PNGEarlyXMP}) {
- if ($$et{PNGDoneDir}{$dir} == 2) {
- if ($$et{OPTIONS}{IgnoreMinorErrors}) {
- $et->Warn("Deleted existing $dir");
- } else {
- $et->Error("Duplicate $dir created. Ignore to delete existing $dir", 1);
- return;
- }
- } elsif ($et->Warn("Duplicate $dir. Ignore to delete", 2)) {
- return; # warning not ignored: don't delete the duplicate
- }
- $et->VPrint(0," Deleting duplicate $dir\n");
- $$outBuff = '';
}
}
@@ -356,8 +341,6 @@ sub AddChunks($$;@)
next;
}
delete $$et{ADD_DIRS}{$dir}; # don't add again
- # keep track of the directories that we added
- $$et{PNGDoneDir}{$dir} = 2 if defined $buff and length $buff;
}
return not $err;
}
diff --git a/lib/Image/ExifTool/WriteXMP.pl b/lib/Image/ExifTool/WriteXMP.pl
index 69a3d1c9..5be06572 100644
--- a/lib/Image/ExifTool/WriteXMP.pl
+++ b/lib/Image/ExifTool/WriteXMP.pl
@@ -1034,7 +1034,7 @@ sub WriteXMP($$;$)
# take attributes from old values if they exist
%attrs = %{$$cap[1]};
if ($overwrite) {
- my ($oldLang, $delLang, $addLang, @matchingPaths);
+ my ($oldLang, $delLang, $addLang, @matchingPaths, $langPathPat);
# check to see if this is an indexed list item
if ($path =~ / /) {
my $pp;
@@ -1043,9 +1043,15 @@ sub WriteXMP($$;$)
} else {
push @matchingPaths, $path;
}
+ my $oldOverwrite = $overwrite;
foreach $path (@matchingPaths) {
my ($val, $attrs) = @{$capture{$path}};
if ($writable eq 'lang-alt') {
+ # revert to original overwrite flag if this is in a different structure
+ if (not $langPathPat or $path !~ /^$langPathPat$/) {
+ $overwrite = $oldOverwrite;
+ ($langPathPat = $path) =~ s/\d+$/\\d+/;
+ }
unless (defined $addLang) {
# add to lang-alt list by default if creating this tag from scratch
$addLang = $$nvHash{IsCreating} ? 1 : 0;
diff --git a/lib/Image/ExifTool/Writer.pl b/lib/Image/ExifTool/Writer.pl
index 80b29ba4..7cd541ef 100644
--- a/lib/Image/ExifTool/Writer.pl
+++ b/lib/Image/ExifTool/Writer.pl
@@ -916,6 +916,20 @@ TAG: foreach $tagInfo (@matchingTags) {
next;
}
}
+ # set group delete flag if this tag represents an entire group
+ if ($$tagInfo{DelGroup} and not $options{DelValue}) {
+ my @del = ( $tag );
+ $$self{DEL_GROUP}{$tag} = 1;
+ # delete extra groups if necessary
+ if ($delMore{$tag}) {
+ $$self{DEL_GROUP}{$_} = 1, push(@del,$_) foreach @{$delMore{$tag}};
+ }
+ # remove all of this group from previous new values
+ $self->RemoveNewValuesForGroup($tag);
+ $verbose and print $out " Deleting tags in: @del\n";
+ ++$numSet;
+ next;
+ }
$noConv = 1; # value is not defined, so don't do conversion
}
# apply inverse PrintConv and ValueConv conversions
@@ -3533,10 +3547,11 @@ sub GetNewValueHash($$;$$$$)
if ($writeGroup) {
# find the new value in the list with the specified write group
- # (QuickTime and All are special cases because all group1 tags may be updated at once)
- while ($nvHash and $$nvHash{WriteGroup} ne $writeGroup and
- $$nvHash{WriteGroup} !~ /^(QuickTime|All)$/)
- {
+ while ($nvHash and $$nvHash{WriteGroup} ne $writeGroup) {
+ # QuickTime and All are special cases because all group1 tags may be updated at once
+ last if $$nvHash{WriteGroup} =~ /^(QuickTime|All)$/;
+ # replace existing entry if WriteGroup is 'All' (avoids confusion of forum10349)
+ last if $$tagInfo{WriteGroup} and $$tagInfo{WriteGroup} eq 'All';
$nvHash = $$nvHash{Next};
}
}
@@ -3875,6 +3890,9 @@ sub InitWriteDirs($$;$$)
}
}
$dirName = shift @dirNames;
+ } elsif ($dirName eq 'QuickTime') {
+ # write to specific QuickTime group
+ $dirName = $self->GetGroup($tagInfo, 1);
}
while ($dirName) {
my $parent = $$fileDirs{$dirName};
diff --git a/lib/Image/ExifTool/XMP.pm b/lib/Image/ExifTool/XMP.pm
index 8fe2c4d0..ef01116d 100644
--- a/lib/Image/ExifTool/XMP.pm
+++ b/lib/Image/ExifTool/XMP.pm
@@ -49,7 +49,7 @@ use Image::ExifTool::Exif;
use Image::ExifTool::GPS;
require Exporter;
-$VERSION = '3.24';
+$VERSION = '3.25';
@ISA = qw(Exporter);
@EXPORT_OK = qw(EscapeXML UnescapeXML);
@@ -2236,7 +2236,7 @@ my %sPantryItem = (
# get latitude/logitude reference from XMP lat/long tags
# (used to set EXIF GPS position from XMP tags)
GPSLatitudeRef => {
- Require => 'XMP:GPSLatitude',
+ Require => 'XMP-exif:GPSLatitude',
# Note: Do not Inihibit based on EXIF:GPSLatitudeRef (see forum10192)
ValueConv => q{
IsFloat($val[0]) and return $val[0] < 0 ? "S" : "N";
@@ -2246,7 +2246,7 @@ my %sPantryItem = (
PrintConv => { N => 'North', S => 'South' },
},
GPSLongitudeRef => {
- Require => 'XMP:GPSLongitude',
+ Require => 'XMP-exif:GPSLongitude',
ValueConv => q{
IsFloat($val[0]) and return $val[0] < 0 ? "W" : "E";
$val[0] =~ /^.*([EW])/;
@@ -2255,7 +2255,7 @@ my %sPantryItem = (
PrintConv => { E => 'East', W => 'West' },
},
GPSDestLatitudeRef => {
- Require => 'XMP:GPSDestLatitude',
+ Require => 'XMP-exif:GPSDestLatitude',
ValueConv => q{
IsFloat($val[0]) and return $val[0] < 0 ? "S" : "N";
$val[0] =~ /^.*([NS])/;
@@ -2264,7 +2264,7 @@ my %sPantryItem = (
PrintConv => { N => 'North', S => 'South' },
},
GPSDestLongitudeRef => {
- Require => 'XMP:GPSDestLongitude',
+ Require => 'XMP-exif:GPSDestLongitude',
ValueConv => q{
IsFloat($val[0]) and return $val[0] < 0 ? "W" : "E";
$val[0] =~ /^.*([EW])/;
diff --git a/perl-Image-ExifTool.spec b/perl-Image-ExifTool.spec
index 0966e69d..579d7139 100644
--- a/perl-Image-ExifTool.spec
+++ b/perl-Image-ExifTool.spec
@@ -1,6 +1,6 @@
Summary: perl module for image data extraction
Name: perl-Image-ExifTool
-Version: 11.57
+Version: 11.61
Release: 1
License: Artistic/GPL
Group: Development/Libraries/Perl
diff --git a/t/Lang_14.out b/t/Lang_14.out
index 8f0d5e20..2cd8131a 100644
--- a/t/Lang_14.out
+++ b/t/Lang_14.out
@@ -1,43 +1,43 @@
[EXIF, IFD0, Camera] 271 - Производитель: FUJIFILM
-[EXIF, IFD0, Camera] 272 - Модель камеры: FinePix2400Zoom
-[EXIF, IFD0, Image] 274 - Ориентация: Горизонтальная
+[EXIF, IFD0, Camera] 272 - Модель: FinePix2400Zoom
+[EXIF, IFD0, Image] 274 - Ориентация: Горизонтальная (обычная)
[EXIF, IFD0, Image] 282 - Разрешение по X: 72
[EXIF, IFD0, Image] 283 - Разрешение по Y: 72
[EXIF, IFD0, Image] 296 - Единицы разрешения по X и Y: дюймы
-[EXIF, IFD0, Image] 305 - Создано/Редактировано в приложении: Digital Camera FinePix2400Zoom Ver1.70
+[EXIF, IFD0, Image] 305 - Приложение: Digital Camera FinePix2400Zoom Ver1.70
[EXIF, IFD0, Time] 306 - Дата редактирования: 2001:05:19 18:36:41
[EXIF, IFD0, Image] 531 - Положение точки, определяющей цвет в Y Cb Cr: Совместимый
[EXIF, IFD0, Author] 33432 - Авторское право:
-[EXIF, ExifIFD, Image] 33437 - Диафрагма: 3.5
+[EXIF, ExifIFD, Image] 33437 - Относительное отверстие: 3.5
[EXIF, ExifIFD, Camera] 34850 - Программа экспозиции: Программная автоэкспозиция
[EXIF, ExifIFD, Image] 34855 - Значение ISO: 100
[EXIF, ExifIFD, Image] 36864 - Версия Exif: 0210
[EXIF, ExifIFD, Time] 36867 - Дата съёмки: 2001:05:19 18:36:41
[EXIF, ExifIFD, Time] 36868 - Дата создания: 2001:05:19 18:36:41
[EXIF, ExifIFD, Image] 37121 - Параметры каналов: Y, Cb, Cr, -
-[EXIF, ExifIFD, Image] 37122 - Сжатые Биты на Пиксель: 1.6
-[EXIF, ExifIFD, Image] 37377 - Выдержка: 1/64
-[EXIF, ExifIFD, Image] 37378 - Диафрагма: 3.5
-[EXIF, ExifIFD, Image] 37379 - Яркость: 2
+[EXIF, ExifIFD, Image] 37122 - Сжатые биты на пиксель: 1.6
+[EXIF, ExifIFD, Image] 37377 - Значение выдержки: 1/64
+[EXIF, ExifIFD, Image] 37378 - Значение диафрагмы: 3.5
+[EXIF, ExifIFD, Image] 37379 - Значение яркость: 2
[EXIF, ExifIFD, Image] 37380 - Компенсация экспозиции: 0
[EXIF, ExifIFD, Camera] 37381 - Максимальное число диафрагмы объектива: 3.5
-[EXIF, ExifIFD, Camera] 37383 - Экспозамер: Оценочный / Многозонный
-[EXIF, ExifIFD, Camera] 37385 - Состояние вспышки при съёмке: Вспышка сработала.
+[EXIF, ExifIFD, Camera] 37383 - Экспозамер: Оценочный/многозонный
+[EXIF, ExifIFD, Camera] 37385 - Состояние вспышки при съёмке: Вспышка сработала
[EXIF, ExifIFD, Camera] 37386 - Фокусное расстояние: 6.0 mm
-[EXIF, ExifIFD, Image] 40960 - Поддерживаемая версия Flashpix: 0100
+[EXIF, ExifIFD, Image] 40960 - Версия Flashpix: 0100
[EXIF, ExifIFD, Image] 40961 - Цветовое пространство: sRGB
-[EXIF, ExifIFD, Image] 40962 - Exif - Ширина изображения: 1600
-[EXIF, ExifIFD, Image] 40963 - Exif - Высота изображения: 1200
-[EXIF, InteropIFD, Image] 1 - Индекс файловой совместимости: R98 - Основной файл DCF (sRGB)
+[EXIF, ExifIFD, Image] 40962 - Exif — Ширина изображения: 1600
+[EXIF, ExifIFD, Image] 40963 - Exif — Высота изображения: 1200
+[EXIF, InteropIFD, Image] 1 - Индекс файловой совместимости: R98 — Основной файл DCF (sRGB)
[EXIF, InteropIFD, Image] 2 - Версия файловой совместимости: 0100
[EXIF, ExifIFD, Camera] 41486 - Разрешение в фокальной плоскости по X: 3053
[EXIF, ExifIFD, Camera] 41487 - Разрешение в фокальной плоскости по Y: 3053
-[EXIF, ExifIFD, Camera] 41488 - Единицы разрешения в фокальной плоскости: см.
+[EXIF, ExifIFD, Camera] 41488 - Единицы разрешения в фокальной плоскости: см
[EXIF, ExifIFD, Camera] 41495 - Тип датчика: Одночиповый цветной сенсор
[EXIF, ExifIFD, Image] 41728 - Источник файла: Цифровая фотокамера
-[EXIF, ExifIFD, Image] 41729 - Тип сцены: Сфотографировано цифровой камерой
+[EXIF, ExifIFD, Image] 41729 - Тип сцены: Непосредственно сфотографированная
[EXIF, IFD1, Image] 259 - Метод сжатия: JPEG (старый стиль)
-[EXIF, IFD1, Image] 274 - Ориентация: Горизонтальная
+[EXIF, IFD1, Image] 274 - Ориентация: Горизонтальная (обычная)
[EXIF, IFD1, Image] 282 - Разрешение по X: 72
[EXIF, IFD1, Image] 283 - Разрешение по Y: 72
[EXIF, IFD1, Image] 296 - Единицы разрешения по X и Y: дюймы
diff --git a/t/PNG.t b/t/PNG.t
index 565ca621..acf2e83f 100644
--- a/t/PNG.t
+++ b/t/PNG.t
@@ -78,14 +78,7 @@ my $testnum = 1;
{
++$testnum;
my $exifTool = new Image::ExifTool;
- # start with a clean image
- $exifTool->SetNewValue('all');
my $image;
- $exifTool->WriteInfo('t/images/PNG.png', \$image);
- # add new XMP (should go after IDAT)
- $exifTool->SetNewValue();
- $exifTool->SetNewValue('XMP:Subject' => 'test');
- $exifTool->WriteInfo(\$image);
# delete all XMP then copy back again (should move to before IDAT)
$exifTool->SetNewValue();
my $txtfile = "t/${testname}_${testnum}.failed";
@@ -93,8 +86,8 @@ my $testnum = 1;
$exifTool->Options(Verbose => 2);
$exifTool->Options(TextOut => \*PNG_TEST_5);
$exifTool->SetNewValue('xmp:all');
- $exifTool->SetNewValuesFromFile(\$image, 'all:all<xmp:all');
- my $rtnVal = $exifTool->WriteInfo(\$image);
+ $exifTool->SetNewValuesFromFile('t/images/PNG.png', 'all:all<xmp:all');
+ my $rtnVal = $exifTool->WriteInfo('t/images/PNG.png', \$image);
close PNG_TEST_5;
if (testCompare('t/PNG_5.out', $txtfile, $testnum)) {
unlink $txtfile;
diff --git a/t/PNG_2.out b/t/PNG_2.out
index 4442850c..34d2adf4 100644
--- a/t/PNG_2.out
+++ b/t/PNG_2.out
@@ -1,10 +1,11 @@
-[ExifTool, ExifTool, ExifTool] ExifToolVersion - ExifTool Version Number: 11.55
+[ExifTool, ExifTool, ExifTool] ExifToolVersion - ExifTool Version Number: 11.58
+[ExifTool, ExifTool, ExifTool] Warning - Warning: XMP found after PNG IDAT
[File, System, Image] FileName - File Name: PNG.png
[File, System, Image] Directory - Directory: t/images
[File, System, Image] FileSize - File Size: 572 bytes
[File, System, Time] FileModifyDate - File Modification Date/Time: 2014:07:23 08:09:17-04:00
-[File, System, Time] FileAccessDate - File Access Date/Time: 2019:07:03 11:48:29-04:00
-[File, System, Time] FileInodeChangeDate - File Inode Change Date/Time: 2019:07:02 12:56:21-04:00
+[File, System, Time] FileAccessDate - File Access Date/Time: 2019:07:24 13:11:38-04:00
+[File, System, Time] FileInodeChangeDate - File Inode Change Date/Time: 2019:07:19 09:48:20-04:00
[File, System, Image] FilePermissions - File Permissions: rw-r--r--
[File, File, Image] FileType - File Type: PNG
[File, File, Image] FileTypeExtension - File Type Extension: png
diff --git a/t/PNG_5.out b/t/PNG_5.out
index 74d69a6a..c978ad36 100644
--- a/t/PNG_5.out
+++ b/t/PNG_5.out
@@ -1,7 +1,8 @@
Deleting tags in: XMP XMP-*
Sorry, XMP-x:XMPToolkit is unsafe for writing
Writing new tags after deleting groups: XMP XMP-*
-Writing XMP-dc:Subject
+Writing XMP-dc:Creator
+Rewriting t/images/PNG.png...
Editing tags in: PNG XMP
Creating tags in: PNG XMP
FileType = PNG
@@ -11,8 +12,9 @@ PNG IHDR (13 bytes):
PNG bKGD (2 bytes):
Creating XMP iTXt chunk:
Creating XMP
- + XMP-dc:Subject = 'test'
+ + XMP-dc:Creator = 'Phil Harvey'
PNG IDAT (1 chunk, total 14 bytes)
-PNG iTXt (437 bytes):
+PNG tEXt (20 bytes):
+PNG iTXt (443 bytes):
Deleting XMP
PNG IEND (end of image)
diff --git a/t/TestLib.pm b/t/TestLib.pm
index 9485388b..85c7fd4a 100644
--- a/t/TestLib.pm
+++ b/t/TestLib.pm
@@ -429,6 +429,7 @@ sub testVerbose($$$$)
}
$\ = $oldSep; # restore output line separator
close(TESTFILE);
+ close(TMPFILE);
unlink("$testfile.tmp");
return testCompare("$testfile.out","$testfile.failed",$testnum);
}
diff --git a/t/XMP.t b/t/XMP.t
index acfcee55..fc03ac31 100644
--- a/t/XMP.t
+++ b/t/XMP.t
@@ -2,7 +2,7 @@
# After "make install" it should work as "perl t/XMP.t".
BEGIN {
- $| = 1; print "1..48\n"; $Image::ExifTool::configFile = '';
+ $| = 1; print "1..49\n"; $Image::ExifTool::configFile = '';
require './t/TestLib.pm'; t::TestLib->import();
}
END {print "not ok 1\n" unless $loaded;}
@@ -621,6 +621,21 @@ my $testnum = 1;
print 'not ';
}
print "ok $testnum\n";
+
+ ++$testnum;
+ $exifTool->SetNewValue();
+ $exifTool->SetNewValue('AboutCvTermName' => 'one,three', DelValue => 1);
+ $exifTool->SetNewValue('AboutCvTermName' => 'a,b,c');
+ $testfile = "t/${testname}_${testnum}_failed.xmp";
+ unlink $testfile;
+ writeInfo($exifTool, 't/images/XMP8.xmp', $testfile);
+ $info = $exifTool->ImageInfo($testfile, 'XMP:all');
+ if (check($exifTool, $info, $testname, $testnum)) {
+ unlink $testfile;
+ } else {
+ print 'not ';
+ }
+ print "ok $testnum\n";
}
diff --git a/t/XMP_49.out b/t/XMP_49.out
new file mode 100644
index 00000000..4b851046
--- /dev/null
+++ b/t/XMP_49.out
@@ -0,0 +1,2 @@
+[XMP, XMP-x, Document] xmptk - XMP Toolkit: Image::ExifTool 11.58
+[XMP, XMP-iptcExt, Author] AboutCvTerm - About Cv Term: [{CvId=1,CvTermName=a},{CvId=2,CvTermName=two},{CvId=3,CvTermName=b},{CvTermName=c}]
diff --git a/t/images/XMP8.xmp b/t/images/XMP8.xmp
new file mode 100644
index 00000000..69c7780a
--- /dev/null
+++ b/t/images/XMP8.xmp
@@ -0,0 +1,38 @@
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
+<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 11.58'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
+
+ <rdf:Description rdf:about=''
+ xmlns:Iptc4xmpExt='http://iptc.org/std/Iptc4xmpExt/2008-02-29/'>
+ <Iptc4xmpExt:AboutCvTerm>
+ <rdf:Bag>
+ <rdf:li rdf:parseType='Resource'>
+ <Iptc4xmpExt:CvId>1</Iptc4xmpExt:CvId>
+ <Iptc4xmpExt:CvTermName>
+ <rdf:Alt>
+ <rdf:li xml:lang='x-default'>one</rdf:li>
+ </rdf:Alt>
+ </Iptc4xmpExt:CvTermName>
+ </rdf:li>
+ <rdf:li rdf:parseType='Resource'>
+ <Iptc4xmpExt:CvId>2</Iptc4xmpExt:CvId>
+ <Iptc4xmpExt:CvTermName>
+ <rdf:Alt>
+ <rdf:li xml:lang='x-default'>two</rdf:li>
+ </rdf:Alt>
+ </Iptc4xmpExt:CvTermName>
+ </rdf:li>
+ <rdf:li rdf:parseType='Resource'>
+ <Iptc4xmpExt:CvId>3</Iptc4xmpExt:CvId>
+ <Iptc4xmpExt:CvTermName>
+ <rdf:Alt>
+ <rdf:li xml:lang='x-default'>three</rdf:li>
+ </rdf:Alt>
+ </Iptc4xmpExt:CvTermName>
+ </rdf:li>
+ </rdf:Bag>
+ </Iptc4xmpExt:AboutCvTerm>
+ </rdf:Description>
+</rdf:RDF>
+</x:xmpmeta>
+<?xpacket end='w'?> \ No newline at end of file