Image-ExifTool
view release on metacpan or search on metacpan
Nov. 2, 2014 - Version 9.75
- Added support for FLIR version 101 metadata
- Added a new Olympus LensType (thanks Niels Kristian Bech Jensen)
- Added a new Pentax LensType (thanks Louis Granboulan)
- Added a new Samsung LensType
- Decode a few more Nikon D4S tags (thanks Warren Hatch)
- Decode a few more Sony tags (thanks Jos Roost)
- Decode a new FujiFilm tag
- Improved formula for calculating Sony:FocusDistance2 (thanks Jos Roost)
- Changed XMP parsing to impose standard namespace prefixes, thus avoiding
(some) problems reading the ugly XMP generated by Microsoft products
- Fixed decoding of Nikon FileInfo tags for recent DSLR models
Oct. 15, 2014 - Version 9.74
- Added a number of new QuickTime GenreID values (thanks Francois Bonzon)
- Added support for some newer Sony cameras (thanks Jos Roost)
- Decode more Nikon D4S custom settings (thanks Warren Hatch)
- Improved lens identification logic for XMP metadata (thanks Jos Roost)
html/ancient_history.html view on Meta::CPAN
<a name='v9.75'><b>Nov. 2, 2014 - Version 9.75</b></a>
<ul>
<li>Added support for FLIR version 101 metadata
<li>Added a new Olympus LensType (thanks Niels Kristian Bech Jensen)
<li>Added a new Pentax LensType (thanks Louis Granboulan)
<li>Added a new Samsung LensType
<li>Decode a few more Nikon D4S tags (thanks Warren Hatch)
<li>Decode a few more Sony tags (thanks Jos Roost)
<li>Decode a new FujiFilm tag
<li>Improved formula for calculating Sony:FocusDistance2 (thanks Jos Roost)
<li>Changed XMP parsing to impose standard namespace prefixes, thus avoiding
(some) problems reading the ugly XMP generated by Microsoft products
<li>Fixed decoding of Nikon FileInfo tags for recent DSLR models
</ul>
<a name='v9.74'><b>Oct. 15, 2014 - Version 9.74</b></a>
<ul>
<li>Added a number of new QuickTime GenreID values (thanks François Bonzon)
<li>Added support for some newer Sony cameras (thanks Jos Roost)
<li>Decode more Nikon D4S custom settings (thanks Warren Hatch)
lib/Image/ExifTool.pm view on Meta::CPAN
MPEG => 'video/mpeg',
MRC => 'image/x-mrc',
MRW => 'image/x-minolta-mrw',
MXF => 'application/mxf',
NEF => 'image/x-nikon-nef',
NKSC => 'application/x-nikon-nxstudio',
NRW => 'image/x-nikon-nrw',
NUMBERS => 'application/x-iwork-numbers-sffnumbers',
ODB => 'application/vnd.oasis.opendocument.database',
ODC => 'application/vnd.oasis.opendocument.chart',
ODF => 'application/vnd.oasis.opendocument.formula',
ODG => 'application/vnd.oasis.opendocument.graphics',
ODI => 'application/vnd.oasis.opendocument.image',
ODP => 'application/vnd.oasis.opendocument.presentation',
ODS => 'application/vnd.oasis.opendocument.spreadsheet',
ODT => 'application/vnd.oasis.opendocument.text',
OGG => 'audio/ogg',
OGV => 'video/ogg',
ONP => 'application/on1',
ORF => 'image/x-olympus-orf',
OTF => 'application/font-otf',
lib/Image/ExifTool/Minolta.pm view on Meta::CPAN
PrintConvInv => 'lc($val) eq "bulb" ? 0 : Image::ExifTool::Exif::ConvertFraction($val)',
},
0x49ba => {
Name => 'ISO',
ValueConv => '2 ** (($val-48)/8) * 100',
ValueConvInv => '48 + 8*log($val/100)/log(2)',
PrintConv => 'int($val + 0.5)',
PrintConvInv => '$val',
},
0x49bb => { # (https://exiftool.org/forum/index.php/topic,3688.0.html)
# if this value is the 35mm equivalent magnification, then the formula could
# be (1.5 * 2**($val/16-5)+1) * FocalLength, but this tends to underestimate
# distance by about 18% (ref 20) (255=inf)
Name => 'FocusDistance',
ValueConv => '2**(($val-126)/16)',
ValueConvInv => 'log($val)/log(2)*16+126',
PrintConv => '$val > 266 ? "inf" : sprintf("%.2f m", $val)',
PrintConvInv => '$val=~s/ ?m//; $val=~/inf/i ? 267 : $val',
},
0x49bd => {
Name => 'LensType',
lib/Image/ExifTool/Minolta.pm view on Meta::CPAN
ValueConv => '($val-106)/8',
ValueConvInv => '$val * 8 + 106',
},
0x49c5 => {
Name => 'MaxAperture',
ValueConv => '2 ** (($val-8)/16)',
ValueConvInv => '8 + 16*log($val)/log(2)',
PrintConv => 'sprintf("%.1f",$val)',
PrintConvInv => '$val',
},
# 0x49c6 - gives focal length using same formula as 0x49bb
0x49c7 => {
Name => 'FNumber',
ValueConv => '2 ** (($val-8)/16)',
ValueConvInv => '8 + 16*log($val)/log(2)',
PrintConv => 'sprintf("%.1f",$val)',
PrintConvInv => '$val',
},
0x49dc => {
Name => 'InternalSerialNumber',
Format => 'string[12]',
lib/Image/ExifTool/PhaseOne.pm view on Meta::CPAN
ValueConvInv => 'GetUnixTime($val)',
PrintConv => '$self->ConvertDateTime($val)',
PrintConvInv => '$self->InverseDateTime($val)',
},
0x0113 => 'ImageNumber', # (NC)
0x0203 => { Name => 'Software', Format => 'string' },
0x0204 => { Name => 'System', Format => 'string' },
# 0x020b - int32u: 0,1
# 0x020c - int32u: 1,2
# 0x020e - int32u: 1,3
0x0210 => { # (NC) (used in linearization formula - ref 1)
Name => 'SensorTemperature',
Format => 'float',
PrintConv => 'sprintf("%.2f C",$val)',
PrintConvInv => '$val=~s/ ?C//; $val',
},
0x0211 => { # (NC)
Name => 'SensorTemperature2',
Format => 'float',
PrintConv => 'sprintf("%.2f C",$val)',
PrintConvInv => '$val=~s/ ?C//; $val',
lib/Image/ExifTool/Sony.pm view on Meta::CPAN
},
Notes => 'distance in metres = FocusPosition * FocalLength / 1000',
ValueConv => '$val >= 128 ? "inf" : $val * $val[1] / 1000',
PrintConv => '$val eq "inf" ? $val : "$val m"',
},
FocusDistance2 => {
# For DSLR-A550 and newer, NEX/ILCE/SLT/ILCA (only A65V/A77V are missing ...):
# seen FocusPosition2 with values from 80 - 255 (and 21 for Touit 12mm...)
# Formula from minolta.pm (WBInfoA100 - 0x49bb) gives mostly correct/acceptable distance indications.
# (https://exiftool.org/forum/index.php/topic,3688.0.html)
# if this value is the 35mm equivalent magnification, then the formula could
# be (1.5 * 2**($val/16-5)+1) * FocalLength, but this tends to underestimate
# distance by about 18% (ref 20) (255=inf)
# modified 16-10-2014 based on A99V measurements: use FocalLengthIn35mmFormat and leave out the "1.5*" factor.
Require => {
0 => 'Sony:FocusPosition2',
1 => 'FocalLengthIn35mmFormat',
},
# (NOTE: This calculation may be wrong. "Focus Distance 2 is the result of an erroneous
# user supplied formula to exiftool. It does use data embedded in the raw file,
# but it is not the data. The actual embedded data seems to be proportional to
# magnification not a focus distance. The camera needs to calculate magnification
# for translation stabilization.", ref https://www.fredmiranda.com/forum/topic/1858744/0)
ValueConv => q{
return undef unless $val;
return 'inf' if $val >= 255;
return (2**($val/16-5) + 1) * $val[1] / 1000;
},
PrintConv => '$val eq "inf" ? $val : sprintf("%.4g m", $val)',
},
lib/Image/ExifTool/Sony.pm view on Meta::CPAN
substr($$dataPt, $start, $words*4) = pack('N*', @data);
}
#------------------------------------------------------------------------------
# Decipher/encipher Sony tag 0x2010, 0x900b, 0x9050 and 0x940x data (ref PH)
# Inputs: 0) data reference, 1) true to encipher the data
sub Decipher($;$)
{
my ($dataPt, $encipher) = @_;
# This is a simple substitution cipher, so use a hardcoded translation table for speed.
# The formula is: $c = ($b*$b*$b) % 249, where $c is the enciphered data byte
# (note that bytes with values 249-255 are not translated, and 0-1, 82-84,
# 165-167 and 248 have the same enciphered value)
if ($encipher) { # encipher
$$dataPt =~ tr/\x02-\xf7/\x08\x1b\x40\x7d\xd8\x5e\x0e\xe7\x04V\xea\xcd\x05\x8ap\xb6i\x88\x200\xbe\xd7\x81\xbb\x92\x0c\x28\xecl\xa0\x95Q\xd3\x2f\x5dj\x5c9\x07\xc5\x87L\x1a\xf0\xe2\xef\x24y\x02\xb7\xac\xe0\x60\x2bG\xba\x91\xcbu\x8e\x233\xc4\xe3...
} else { # decipher
$$dataPt =~ tr/\x08\x1b\x40\x7d\xd8\x5e\x0e\xe7\x04V\xea\xcd\x05\x8ap\xb6i\x88\x200\xbe\xd7\x81\xbb\x92\x0c\x28\xecl\xa0\x95Q\xd3\x2f\x5dj\x5c9\x07\xc5\x87L\x1a\xf0\xe2\xef\x24y\x02\xb7\xac\xe0\x60\x2bG\xba\x91\xcbu\x8e\x233\xc4\xe3\x96\xdc\x...
}
}
#------------------------------------------------------------------------------
lib/Image/ExifTool/ZIP.pm view on Meta::CPAN
use Image::ExifTool qw(:DataAccess :Utils);
$VERSION = '1.32';
sub WarnProc($) { $warnString = $_[0]; }
# file types for recognized Open Document "mimetype" values
my %openDocType = (
'application/vnd.oasis.opendocument.database' => 'ODB', #5
'application/vnd.oasis.opendocument.chart' => 'ODC', #5
'application/vnd.oasis.opendocument.formula' => 'ODF', #5
'application/vnd.oasis.opendocument.graphics' => 'ODG', #5
'application/vnd.oasis.opendocument.image' => 'ODI', #5
'application/vnd.oasis.opendocument.presentation' => 'ODP',
'application/vnd.oasis.opendocument.spreadsheet' => 'ODS',
'application/vnd.oasis.opendocument.text' => 'ODT',
'application/vnd.adobe.indesign-idml-package' => 'IDML', #6 (not open doc)
'application/epub+zip' => 'EPUB', #PH (not open doc)
);
# iWork file types based on names of files found in the zip archive
( run in 0.954 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )