915 lines
35 KiB
PHP
915 lines
35 KiB
PHP
|
<?php
|
|||
|
|
|||
|
/******************************************************************************
|
|||
|
*
|
|||
|
* Filename: EXIF_Tags.php
|
|||
|
*
|
|||
|
* Description: Provides definitions of the tags for TIFF, EXIF, Interoperability,
|
|||
|
* GPS, Meta, Kodak Special Effects and Kodak Borders IFD's.
|
|||
|
*
|
|||
|
* Author: Evan Hunter
|
|||
|
*
|
|||
|
* Date: 1/8/2004
|
|||
|
*
|
|||
|
* Project: PHP JPEG Metadata Toolkit
|
|||
|
*
|
|||
|
* Revision: 1.11
|
|||
|
*
|
|||
|
* Changes: 1.00 -> 1.11 : Added TIFF compression types ZIP, LZW and JPEG
|
|||
|
* Added embedded XMP tag
|
|||
|
* Added embedded Photoshop IRB tag
|
|||
|
* Fixed GPS tags after testing
|
|||
|
*
|
|||
|
* URL: http://electronics.ozhiker.com
|
|||
|
*
|
|||
|
* Copyright: Copyright Evan Hunter 2004
|
|||
|
*
|
|||
|
* License: This file is part of the PHP JPEG Metadata Toolkit.
|
|||
|
*
|
|||
|
* The PHP JPEG Metadata Toolkit is free software; you can
|
|||
|
* redistribute it and/or modify it under the terms of the
|
|||
|
* GNU General Public License as published by the Free Software
|
|||
|
* Foundation; either version 2 of the License, or (at your
|
|||
|
* option) any later version.
|
|||
|
*
|
|||
|
* The PHP JPEG Metadata Toolkit is distributed in the hope
|
|||
|
* that it will be useful, but WITHOUT ANY WARRANTY; without
|
|||
|
* even the implied warranty of MERCHANTABILITY or FITNESS
|
|||
|
* FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|||
|
* for more details.
|
|||
|
*
|
|||
|
* You should have received a copy of the GNU General Public
|
|||
|
* License along with the PHP JPEG Metadata Toolkit; if not,
|
|||
|
* write to the Free Software Foundation, Inc., 59 Temple
|
|||
|
* Place, Suite 330, Boston, MA 02111-1307 USA
|
|||
|
*
|
|||
|
* If you require a different license for commercial or other
|
|||
|
* purposes, please contact the author: evan@ozhiker.com
|
|||
|
*
|
|||
|
******************************************************************************/
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/******************************************************************************
|
|||
|
* Global Variable: IFD_Tag_Definitions
|
|||
|
*
|
|||
|
* Contents: This array defines the fields for the TIFF, EXIF, Interoperability,
|
|||
|
* GPS, Meta, Kodak Special Effects and Kodak Borders IFD's.
|
|||
|
* It is indexed by the IFD Type, then the Tag number
|
|||
|
*
|
|||
|
******************************************************************************/
|
|||
|
|
|||
|
$GLOBALS[ "IFD_Tag_Definitions" ] = array(
|
|||
|
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
/* */
|
|||
|
/* TIFF Tags */
|
|||
|
/* */
|
|||
|
/*****************************************************************************/
|
|||
|
|
|||
|
|
|||
|
"TIFF" => array(
|
|||
|
|
|||
|
|
|||
|
256 => array( 'Name' => "Image Width",
|
|||
|
'Description' => "Width of image in pixels (number of columns)",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "pixels" ),
|
|||
|
|
|||
|
257 => array( 'Name' => "Image Length",
|
|||
|
'Description' => "Height of image in pixels (number of rows)",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "pixels" ),
|
|||
|
|
|||
|
258 => array( 'Name' => "Bits Per Sample",
|
|||
|
'Description' => "Number of bits recorded per sample (a sample is usually one colour (Red, Green or Blue) of one pixel)",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "bits ( for each colour component )" ),
|
|||
|
|
|||
|
|
|||
|
259 => array( 'Name' => "Compression",
|
|||
|
'Description' => "Specifies what type of compression is used 1 = uncompressed, 6 = JPEG compression (thumbnails only), Other = reserved",
|
|||
|
'Type' => "Lookup",
|
|||
|
1 => "Uncompressed",
|
|||
|
5 => "LZW Compression",
|
|||
|
6 => "Thumbnail compressed with JPEG compression",
|
|||
|
7 => "JPEG Compression",
|
|||
|
8 => "ZIP Compression" ), // Change: Added TIFF compression types as of version 1.11
|
|||
|
|
|||
|
262 => array( 'Name' => "Photometric Interpretation",
|
|||
|
'Description' => "Specifies Pixel Composition - 0 or 1 = monochrome, 2 = RGB, 3 = Palatte Colour, 4 = Transparency Mask, 6 = YCbCr",
|
|||
|
'Type' => "Lookup",
|
|||
|
2 => "RGB (Red Green Blue)",
|
|||
|
6 => "YCbCr (Luminance, Chroma minus Blue, and Chroma minus Red)" ),
|
|||
|
|
|||
|
274 => array( 'Name' => "Orientation",
|
|||
|
'Description' => "Specifies the orientation of the image.\n
|
|||
|
1 = Row 0 top, column 0 left\n
|
|||
|
2 = Row 0 top, column 0 right\n
|
|||
|
3 = Row 0 bottom, column 0 right\n
|
|||
|
4 = Row 0 bottom, column 0 left\n
|
|||
|
5 = Row 0 left, column 0 top\n
|
|||
|
6 = Row 0 right, column 0 top\n
|
|||
|
7 = Row 0 right, column 0 bottom\n
|
|||
|
8 = Row 0 left, column 0 bottom",
|
|||
|
'Type' => "Lookup",
|
|||
|
1 => "No Rotation, No Flip \n(Row 0 is at the visual top of the image,\n and column 0 is the visual left-hand side)",
|
|||
|
2 => "No Rotation, Flipped Horizontally \n(Row 0 is at the visual top of the image,\n and column 0 is the visual right-hand side)",
|
|||
|
3 => "Rotated 180 degrees, No Flip \n(Row 0 is at the visual bottom of the image,\n and column 0 is the visual right-hand side)",
|
|||
|
4 => "No Rotation, Flipped Vertically \n(Row 0 is at the visual bottom of the image,\n and column 0 is the visual left-hand side)",
|
|||
|
5 => "Flipped Horizontally, Rotated 90 degrees counter clockwise \n(Row 0 is at the visual left-hand side of of the image,\n and column 0 is the visual top)",
|
|||
|
6 => "No Flip, Rotated 90 degrees clockwise \n(Row 0 is at the visual right-hand side of of the image,\n and column 0 is the visual top)",
|
|||
|
7 => "Flipped Horizontally, Rotated 90 degrees clockwise \n(Row 0 is at the visual right-hand side of of the image,\n and column 0 is the visual bottom)",
|
|||
|
8 => "No Flip, Rotated 90 degrees counter clockwise \n(Row 0 is at the visual left-hand side of of the image,\n and column 0 is the visual bottom)" ),
|
|||
|
277 => array( 'Name' => "Samples Per Pixel",
|
|||
|
'Description' => "Number of recorded samples (colours) per pixel - usually 1 for B&W, grayscale, and palette-colour, usually 3 for RGB and YCbCr",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "Components (colours)" ),
|
|||
|
|
|||
|
284 => array( 'Name' => "Planar Configuration",
|
|||
|
'Description' => "Specifies whether pixel components are recorded in chunky or planar format - 1 = Chunky, 2 = Planar",
|
|||
|
'Type' => "Lookup",
|
|||
|
1 => "Chunky Format",
|
|||
|
2 => "Planar Format" ),
|
|||
|
|
|||
|
530 => array( 'Name' => "YCbCr Sub-Sampling",
|
|||
|
'Description' => "Specifies ratio of chrominance to luminance components - [2, 1] = YCbCr4:2:2, [2, 2] = YCbCr4:2:0",
|
|||
|
'Type' => "Special" ),
|
|||
|
|
|||
|
|
|||
|
531 => array( 'Name' => "YCbCr Positioning",
|
|||
|
'Description' => "Specifies location of chrominance and luminance components - 1 = centered, 2 = co-sited",
|
|||
|
'Type' => "Lookup",
|
|||
|
1 => "Chrominance components Centred in relation to luminance components",
|
|||
|
2 => "Chrominance and luminance components Co-Sited" ),
|
|||
|
|
|||
|
|
|||
|
282 => array( 'Name' => "X Resolution",
|
|||
|
'Description' => "Number of columns (pixels) per \'ResolutionUnit\'",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units'=> "pixels per 'Resolution Unit' " ),
|
|||
|
|
|||
|
283 => array( 'Name' => "Y Resolution",
|
|||
|
'Description' => "Number of rows (pixels) per \'ResolutionUnit\'",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units'=> "pixels per 'Resolution Unit' " ),
|
|||
|
|
|||
|
296 => array( 'Name' => "Resolution Unit",
|
|||
|
'Description' => "Units for measuring XResolution and YResolution - 1 = No units, 2 = Inches, 3 = Centimetres",
|
|||
|
'Type' => "Lookup",
|
|||
|
2 => "Inches",
|
|||
|
3 => "Centimetres" ),
|
|||
|
|
|||
|
273 => array( 'Name' => "Strip Offsets",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units'=> "bytes offset" ),
|
|||
|
|
|||
|
278 => array( 'Name' => "Rows Per Strip",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units'=> "rows" ),
|
|||
|
|
|||
|
279 => array( 'Name' => "Strip Byte Counts",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units'=> "bytes" ),
|
|||
|
|
|||
|
513 => array( 'Name' => "Exif Thumbnail (JPEG Interchange Format)",
|
|||
|
'Type' => "Special" ),
|
|||
|
|
|||
|
514 => array( 'Name' => "Exif Thumbnail Length (JPEG Interchange Format Length)",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units'=> "bytes" ),
|
|||
|
|
|||
|
301 => array( 'Name' => "Transfer Function",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units'=> "" ),
|
|||
|
|
|||
|
318 => array( 'Name' => "White Point Chromaticity",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units'=> "(x,y coordinates on a 1931 CIE xy chromaticity diagram)" ),
|
|||
|
|
|||
|
319 => array( 'Name' => "Primary Chromaticities",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units'=> "(Red x,y, Green x,y, Blue x,y coordinates on a 1931 CIE xy chromaticity diagram)" ),
|
|||
|
|
|||
|
529 => array( 'Name' => "YCbCr Coefficients",
|
|||
|
'Description' => "Transform Coefficients for transformation from RGB to YCbCr",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units'=> "(LumaRed, LumaGreen, LumaBlue [proportions of red, green, and blue in luminance])" ),
|
|||
|
|
|||
|
532 => array( 'Name' => "Reference Black point and White point",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units'=> "(R or Y White Headroom, R or Y Black Footroom, G or Cb White Headroom, G or Cb Black Footroom, B or Cr White Headroom, B or Cr Black Footroom)" ),
|
|||
|
|
|||
|
306 => array( 'Name' => "Date and Time",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units'=> " (Format: YYYY:MM:DD HH:mm:SS)" ),
|
|||
|
|
|||
|
270 => array( 'Name' => "Image Description",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
271 => array( 'Name' => "Make (Manufacturer)",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
272 => array( 'Name' => "Model",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
305 => array( 'Name' => "Software or Firmware",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
315 => array( 'Name' => "Artist Name",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
700 => array( 'Name' => "Embedded XMP Block", // Change: Added embedded XMP as of version 1.11
|
|||
|
'Type' => "XMP" ),
|
|||
|
|
|||
|
33432 => array( 'Name' => "Copyright Information",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
34665 => array( 'Name' => "EXIF Image File Directory (IFD)",
|
|||
|
'Type' => "SubIFD",
|
|||
|
'Tags Name' => "EXIF" ),
|
|||
|
|
|||
|
33723 => array( 'Name' => "IPTC Records",
|
|||
|
'Type' => "IPTC" ),
|
|||
|
|
|||
|
34377 => array( 'Name' => "Embedded Photoshop IRB", // Change: Added embedded IRB as of version 1.11
|
|||
|
'Type' => "IRB" ),
|
|||
|
|
|||
|
34853 => array( 'Name' => "GPS Info Image File Directory (IFD)", // Change: Moved GPS IFD tag to correct location as of version 1.11
|
|||
|
'Type' => "SubIFD",
|
|||
|
'Tags Name' => "GPS" ),
|
|||
|
|
|||
|
50341 => array( 'Name' => "Print Image Matching Info",
|
|||
|
'Type' => "PIM" ),
|
|||
|
|
|||
|
),
|
|||
|
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
/* */
|
|||
|
/* EXIF Tags */
|
|||
|
/* */
|
|||
|
/*****************************************************************************/
|
|||
|
|
|||
|
|
|||
|
'EXIF' => array (
|
|||
|
|
|||
|
// Exif IFD
|
|||
|
36864 => array( 'Name' => "Exif Version",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
40965 => array( 'Name' => "Interoperability Image File Directory (IFD)",
|
|||
|
'Type' => "SubIFD",
|
|||
|
'Tags Name' => "Interoperability" ),
|
|||
|
|
|||
|
// Change: removed GPS IFD tag from here as it was incorrect location - as of version 1.11
|
|||
|
|
|||
|
40960 => array( 'Name' => "FlashPix Version",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
40961 => array( 'Name' => "Colour Space",
|
|||
|
'Type' => "Lookup",
|
|||
|
1 => "sRGB",
|
|||
|
0xFFFF => "Uncalibrated" ),
|
|||
|
|
|||
|
40962 => array( 'Name' => "Pixel X Dimension",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units'=> "pixels" ),
|
|||
|
|
|||
|
40963 => array( 'Name' => "Pixel Y Dimension",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "pixels" ),
|
|||
|
|
|||
|
37121 => array( 'Name' => "Components Configuration",
|
|||
|
'Type' => "Special" ),
|
|||
|
|
|||
|
37122 => array( 'Name' => "Compressed Bits Per Pixel",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "bits" ),
|
|||
|
|
|||
|
37500 => array( 'Name' => "Maker Note",
|
|||
|
'Type' => "Maker Note" ),
|
|||
|
|
|||
|
37510 => array( 'Name' => "User Comment",
|
|||
|
'Type' => "Character Coded String" ),
|
|||
|
|
|||
|
40964 => array( 'Name' => "Related Sound File",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
36867 => array( 'Name' => "Date and Time of Original",
|
|||
|
'Type' => "String",
|
|||
|
'Units' => " (Format: YYYY:MM:DD HH:mm:SS)" ),
|
|||
|
|
|||
|
36868 => array( 'Name' => "Date and Time when Digitized",
|
|||
|
'Type' => "String",
|
|||
|
'Units' => " (Format: YYYY:MM:DD HH:mm:SS)" ),
|
|||
|
|
|||
|
37520 => array( 'Name' => "Sub Second Time",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
37521 => array( 'Name' => "Sub Second Time of Original",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
37522 => array( 'Name' => "Sub Second Time when Digitized",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
33434 => array( 'Name' => "Exposure Time",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "seconds" ),
|
|||
|
|
|||
|
37377 => array( 'Name' => "APEX Shutter Speed Value (Tv)",
|
|||
|
'Type' => "Numeric" ),
|
|||
|
|
|||
|
37378 => array( 'Name' => "APEX Aperture Value (Av)",
|
|||
|
'Type' => "Numeric" ),
|
|||
|
|
|||
|
37379 => array( 'Name' => "APEX Brightness Value (Bv)",
|
|||
|
'Type' => "Numeric" ),
|
|||
|
|
|||
|
37380 => array( 'Name' => "APEX Exposure Bias Value (Exposure Compensation)",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "EV" ),
|
|||
|
|
|||
|
42240 => array( 'Name' => "Gamma Compensation for Playback",
|
|||
|
'Type' => "Numeric" ),
|
|||
|
|
|||
|
|
|||
|
37381 => array( 'Name' => "APEX Maximum Aperture Value",
|
|||
|
'Type' => "Numeric" ),
|
|||
|
|
|||
|
37382 => array( 'Name' => "Subject Distance",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "metres" ),
|
|||
|
|
|||
|
37383 => array( 'Name' => "Metering Mode",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "Unknown",
|
|||
|
1 => "Average",
|
|||
|
2 => "Center Weighted Average",
|
|||
|
3 => "Spot",
|
|||
|
4 => "Multi Spot",
|
|||
|
5 => "Pattern",
|
|||
|
6 => "Partial",
|
|||
|
255 => "Other" ),
|
|||
|
|
|||
|
37384 => array( 'Name' => "Light Source",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "Unknown",
|
|||
|
1 => "Daylight",
|
|||
|
2 => "Fluorescent",
|
|||
|
3 => "Tungsten (incandescent light)",
|
|||
|
4 => "Flash",
|
|||
|
9 => "Fine weather",
|
|||
|
10 => "Cloudy weather",
|
|||
|
11 => "Shade",
|
|||
|
12 => "Daylight fluorescent (D 5700 <20> 7100K)",
|
|||
|
13 => "Day white fluorescent (N 4600 <20> 5400K)",
|
|||
|
14 => "Cool white fluorescent (W 3900 <20> 4500K)",
|
|||
|
15 => "White fluorescent (WW 3200 <20> 3700K)",
|
|||
|
17 => "Standard light A",
|
|||
|
18 => "Standard light B",
|
|||
|
19 => "Standard light C",
|
|||
|
20 => "D55",
|
|||
|
21 => "D65",
|
|||
|
22 => "D75",
|
|||
|
23 => "D50",
|
|||
|
24 => "ISO studio tungsten",
|
|||
|
255 => "Other" ),
|
|||
|
|
|||
|
37385 => array( 'Name' => "Flash",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "Flash did not fire",
|
|||
|
1 => "Flash fired",
|
|||
|
5 => "Strobe return light not detected",
|
|||
|
7 => "Strobe return light detected",
|
|||
|
9 => "Flash fired, compulsory flash mode",
|
|||
|
13 => "Flash fired, compulsory flash mode, return light not detected",
|
|||
|
15 => "Flash fired, compulsory flash mode, return light detected",
|
|||
|
16 => "Flash did not fire, compulsory flash suppression mode",
|
|||
|
24 => "Flash did not fire, auto mode",
|
|||
|
25 => "Flash fired, auto mode",
|
|||
|
29 => "Flash fired, auto mode, return light not detected",
|
|||
|
31 => "Flash fired, auto mode, return light detected",
|
|||
|
32 => "No flash function",
|
|||
|
65 => "Flash fired, red-eye reduction mode",
|
|||
|
69 => "Flash fired, red-eye reduction mode, return light not detected",
|
|||
|
71 => "Flash fired, red-eye reduction mode, return light detected",
|
|||
|
73 => "Flash fired, compulsory flash mode, red-eye reduction mode",
|
|||
|
77 => "Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",
|
|||
|
79 => "Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",
|
|||
|
89 => "Flash fired, auto mode, red-eye reduction mode",
|
|||
|
93 => "Flash fired, auto mode, return light not detected, red-eye reduction mode",
|
|||
|
95 => "Flash fired, auto mode, return light detected, red-eye reduction mode" ),
|
|||
|
|
|||
|
37386 => array( 'Name' => "FocalLength",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "mm" ),
|
|||
|
|
|||
|
37396 => array( 'Name' => "Subject Area",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "( Two Values: x,y coordinates, Three Values: x,y coordinates, diameter, Four Values: center x,y coordinates, width, height)" ),
|
|||
|
|
|||
|
33437 => array( 'Name' => "Aperture F Number",
|
|||
|
'Type' => "Numeric" ),
|
|||
|
|
|||
|
34850 => array( 'Name' => "Exposure Program",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "Not defined",
|
|||
|
1 => "Manual",
|
|||
|
2 => "Normal program",
|
|||
|
3 => "Aperture priority",
|
|||
|
4 => "Shutter priority",
|
|||
|
5 => "Creative program (biased toward depth of field)",
|
|||
|
6 => "Action program (biased toward fast shutter speed)",
|
|||
|
7 => "Portrait mode (for closeup photos with the background out of focus)",
|
|||
|
8 => "Landscape mode (for landscape photos with the background in focus)" ),
|
|||
|
|
|||
|
34852 => array( 'Name' => "Spectral Sensitivity",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
34855 => array( 'Name' => "ISO Speed Ratings",
|
|||
|
'Type' => "Numeric" ),
|
|||
|
|
|||
|
34856 => array( 'Name' => "Opto-Electronic Conversion Function",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
41483 => array( 'Name' => "Flash Energy",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "Beam Candle Power Seconds (BCPS)" ),
|
|||
|
|
|||
|
41484 => array( 'Name' => "Spatial Frequency Response",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
41486 => array( 'Name' => "Focal Plane X Resolution",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "pixels per 'Focal Plane Resolution Unit'" ),
|
|||
|
|
|||
|
41487 => array( 'Name' => "Focal Plane Y Resolution",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "pixels per 'Focal Plane Resolution Unit'" ),
|
|||
|
|
|||
|
41488 => array( 'Name' => "Focal Plane Resolution Unit",
|
|||
|
'Type' => "Lookup",
|
|||
|
2 => "Inches",
|
|||
|
3 => "Centimetres" ),
|
|||
|
|
|||
|
41492 => array( 'Name' => "Subject Location",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "(x,y pixel coordinates of subject)" ),
|
|||
|
|
|||
|
41493 => array( 'Name' => "Exposure Index",
|
|||
|
'Type' => "Numeric" ),
|
|||
|
|
|||
|
41495 => array( 'Name' => "Sensing Method",
|
|||
|
'Type' => "Lookup",
|
|||
|
1 => "Not defined",
|
|||
|
2 => "One-chip colour area sensor",
|
|||
|
3 => "Two-chip colour area sensor",
|
|||
|
4 => "Three-chip colour area sensor",
|
|||
|
5 => "Colour sequential area sensor",
|
|||
|
7 => "Trilinear sensor",
|
|||
|
8 => "Colour sequential linear sensor" ),
|
|||
|
|
|||
|
41728 => array( 'Name' => "File Source",
|
|||
|
'Type' => "Lookup",
|
|||
|
3 => "Digital Still Camera" ),
|
|||
|
|
|||
|
41729 => array( 'Name' => "Scene Type",
|
|||
|
'Type' => "Lookup",
|
|||
|
1 => "A directly photographed image" ),
|
|||
|
|
|||
|
41730 => array( 'Name' => "Colour Filter Array Pattern",
|
|||
|
'Type' => "Special" ),
|
|||
|
|
|||
|
41985 => array( 'Name' => "Special Processing (Custom Rendered)",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "Normal process",
|
|||
|
1 => "Custom process" ),
|
|||
|
|
|||
|
41986 => array( 'Name' => "Exposure Mode",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "Auto exposure",
|
|||
|
1 => "Manual exposure",
|
|||
|
2 => "Auto bracket" ),
|
|||
|
|
|||
|
41987 => array( 'Name' => "White Balance",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "Auto white balance",
|
|||
|
1 => "Manual white balance" ),
|
|||
|
|
|||
|
41988 => array( 'Name' => "Digital Zoom Ratio",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => " ( Zero = Digital Zoom Not Used )" ),
|
|||
|
|
|||
|
41989 => array( 'Name' => "Equivalent Focal Length In 35mm Film",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "mm" ),
|
|||
|
|
|||
|
41990 => array( 'Name' => "Scene Capture Type",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "Standard",
|
|||
|
1 => "Landscape",
|
|||
|
2 => "Portrait",
|
|||
|
3 => "Night scene" ),
|
|||
|
|
|||
|
41991 => array( 'Name' => "Gain Control",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "None",
|
|||
|
1 => "Low gain up",
|
|||
|
2 => "High gain up",
|
|||
|
3 => "Low gain down",
|
|||
|
4 => "High gain down" ),
|
|||
|
|
|||
|
41992 => array( 'Name' => "Contrast",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "Normal",
|
|||
|
1 => "Soft",
|
|||
|
2 => "Hard" ),
|
|||
|
|
|||
|
41993 => array( 'Name' => "Saturation",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "Normal",
|
|||
|
1 => "Low saturation",
|
|||
|
2 => "High saturation" ),
|
|||
|
|
|||
|
41994 => array( 'Name' => "Sharpness",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "Normal",
|
|||
|
1 => "Soft",
|
|||
|
2 => "Hard" ),
|
|||
|
|
|||
|
41995 => array( 'Name' => "Device Setting Description",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
41996 => array( 'Name' => "Subject Distance Range",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "Unknown",
|
|||
|
1 => "Macro",
|
|||
|
2 => "Close view",
|
|||
|
3 => "Distant view" ),
|
|||
|
|
|||
|
42016 => array( 'Name' => "Image Unique ID",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// 11 => "ACDComment",
|
|||
|
// 255 => "NewSubfileType"
|
|||
|
|
|||
|
|
|||
|
),
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
/* */
|
|||
|
/* Interoperability Tags */
|
|||
|
/* */
|
|||
|
/*****************************************************************************/
|
|||
|
|
|||
|
"Interoperability" => array(
|
|||
|
|
|||
|
1 => array( 'Name' => "Interoperability Index",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
2 => array( 'Name' => "Interoperability Version",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
4096 => array( 'Name' => "Related Image File Format",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
4097 => array( 'Name' => "Related Image File Width",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "pixels" ),
|
|||
|
|
|||
|
4098 => array( 'Name' => "Related Image File Length",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "pixels " )
|
|||
|
|
|||
|
),
|
|||
|
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
/* */
|
|||
|
/* GPS Tags */
|
|||
|
/* */
|
|||
|
/*****************************************************************************/
|
|||
|
|
|||
|
"GPS" => array(
|
|||
|
|
|||
|
0 => array( 'Name' => "GPS Tag Version",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "(e.g.: 2.2.0.0 = Version 2.2 )" ),
|
|||
|
|
|||
|
1 => array( 'Name' => "North or South Latitude",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
2 => array( 'Name' => "Latitude",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "(Degrees Minutes Seconds North or South)" ),
|
|||
|
|
|||
|
3 => array( 'Name' => "East or West Longitude",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
4 => array( 'Name' => "Longitude",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "(Degrees Minutes Seconds East or West)" ),
|
|||
|
|
|||
|
5 => array( 'Name' => "Altitude Reference",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "Sea Level",
|
|||
|
1 => "Sea level reference (negative value)" ),
|
|||
|
|
|||
|
6 => array( 'Name' => "Altitude",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "Metres with respect to Altitude Reference" ),
|
|||
|
|
|||
|
7 => array( 'Name' => "GPS Time (atomic clock)",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "(Hours Minutes Seconds)" ),
|
|||
|
|
|||
|
8 => array( 'Name' => "GPS Satellites used for Measurement",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
9 => array( 'Name' => "GPS Receiver Status",
|
|||
|
'Type' => "Lookup",
|
|||
|
'A' => "Measurement in progress", // Change: Fixed tag values as of version 1.11
|
|||
|
'V' => "Measurement Interoperability" ),
|
|||
|
|
|||
|
10 => array( 'Name' => "GPS Measurement Mode",
|
|||
|
'Type' => "Lookup",
|
|||
|
2 => "2-dimensional measurement", // Change: Fixed tag values as of version 1.11
|
|||
|
3 => "3-dimensional measurement" ),
|
|||
|
|
|||
|
11 => array( 'Name' => "Measurement Precision",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "(Data Degree of Precision, Horizontal for 2D, Position for 3D)" ),
|
|||
|
|
|||
|
12 => array( 'Name' => "Speed Unit",
|
|||
|
'Type' => "Lookup",
|
|||
|
'K' => "Kilometers per Hour", // Change: Fixed tag values as of version 1.11
|
|||
|
'M' => "Miles per Hour",
|
|||
|
'N' => "Knots" ),
|
|||
|
|
|||
|
13 => array( 'Name' => "Speed of GPS receiver",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "Speed Units" ),
|
|||
|
|
|||
|
14 => array( 'Name' => "Reference for direction of Movement",
|
|||
|
'Type' => "Lookup", // Change: Fixed tag values as of version 1.11
|
|||
|
'T' => "True North",
|
|||
|
'M' => "Magnetic North" ),
|
|||
|
|
|||
|
15 => array( 'Name' => "Direction of Movement",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "Degrees relative to Movement Direction Reference" ),
|
|||
|
|
|||
|
16 => array( 'Name' => "Reference for Direction of Image",
|
|||
|
'Type' => "Lookup",
|
|||
|
'T' => "True North", // Change: Fixed tag values as of version 1.11
|
|||
|
'M' => "Magnetic North" ),
|
|||
|
|
|||
|
17 => array( 'Name' => "Direction of Image",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "Degrees relative to Image Direction Reference" ),
|
|||
|
|
|||
|
18 => array( 'Name' => "Geodetic Survey Datum Used",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
19 => array( 'Name' => "Destination - North or South Latitude",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
20 => array( 'Name' => "Latitude of Destination",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "(Degrees Minutes Seconds North or South)" ),
|
|||
|
|
|||
|
21 => array( 'Name' => "Destination - East or West Longitude",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
22 => array( 'Name' => "Longitude of Destination",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "(Degrees Minutes Seconds East or West)" ),
|
|||
|
|
|||
|
23 => array( 'Name' => "Reference for Bearing of Destination",
|
|||
|
'Type' => "Lookup",
|
|||
|
'T' => "True North", // Change: Fixed tag values as of version 1.11
|
|||
|
'M' => "Magnetic North" ),
|
|||
|
|
|||
|
24 => array( 'Name' => "Bearing of Destination",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "Degrees relative to Destination Bearing Reference" ),
|
|||
|
|
|||
|
25 => array( 'Name' => "Units for Distance to Destination",
|
|||
|
'Type' => "Lookup",
|
|||
|
'K' => "Kilometres", // Change: Fixed tag values as of version 1.11
|
|||
|
'M' => "Miles",
|
|||
|
'N' => "Nautical Miles" ),
|
|||
|
|
|||
|
26 => array( 'Name' => "Distance to Destination",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units' => "Destination Distance Units" ),
|
|||
|
|
|||
|
27 => array( 'Name' => "Name of GPS Processing Method",
|
|||
|
'Type' => "Character Coded String" ),
|
|||
|
|
|||
|
28 => array( 'Name' => "Name of GPS Area",
|
|||
|
'Type' => "Character Coded String" ),
|
|||
|
|
|||
|
29 => array( 'Name' => "GPS Date",
|
|||
|
'Type' => "Numeric",
|
|||
|
'Units'=> " (Format: YYYY:MM:DD HH:mm:SS)" ),
|
|||
|
|
|||
|
30 => array( 'Name' => "GPS Differential Correction",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "Measurement without differential correction",
|
|||
|
1 => "Differential correction applied" ),
|
|||
|
|
|||
|
),
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
/* */
|
|||
|
/* META (App3) Tags */
|
|||
|
/* */
|
|||
|
/*****************************************************************************/
|
|||
|
|
|||
|
"Meta" => array(
|
|||
|
|
|||
|
|
|||
|
50000 => array( 'Name' => "CaptureDevice.FilmProductCode",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50001 => array( 'Name' => "DigitalProcess.ImageSourceEK",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50002 => array( 'Name' => "CaptureConditions.PAR",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50003 => array( 'Name' => "CaptureDevice.CameraOwner.EK",
|
|||
|
'Type' => "Character Coded String" ),
|
|||
|
|
|||
|
50004 => array( 'Name' => "CaptureDevice.SerialNumber.Camera",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50005 => array( 'Name' => "SceneContent.GroupCaption.UserSelectGroupTitle",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50006 => array( 'Name' => "OutputOrder.Information.DealerIDNumber",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50007 => array( 'Name' => "CaptureDevice.FID",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50008 => array( 'Name' => "OutputOrder.Information.EnvelopeNumber",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50009 => array( 'Name' => "OutputOrder.SimpleRenderInst.FrameNumber",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50010 => array( 'Name' => "CaptureDevice.FilmCategory",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50011 => array( 'Name' => "CaptureDevice.FilmGencode",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50012 => array( 'Name' => "CaptureDevice.Scanner.ModelAndVersion",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50013 => array( 'Name' => "CaptureDevice.FilmSize",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50014 => array( 'Name' => "DigitalProcess.History.SBARGBShifts",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50015 => array( 'Name' => "DigitalProcess.History.SBAInputImageColourspace",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50016 => array( 'Name' => "DigitalProcess.History.SBAInputImageBitDepth",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50017 => array( 'Name' => "DigitalProcess.History.SBAExposureRecord",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50018 => array( 'Name' => "DigitalProcess.History.UserAdjSBARGBShifts",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50019 => array( 'Name' => "DigitalProcess.ImageRotationStatus",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50020 => array( 'Name' => "DigitalProcess.RollGuid.Elements",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50021 => array( 'Name' => "ImageContainer.MetadataNumber",
|
|||
|
'Type' => "String" ),
|
|||
|
|
|||
|
50022 => array( 'Name' => "DigitalProcess.History.EditTagArray",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50023 => array( 'Name' => "CaptureConditions.Magnification",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50028 => array( 'Name' => "CaptureDevice.NativePhysicalXResolution",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50029 => array( 'Name' => "CaptureDevice.NativePhysicalYResolution",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50030 => array( 'Name' => "Kodak Special Effects IFD",
|
|||
|
'Type' => "SubIFD",
|
|||
|
'Tags Name' => "KodakSpecialEffects" ),
|
|||
|
|
|||
|
50031 => array( 'Name' => "Kodak Borders IFD",
|
|||
|
'Type' => "SubIFD",
|
|||
|
'Tags Name' => "KodakBorders" ),
|
|||
|
|
|||
|
50042 => array( 'Name' => "CaptureDevice.NativePhysicalResolutionUnit",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50200 => array( 'Name' => "ImageContainer.SourceImageDirectory",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50201 => array( 'Name' => "ImageContainer.SourceImageFileName",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50202 => array( 'Name' => "ImageContainer.SourceImageVolumeName",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50284 => array( 'Name' => "CaptureConditions.PrintQuantity",
|
|||
|
'Type' => "Unknown" ),
|
|||
|
|
|||
|
50286 => array( 'Name' => "DigitalProcess.ImagePrintStatus",
|
|||
|
'Type' => "Unknown" )
|
|||
|
|
|||
|
),
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
/* */
|
|||
|
/* Kodak Special Effects IFD Tags */
|
|||
|
/* */
|
|||
|
/*****************************************************************************/
|
|||
|
|
|||
|
"KodakSpecialEffects" => array(
|
|||
|
|
|||
|
0 => array( 'Name' => "Digital Effects Version",
|
|||
|
'Type' => "Numeric" ),
|
|||
|
|
|||
|
1 => array( 'Name' => "Digital Effects Name",
|
|||
|
'Type' => "Character Coded String" ),
|
|||
|
|
|||
|
2 => array( 'Name' => "Digital Effects Type",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "None Applied" )
|
|||
|
|
|||
|
),
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
/* */
|
|||
|
/* Kodak Borders IFD Tags */
|
|||
|
/* */
|
|||
|
/*****************************************************************************/
|
|||
|
|
|||
|
"KodakBorders" => array(
|
|||
|
|
|||
|
0 => array( 'Name' => "Borders Version",
|
|||
|
'Type' => "Numeric" ),
|
|||
|
|
|||
|
1 => array( 'Name' => "Border Name",
|
|||
|
'Type' => "Character Coded String" ),
|
|||
|
|
|||
|
2 => array( 'Name' => "Border ID",
|
|||
|
'Type' => "Numeric" ),
|
|||
|
|
|||
|
3 => array( 'Name' => "Border Location",
|
|||
|
'Type' => "Lookup" ),
|
|||
|
|
|||
|
4 => array( 'Name' => "Border Type",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "None" ),
|
|||
|
|
|||
|
8 => array( 'Name' => "Watermark Type",
|
|||
|
'Type' => "Lookup",
|
|||
|
0 => "None" )
|
|||
|
|
|||
|
),
|
|||
|
|
|||
|
);
|
|||
|
|
|||
|
/******************************************************************************
|
|||
|
* End of Global Variable: IFD_Tag_Definitions
|
|||
|
******************************************************************************/
|
|||
|
|
|||
|
?>
|