Image-Info

 view release on metacpan or  search on metacpan

lib/Image/TIFF.pm  view on Meta::CPAN

  [ "BYTE",      "C1", 1],
  [ "ASCII",     "A1", 1],
  [ "SHORT",     "n1", 2],
  [ "LONG",      "N1", 4],
  [ "RATIONAL",  "N2", 8],
  [ "SBYTE",     "c1", 1],
  [ "UNDEFINED", "a1", 1],
  [ "SSHORT",    "n1", 2],
  [ "SLONG",     "N1", 4],
  [ "SRATIONAL", "N2", 8],
  [ "FLOAT",     "f1", 4],  # XXX 4-byte IEEE format
  [ "DOUBLE",    "d1", 8],  # XXX 8-byte IEEE format
# XXX TODO:
#  [ "IFD",      "??", ?],  # See ExifTool
);

my %nikon1_tags = (
    0x0003 => "Quality",
    0x0004 => "ColorMode",
    0x0005 => "ImageAdjustment",
    0x0006 => "CCDSensitivity",
    0x0007 => "Whitebalance",
    0x0008 => "Focus",
    0x000A => "DigitalZoom",
    0x000B => "Converter",
);

my %nikon2_tags = (
    0x0001 => "NikonVersion",
    0x0002 => "ISOSetting",
    0x0003 => "ColorMode",
    0x0004 => "Quality",
    0x0005 => "Whitebalance",
    0x0006 => "ImageSharpening",
    0x0007 => "FocusMode",
    0x0008 => "FlashSetting",
    0x0009 => "FlashMetering",
    0x000B => "WBAdjustment",
    0x000F => "ISOSelection",
    0x0080 => "ImageAdjustment",
    0x0082 => "AuxiliaryLens",
    0x0084 => "Lens",
    0x0085 => "ManualFocusDistance",
    0x0086 => "DigitalZoom",
    0x0088 => { __TAG__ => "AFFocusPosition",
                pack("xCxx",0) => "Center",
                pack("xCxx",1) => "Top",
                pack("xCxx",2) => "Bottom",
                pack("xCxx",3) => "Left",
                pack("xCxx",4) => "Right",
              },
    0x008d => "ColorMode",
    0x0090 => "FlashType",
    0x0095 => "NoiseReduction",
    0x0010 => "DataDump",
);

my %olympus_tags = (
    0x0200 => "SpecialMode",
    0x0201 => { __TAG__ => "JpegQual", 0 => "SQ", 1 => "HQ", 2 => "SHQ" },
    0x0202 => { __TAG__ => "Macro", 0 => "Normal", 1 => "Macro" },
    0x0204 => "DigiZoom",
    0x0207 => "SoftwareRelease",
    0x0208 => "PictInfo",
    0x0209 => "CameraID",
    0x0f00 => "DataDump",
);

my %fujifilm_tags = (
    0x0000 => "Version",
    0x1000 => "Quality",
    0x1001 => { __TAG__ => "Sharpness", 
                1 => "Very Soft",
                2 => "Soft",
                3 => "Normal",
                4 => "Hard",
                5 => "Very Hard",
              },
    0x1002 => { __TAG__ => "WhiteBalance",
                0    => "Auto",
                256  => "Daylight",
                512  => "Cloudy",
                768  => "DaylightColor-fluorescence",
                769  => "DaywhiteColor-fluorescence",
                770  => "White-fluorescence",
                1024 => "Incandenscense",
                3840 => "Custom white balance",
              },
    0x1003 => { __TAG__ => "Color", 0 => "Normal", 256 => "High", 512 => "Low" },
    0x1004 => { __TAG__ => "Tone" , 0 => "Normal", 256 => "High", 512 => "Low" },
    0x1010 => { __TAG__ => "FlashMode", 0 => "Auto", 1 => "On", 2 => "Off", 3 => "Red-eye reduction" },
    0x1011 => "FlashStrength",
    0x1020 => { __TAG__ => "Macro", 0 => "Off", 1 => "On"},
    0x1021 => { __TAG__ => "FocusMode", 0 => "Auto", 1 => "Manual" },
    0x1030 => { __TAG__ => "SlowSync", 0 => "Off", 1 => "On"},
    0x1031 => { __TAG__ => "PictureMode",
                0   => "Auto",
                1   => "Portrait",
                2   => "Landscape",
                4   => "Sports",
                5   => "Night",
                6   => "Program AE",
                256 => "Aperture priority",
                512 => "Shutter priority",
                768 => "Manual",
              },
    0x1100 => { __TAG__ => "AutoBracketing", 0 => "Off", 1 => "On"},
    0x1300 => { __TAG__ => "BlurWarning", 0 => "No", 1 => "Yes"},
    0x1301 => { __TAG__ => "FocusWarning", 0 => "No", 1 => "Yes"},
    0x1302 => { __TAG__ => "AEWarning", 0 => "No", 1 => "Yes"},
);

my %casio_tags = (
    0x0001 => { __TAG__ => "RecordingMode",
                1 => "SingleShutter",
                2 => "Panorama",
                3 => "Night scene",
                4 => "Portrait",
                5 => "Landscape",
              },
    0x0002 => { __TAG__ => "Quality", 1 => "Economy", 2 => "Normal", 3 => "Fine" },
    0x0003 => { __TAG__ => "FocusingMode",
                2 => "Macro",
                3 => "Auto",
                4 => "Manual",
                5 => "Infinity",
              },
    0x0004 => { __TAG__ => "FlashMode", 1 => "Auto", 2 => "On", 3 => "Off", 4 => "Red-eye reduction" },
    0x0005 => { __TAG__ => "FlashIntensity", 11 => "Weak", 13 => "Normal", 15 => "Strong" },
    0x0006 => "ObjectDistance",
    0x0007 => { __TAG__ => "WhiteBalance", 
                1 => "Auto",
                2 => "Tungsten",
                3 => "Daylight",
                4 => "Fluorescent",
                5 => "Shade",
                129 => "Manual",
              },
    0x000a => { __TAG__ => "DigitalZoom", 65536 => "Off", 65537 => "2X" },
    0x000b => { __TAG__ => "Sharpness", 0 => "Normal", 1 => "Soft", 2 => "Hard" },
    0x000c => { __TAG__ => "Contrast"  , 0 => "Normal", 1 => "Low", 2 => "High" },
    0x000d => { __TAG__ => "Saturation", 0 => "Normal", 1 => "Low", 2 => "High" },
    0x0014 => { __TAG__ => "CCDSensitivity",
                64  => "Normal",
                125 => "+1.0",
                250 => "+2.0",
                244 => "+3.0",
                80  => "Normal",
                100 => "High",
              },
);

my %canon_0x0001_tags = (
     0 => { __TAG__ => "MacroMode", 1 => "Macro", 2 => "Normal" },
     1 => "SelfTimer",
     2 => { __TAG__ => "Quality", 2 => "Normal", 3 => "Fine", 5 => "SuperFine" },
     3 => 'Tag-0x0001-03',
     4 => { __TAG__ => 'FlashMode',
            0 => 'Flash Not Fired',
            1 => 'Auto',
            2 => 'On',
            3 => 'Red-Eye Reduction',
            4 => 'Slow Synchro',
            5 => 'Auto + Red-Eye Reduction',
            6 => 'On + Red-Eye Reduction',
            16 => 'External Flash'
          },
     5 => { __TAG__ => 'ContinuousDriveMode', 0 => 'Single Or Timer', 1 => 'Continuous' },
     6 => 'Tag-0x0001-06',
     7 => { __TAG__ => 'FocusMode',
            0 => 'One-Shot',
            1 => 'AI Servo',
            2 => 'AI Focus',
            3 => 'MF',
            4 => 'Single',
            5 => 'Continuous',
            6 => 'MF'
          },
     8 => 'Tag-0x0001-08',
     9 => 'Tag-0x0001-09',
    10 => { __TAG__ => 'ImageSize', 0 => 'Large', 1 => 'Medium', 2 => 'Small' },
    11 => { __TAG__ => 'EasyShootingMode',
            0 => 'Full Auto',
            1 => 'Manual',
            2 => 'Landscape',
            3 => 'Fast Shutter',
            4 => 'Slow Shutter',
            5 => 'Night',
            6 => 'B&W',
            7 => 'Sepia',
            8 => 'Portrait',
            9 => 'Sports',
            10 => 'Macro/Close-Up',
            11 => 'Pan Focus'
         },
    12 => { __TAG__ => 'DigitalZoom', 0 => 'None', 1 => '2x', 2 => '4x' },
    13 => { __TAG__ => 'Contrast', 0xFFFF => 'Low', 0 => 'Normal', 1 => 'High' },
    14 => { __TAG__ => 'Saturation', 0xFFFF => 'Low', 0 => 'Normal', 1 => 'High' },
    15 => { __TAG__ => 'Sharpness', 0xFFFF => 'Low', 0 => 'Normal', 1 => 'High' },
    16 => { __TAG__ => 'ISO',
            0 => 'See ISOSpeedRatings Tag',
            15 => 'Auto',
            16 => '50',
            17 => '100',
            18 => '200',
            19 => '400'
         },
    17 => { __TAG__ => 'MeteringMode', 3 => 'Evaluative', 4 => 'Partial', 5 => 'Center-Weighted' },
    18 => { __TAG__ => 'FocusType',
            0 => 'Manual',
            1 => 'Auto',
            3 => 'Close-Up (Macro)',
            8 => 'Locked (Pan Mode)'
         },
    19 => { __TAG__ => 'AFPointSelected',
            0x3000 => 'None { __TAG__ => MF)',
            0x3001 => 'Auto-Selected',
            0x3002 => 'Right',
            0x3003 => 'Center',
            0x3004 => 'Left'
         },
    20 => { __TAG__ => 'ExposureMode',
            0 => 'Easy Shooting',
            1 => 'Program',
            2 => 'Tv-priority',
            3 => 'Av-priority',
            4 => 'Manual',
            5 => 'A-DEP'
         },
    21 => 'Tag-0x0001-21',
    22 => 'Tag-0x0001-22',
    23 => 'LongFocalLengthOfLensInFocalUnits', 
    24 => 'ShortFocalLengthOfLensInFocalUnits',
    25 => 'FocalUnitsPerMM',
    26 => 'Tag-0x0001-26',
    27 => 'Tag-0x0001-27',
    28 => { __TAG__ => 'FlashActivity', 0 => 'Did Not Fire', 1 => 'Fired' },
    29 => { __TAG__ => 'FlashDetails',
            14 => 'External E-TTL',
            13 => 'Internal Flash',
            11 => 'FP Sync Used',
            7 => '2nd ("Rear")-Curtain Sync Used',
            4 => 'FP Sync Enabled'
         },
    30 => 'Tag-0x0001-30',
    31 => 'Tag-0x0001-31',
    32 => { __TAG__ => 'FocusMode', 0 => 'Single', 1 => 'Continuous' },    
);

my %canon_0x0004_tags = (  
    7 => { __TAG__ => 'WhiteBalance',
           0 => 'Auto',
           1 => 'Sunny',
           2 => 'Cloudy',
           3 => 'Tungsten',
           4 => 'Fluorescent',
           5 => 'Flash',
           6 => 'Custom'
         },
    9 => 'SequenceNumber',
    14 => 'AFPointUsed',
    15 => { __TAG__ => 'FlashBias',
           0xFFC0 => '-2 EV',
           0xFFCC => '-1.67 EV',
           0xFFD0 => '-1.50 EV',
           0xFFD4 => '-1.33 EV',
           0xFFE0 => '-1 EV',
           0xFFEC => '-0.67 EV',
           0xFFF0 => '-0.50 EV',
           0xFFF4 => '-0.33 EV',
           0x0000 => '0 EV',
           0x000C => '0.33 EV',
           0x0010 => '0.50 EV',
           0x0014 => '0.67 EV',
           0x0020 => '1 EV',
           0x002C => '1.33 EV',
           0x0030 => '1.50 EV',
           0x0034 => '1.67 EV',
           0x0040 => '2 EV', 
         },
    19 => 'SubjectDistance'
);


my %canon_tags = (
    0x0001 => { __TAG__ => "Custom_0x0001", __ARRAYOFFSET__ => \%canon_0x0001_tags },
    0x0004 => { __TAG__ => "Custom_0x0004", __ARRAYOFFSET__ => \%canon_0x0004_tags },
    0x0006 => "ImageType",
    0x0007 => "FirmwareVersion",
    0x0008 => "ImageNumber",
    0x0009 => "OwnerName",
    0x000c => "SerialNumber",
);

# see http://www.compton.nu/panasonic.html

my %panasonic_tags = (
    0x0001 => { __TAG__ => "ImageQuality",
	2 => 'High',
	3 => 'Normal',
	6 => 'Very High',	#3 (Leica)
	7 => 'Raw', 		#3 (Leica)
	},
    0x0002 => "FirmwareVersion",
    0x0003 => { __TAG__ => "WhiteBalance",
	1 => 'Auto',
	2 => 'Daylight',
	3 => 'Cloudy',
	4 => 'Halogen',
	5 => 'Manual',
	8 => 'Flash',
	10 => 'Black & White', #3 (Leica)
	},
    0x0007 => { __TAG__ => "FocusMode",
	1 => 'Auto',
	2 => 'Manual',
	5 => 'Auto, Continuous',
	4 => 'Auto, Focus button',
	},
    0x000f => { __TAG__ => "SpotMode",
	# XXX TODO: does not decode properly
	"0,1" => 'On',
	"0,16" => 'Off',
	},
    0x001a => { __TAG__ => "ImageStabilizer",
	2 => 'On, Mode 1',
	3 => 'Off',
	4 => 'On, Mode 2',
	},
    0x001c => { __TAG__ => "MacroMode",
	1 => 'On',
	2 => 'Off',
	},
    0x001f => { __TAG__ => "ShootingMode",
	1  => 'Normal',
	2  => 'Portrait',
	3  => 'Scenery',
	4  => 'Sports',
	5  => 'Night Portrait',
	6  => 'Program',
	7  => 'Aperture Priority',
	8  => 'Shutter Priority',
	9  => 'Macro',
	11 => 'Manual',
	13 => 'Panning',
	18 => 'Fireworks',
	19 => 'Party',
	20 => 'Snow',
	21 => 'Night Scenery',
	},
    0x0020 => { __TAG__ => "Audio",
	1 => 'Yes',
	2 => 'No',
	},
    0x0021 => "DataDump",
    0x0022 => "Panasonic 0x0022",
    0x0023 => "WhiteBalanceBias",
    0x0024 => "FlashBias",
    0x0025 => "SerialNumber",
    0x0026 => "Panasonic 0x0026",
    0x0027 => "Panasonic 0x0027",
    0x0028 => { __TAG__ => "ColorEffect",
	1 => 'Off',
	2 => 'Warm',
	3 => 'Cool',
	4 => 'Black & White',
	5 => 'Sepia',
	},
    0x0029 => "Panasonic 0x0029",
    0x002a => { __TAG__ => "BurstMode",
	0 => 'Off',
	1 => 'Low/High Quality',
	2 => 'Infinite',
	},
    0x002b => "ImageSequenceNumber",
    0x002c => { __TAG__ => "Contrast",
	0 => 'Normal',
	1 => 'Low',
	2 => 'High',
	0x100 => 'Low',		# Leica
	0x110 => 'Normal',	# Leica
	0x120 => 'High',	# Leica
	},
    0x002d => { __TAG__ => "NoiseReduction",
	0 => 'Standard',
	1 => 'Low',
	2 => 'High',
	},
    0x002e => { __TAG__ => "SelfTimer",
	1 => 'Off',
	2 => '10s',
	3 => '2s',
	},
    0x002f => "Panasonic 0x002f",
    0x0030 => "Panasonic 0x0030",
    0x0031 => "Panasonic 0x0031",
    0x0032 => "Panasonic 0x0032",
);

# format:
#    "Make Model" => [ Offset, 'Tag_prefix', ptr to tags ]
# Offset is either 0, or a positive number of Bytes.
# Offset -1 or -2 means a kludge for Fuji or Nikon

lib/Image/TIFF.pm  view on Meta::CPAN

		2 => "One-chip color area sensor",
		3 => "Two-chip color area sensor",
		4 => "Three-chip color area sensor",
		5 => "Color sequential area sensor",
		7 => "Trilinear sensor",
		8 => "Color sequential linear sensor"
		},
    0xA300 => {__TAG__ => "FileSource",
               DECODER => \&file_source_decoder,
              },
    0xA301 => {__TAG__ => "SceneType",
               DECODER => \&scene_type_decoder,
              },
    0xA302 => "CFAPattern",
    0xA401 => {__TAG__ => "CustomRendered",
		0 => "Normal process",
		1 => "Custom process"
		},
    0xA402 => {__TAG__ => "ExposureMode",
		0 => "Auto exposure",
		1 => "Manual exposure",
		2 => "Auto bracket"
		},
    0xA403 => {__TAG__ => "WhiteBalance",
		0 => "Auto white balance",
		1 => "Manual white balance"
		},
    0xA404 => "DigitalZoomRatio",
    0xA405 => "FocalLengthIn35mmFilm",
    0xA406 => {__TAG__ => "SceneCaptureType",
		0 => "Standard",
		1 => "Landscape",
		2 => "Portrait",
		3 => "Night Scene"
		},
    0xA407 => {__TAG__ => "GainControl",
		0 => "None",
		1 => "Low gain up",
		2 => "High gain up",
		3 => "Low gain down",
		4 => "High gain down"
		},
    0xA408 => {__TAG__ => "Contrast",
		0 => "Normal",
		1 => "Soft",
		2 => "Hard"
		},
    0xA409 => {__TAG__ => "Saturation",
		0 => "Normal",
		1 => "Low saturation",
		2 => "High saturation"
		},
    0xA40A => {__TAG__ => "Sharpness",
		0 => "Normal",
		1 => "Soft",
		2 => "Hard"
		},
    0xA40B => "DeviceSettingDescription",
    0xA40C => {__TAG__ => "SubjectDistanceRange",
		0 => "Unknown",
		1 => "Macro",
		2 => "Close view",
		3 => "Distant view"
		},
    0xA420 => "ImageUniqueID",
);

my %gps_tags = (
    0x0000 => 'GPSVersionID',
    0x0001 => 'GPSLatitudeRef',
    0x0002 => 'GPSLatitude',
    0x0003 => 'GPSLongitudeRef',
    0x0004 => 'GPSLongitude',
    0x0005 => 'GPSAltitudeRef',
    0x0006 => 'GPSAltitude',
    0x0007 => 'GPSTimeStamp',
    0x0008 => 'GPSSatellites',
    0x0009 => 'GPSStatus',
    0x000A => 'GPSMeasureMode',
    0x000B => 'GPSDOP',
    0x000C => 'GPSSpeedRef',
    0x000D => 'GPSSpeed',
    0x000E => 'GPSTrackRef',
    0x000F => 'GPSTrack',
    0x0010 => 'GPSImgDirectionRef',
    0x0011 => 'GPSImgDirection',
    0x0012 => 'GPSMapDatum',
    0x0013 => 'GPSDestLatitudeRef',
    0x0014 => 'GPSDestLatitude',
    0x0015 => 'GPSDestLongitudeRef',
    0x0016 => 'GPSDestLongitude',
    0x0017 => 'GPSDestBearingRef',
    0x0018 => 'GPSDestBearing',
    0x0019 => 'GPSDestDistanceRef',
    0x001A => 'GPSDestDistance',
    0x001B => 'GPSProcessingMethod',
    0x001C => 'GPSAreaInformation',
    0x001D => 'GPSDateStamp',
    0x001E => 'GPSDifferential',
);

my %tiff_tags = (
  254   => { __TAG__ => "NewSubfileType",
	     1 => "ReducedResolution",
	     2 => "SinglePage",
	     4 => "TransparencyMask",
	 },
  255   => { __TAG__ => "SubfileType",
	     1 => "FullResolution",
	     2 => "ReducedResolution",
	     3 => "SinglePage",
	   },
  256   => "width",
  257   => "height",
  258   => "BitsPerSample",
  259   => { __TAG__ => "Compression",
		1 => "PackBytes",
		2 => "CCITT Group3",
		3 => "CCITT T4",
		4 => "CCITT T6",
		5 => "LZW",



( run in 0.919 second using v1.01-cache-2.11-cpan-e1769b4cff6 )