Image-ExifTool
view release on metacpan or search on metacpan
lib/Image/ExifTool/Casio.pm view on Meta::CPAN
#------------------------------------------------------------------------------
# File: Casio.pm
#
# Description: Casio EXIF maker notes tags
#
# Revisions: 12/09/2003 - P. Harvey Created
# 09/10/2004 - P. Harvey Added MakerNote2 (thanks to Joachim Loehr)
#
# References: 1) http://park2.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html
# 2) Joachim Loehr private communication
# 3) http://homepage3.nifty.com/kamisaka/makernote/makernote_casio.htm
# 4) http://gvsoft.homedns.org/exif/makernote-casio-type1.html
# 5) Robert Chi private communication (EX-F1)
# 6) https://exiftool.org/forum/index.php/topic,3701.html
# JD) Jens Duttke private communication
#------------------------------------------------------------------------------
package Image::ExifTool::Casio;
use strict;
use vars qw($VERSION);
use Image::ExifTool::Exif;
$VERSION = '1.38';
# older Casio maker notes (ref 1)
%Image::ExifTool::Casio::Main = (
WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
WRITABLE => 1,
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
0x0001 => {
Name => 'RecordingMode' ,
Writable => 'int16u',
PrintConv => {
1 => 'Single Shutter',
2 => 'Panorama',
3 => 'Night Scene',
4 => 'Portrait',
5 => 'Landscape',
7 => 'Panorama', #4
10 => 'Night Scene', #4
15 => 'Portrait', #4
16 => 'Landscape', #4
},
},
0x0002 => {
Name => 'Quality',
Writable => 'int16u',
PrintConv => { 1 => 'Economy', 2 => 'Normal', 3 => 'Fine' },
},
0x0003 => {
Name => 'FocusMode',
Writable => 'int16u',
PrintConv => {
2 => 'Macro',
3 => 'Auto',
4 => 'Manual',
5 => 'Infinity',
7 => 'Spot AF', #4
},
},
0x0004 => [
{
Name => 'FlashMode',
Condition => '$self->{Model} =~ /^QV-(3500EX|8000SX)/',
Writable => 'int16u',
PrintConv => {
1 => 'Auto',
2 => 'On',
3 => 'Off',
4 => 'Off', #4
5 => 'Red-eye Reduction', #4
},
},
{
Name => 'FlashMode',
Writable => 'int16u',
PrintConv => {
1 => 'Auto',
2 => 'On',
3 => 'Off',
4 => 'Red-eye Reduction',
},
},
],
0x0005 => {
Name => 'FlashIntensity',
Writable => 'int16u',
PrintConv => {
11 => 'Weak',
12 => 'Low', #4
13 => 'Normal',
14 => 'High', #4
15 => 'Strong',
},
},
0x0006 => {
Name => 'ObjectDistance',
Writable => 'int32u',
ValueConv => '$val / 1000', #4
ValueConvInv => '$val * 1000',
PrintConv => '"$val m"',
PrintConvInv => '$val=~s/\s*m$//;$val',
},
0x0007 => {
Name => 'WhiteBalance',
Writable => 'int16u',
PrintConv => {
1 => 'Auto',
2 => 'Tungsten',
3 => 'Daylight',
4 => 'Fluorescent',
5 => 'Shade',
129 => 'Manual',
},
lib/Image/ExifTool/Casio.pm view on Meta::CPAN
%Image::ExifTool::Casio::Type2 = (
WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
WRITABLE => 1,
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
0x0002 => {
Name => 'PreviewImageSize',
Groups => { 2 => 'Image' },
Writable => 'int16u',
Count => 2,
PrintConv => '$val =~ tr/ /x/; $val',
PrintConvInv => '$val =~ tr/x/ /; $val',
},
0x0003 => {
Name => 'PreviewImageLength',
Groups => { 2 => 'Image' },
OffsetPair => 0x0004, # point to associated offset
DataTag => 'PreviewImage',
Writable => 'int32u',
WriteGroup => 'MakerNotes',
Protected => 2,
},
0x0004 => {
Name => 'PreviewImageStart',
Groups => { 2 => 'Image' },
Flags => 'IsOffset',
OffsetPair => 0x0003, # point to associated byte count
DataTag => 'PreviewImage',
Writable => 'int32u',
WriteGroup => 'MakerNotes',
Protected => 2,
},
0x0008 => {
Name => 'QualityMode',
Writable => 'int16u',
PrintConv => {
0 => 'Economy',
1 => 'Normal',
2 => 'Fine',
},
},
0x0009 => {
Name => 'CasioImageSize',
Groups => { 2 => 'Image' },
Writable => 'int16u',
PrintConv => {
0 => '640x480',
4 => '1600x1200',
5 => '2048x1536',
20 => '2288x1712',
21 => '2592x1944',
22 => '2304x1728',
36 => '3008x2008',
},
},
0x000d => {
Name => 'FocusMode',
Writable => 'int16u',
PrintConv => {
0 => 'Normal',
1 => 'Macro',
},
},
0x0014 => {
Name => 'ISO',
Writable => 'int16u',
Priority => 0,
PrintConv => {
3 => 50,
4 => 64,
6 => 100,
9 => 200,
},
},
0x0019 => {
Name => 'WhiteBalance',
Writable => 'int16u',
PrintConv => {
0 => 'Auto',
1 => 'Daylight',
2 => 'Shade',
3 => 'Tungsten',
4 => 'Fluorescent',
5 => 'Manual',
},
},
0x001d => {
Name => 'FocalLength',
Writable => 'rational64u',
PrintConv => 'sprintf("%.1f mm",$val)',
PrintConvInv => '$val=~s/\s*mm$//;$val',
},
0x001f => {
Name => 'Saturation',
Writable => 'int16u',
PrintConv => {
0 => 'Low',
1 => 'Normal',
2 => 'High',
},
},
0x0020 => {
Name => 'Contrast',
Writable => 'int16u',
PrintConv => {
0 => 'Low',
1 => 'Normal',
2 => 'High',
},
},
0x0021 => {
Name => 'Sharpness',
Writable => 'int16u',
PrintConv => {
0 => 'Soft',
1 => 'Normal',
2 => 'Hard',
},
},
0x0e00 => {
Name => 'PrintIM',
lib/Image/ExifTool/Casio.pm view on Meta::CPAN
SubDirectory => {
TagTable => 'Image::ExifTool::Casio::FaceInfo2',
ByteOrder => 'LittleEndian',
},
},{
Name => 'FaceInfoUnknown',
Unknown => 1,
},
],
# 0x208a - also some sort of face detection information - PH
0x211c => { #PH
Name => 'FacesDetected',
Format => 'int8u',
},
0x3000 => {
Name => 'RecordMode',
Writable => 'int16u',
PrintConv => {
2 => 'Program AE', #3
3 => 'Shutter Priority', #3
4 => 'Aperture Priority', #3
5 => 'Manual', #3
6 => 'Best Shot', #3
17 => 'Movie', #PH (UHQ?)
19 => 'Movie (19)', #PH (HQ?, EX-P505)
20 => 'YouTube Movie', #PH
'2 0' => 'Program AE', #PH (NC)
'3 0' => 'Shutter Priority', #PH (NC)
'4 0' => 'Aperture Priority', #PH (NC)
'5 0' => 'Manual', #PH (NC)
'6 0' => 'Best Shot', #PH (NC)
},
},
0x3001 => { #3
Name => 'ReleaseMode',
Writable => 'int16u',
PrintConv => {
1 => 'Normal',
3 => 'AE Bracketing',
11 => 'WB Bracketing',
13 => 'Contrast Bracketing', #(not sure about translation - PH)
19 => 'High Speed Burst', #PH (EX-FH25, 40fps)
# have also seen: 2, 7(common), 14, 18 - PH
},
},
0x3002 => {
Name => 'Quality',
Writable => 'int16u',
PrintConv => {
1 => 'Economy',
2 => 'Normal',
3 => 'Fine',
},
},
0x3003 => {
Name => 'FocusMode',
Writable => 'int16u',
PrintConv => {
0 => 'Manual', #(guess at translation)
1 => 'Focus Lock', #(guess at translation)
2 => 'Macro', #3
3 => 'Single-Area Auto Focus',
5 => 'Infinity', #PH
6 => 'Multi-Area Auto Focus',
8 => 'Super Macro', #PH (EX-Z2300)
},
},
0x3006 => {
Name => 'HometownCity',
Writable => 'string',
},
# unfortunately the BestShotMode numbers are model-dependent - PH
#http://search.casio-intl.com/search?q=BEST+SHOT+sets+up+the+camera+CASIO+EX+ZR100+BEST+SHOT&btnG=Search&output=xml_no_dtd&oe=UTF-8&ie=UTF-8&site=casio-intl_com&client=search_casio-intl_com&proxystylesheet=search_casio-intl_com
# NOTE: BestShotMode is not used unless RecordMode is "Best Shot"
0x3007 => [{
Name => 'BestShotMode',
Writable => 'int16u',
Condition => '$$self{Model} eq "EX-FC100"',
Notes => 'EX-FC100',
PrintConvColumns => 2,
PrintConv => {
0 => 'Off',
1 => 'Auto',
2 => 'Portrait',
3 => 'Scenery',
4 => 'Portrait with Scenery',
5 => 'Children',
6 => 'Sports',
7 => 'Pet',
8 => 'Flower',
9 => 'Natural Green',
10 => 'Autumn Leaves',
11 => 'Sundown',
12 => 'High Speed Night Scene',
13 => 'Night Scene Portrait',
14 => 'Fireworks',
15 => 'High Speed Anti Shake',
16 => 'Multi-motion Image',
17 => 'High Speed Best Selection',
18 => 'Move Out CS',
19 => 'Move In CS',
20 => 'Pre-record Movie',
21 => 'For YouTube',
},
},{
Name => 'BestShotMode',
Writable => 'int16u',
Condition => '$$self{Model} eq "EX-FC150"',
Notes => 'EX-FC150',
PrintConvColumns => 2,
PrintConv => {
0 => 'Off',
1 => 'Auto',
2 => 'Expression CS',
3 => 'Baby CS',
4 => 'Child CS',
5 => 'Pet CS',
6 => 'Sports CS',
7 => 'Child High Speed Movie',
8 => 'Pet High Speed Movie',
9 => 'Sports High Speed Movie',
10 => 'Lag Correction',
11 => 'High Speed Lighting',
12 => 'High Speed Night Scene',
13 => 'High Speed Night Scene and Portrait',
( run in 0.664 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )