Source for file PelTag.php
Documentation is available at PelTag.php
/* PEL: PHP Exif Library. A library with support for reading and
* writing all Exif headers in JPEG and TIFF images using PHP.
* Copyright (C) 2004, 2005, 2006, 2007 Martin Geisler.
* This program 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.
* This program 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 this program in the file COPYING; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301 USA
* Namespace for functions operating on Exif tags.
* @author Martin Geisler <mgeisler@users.sourceforge.net>
* @license http://www.gnu.org/licenses/gpl.html GNU General Public
/**#@+ Required class definitions. */
require_once('PelIfd.php');
* Class with static methods for Exif tags.
* This class defines the constants that represents the Exif tags
* known to PEL. They are supposed to be used whenever one needs to
* specify an Exif tag, and they will be denoted by the pseudo-type
* {@link PelTag} throughout the documentation.
* Please note that the constrains on the format and number of
* components given here are advisory only. To follow the Exif
* specification one should obey them, but there is nothing that
* prevents you from creating an {@link IMAGE_LENGTH} entry with two
* or more components, even though the standard says that there should
* be exactly one component.
* All the methods in this class are static and should be called with
* the Exif tag on which they should operate.
* @author Martin Geisler <mgeisler@users.sourceforge.net>
* Interoperability index.
* Format: {@link PelFormat::ASCII}.
const INTEROPERABILITY_INDEX =
0x0001;
* Interoperability version.
* Format: {@link PelFormat::UNDEFINED}.
const INTEROPERABILITY_VERSION =
0x0002;
* Format: {@link PelFormat::SHORT} or {@link PelFormat::LONG}.
const IMAGE_WIDTH =
0x0100;
* Format: {@link PelFormat::SHORT} or {@link PelFormat::LONG}.
const IMAGE_LENGTH =
0x0101;
* Number of bits per component.
* Format: {@link PelFormat::SHORT}.
const BITS_PER_SAMPLE =
0x0102;
* Format: {@link PelFormat::SHORT}.
const COMPRESSION =
0x0103;
* Format: {@link PelFormat::SHORT}.
const PHOTOMETRIC_INTERPRETATION =
0x0106;
const FILL_ORDER =
0x010A;
const DOCUMENT_NAME =
0x010D;
* Format: {@link PelEntryAscii}.
* Components: any number.
const IMAGE_DESCRIPTION =
0x010E;
* Format: {@link PelEntryAscii}.
* Components: any number.
* Format: {@link PelFormat::ASCII}.
* Components: any number.
* Format: {@link PelFormat::SHORT} or {@link PelFormat::LONG}.
* Components: any number.
const STRIP_OFFSETS =
0x0111;
* Format: {@link PelFormat::SHORT}.
const ORIENTATION =
0x0112;
* Format: {@link PelFormat::SHORT}.
const SAMPLES_PER_PIXEL =
0x0115;
* Format: {@link PelFormat::SHORT} or {@link PelFormat::LONG}.
const ROWS_PER_STRIP =
0x0116;
* Format: {@link PelFormat::SHORT} or {@link PelFormat::LONG}.
* Components: any number.
const STRIP_BYTE_COUNTS =
0x0117;
* Image resolution in width direction.
* Format: {@link PelFormat::RATIONAL}.
const X_RESOLUTION =
0x011A;
* Image resolution in height direction.
* Format: {@link PelFormat::RATIONAL}.
const Y_RESOLUTION =
0x011B;
* Image data arrangement.
* Format: {@link PelFormat::SHORT}.
const PLANAR_CONFIGURATION =
0x011C;
* Unit of X and Y resolution.
* Format: {@link PelFormat::SHORT}.
const RESOLUTION_UNIT =
0x0128;
* Format: {@link PelFormat::SHORT}.
const TRANSFER_FUNCTION =
0x012D;
* Format: {@link PelFormat::ASCII}.
* Components: any number.
* File change date and time.
* Format: {@link PelFormat::ASCII}, modelled by the {@link }
const DATE_TIME =
0x0132;
* Person who created the image.
* Format: {@link PelFormat::ASCII}.
* Components: any number.
* White point chromaticity.
* Format: {@link PelFormat::RATIONAL}.
const WHITE_POINT =
0x013E;
* Chromaticities of primaries.
* Format: {@link PelFormat::RATIONAL}.
const PRIMARY_CHROMATICITIES =
0x013F;
const TRANSFER_RANGE =
0x0156;
const JPEG_PROC =
0x0200;
* Format: {@link PelFormat::LONG}.
const JPEG_INTERCHANGE_FORMAT =
0x0201;
* Format: {@link PelFormat::LONG}.
const JPEG_INTERCHANGE_FORMAT_LENGTH =
0x0202;
* Color space transformation matrix coefficients.
* Format: {@link PelFormat::RATIONAL}.
const YCBCR_COEFFICIENTS =
0x0211;
* Subsampling ratio of Y to C.
* Format: {@link PelFormat::SHORT}.
const YCBCR_SUB_SAMPLING =
0x0212;
* Format: {@link PelFormat::SHORT}.
const YCBCR_POSITIONING =
0x0213;
* Pair of black and white reference values.
* Format: {@link PelFormat::RATIONAL}.
const REFERENCE_BLACK_WHITE =
0x0214;
* Related Image File Format
const RELATED_IMAGE_FILE_FORMAT =
0x1000;
* Format: Unknown, probably {@link PelFormat::SHORT}?
* Components: Unknown, probably 1.
const RELATED_IMAGE_WIDTH =
0x1001;
* Format: Unknown, probably {@link PelFormat::SHORT}?
* Components: Unknown, probably 1.
const RELATED_IMAGE_LENGTH =
0x1002;
* CFA Repeat Pattern Dim.
* Format: {@link PelFormat::SHORT}.
const CFA_REPEAT_PATTERN_DIM =
0x828D;
const BATTERY_LEVEL =
0x828F;
* Format: {@link PelFormat::ASCII}, modelled by the {@link }
* PelEntryCopyright} class.
* Components: any number.
const COPYRIGHT =
0x8298;
* Format: {@link PelFormat::RATIONAL}.
const EXPOSURE_TIME =
0x829A;
* Format: {@link PelFormat::RATIONAL}.
* Format: {@link PelFormat::LONG}.
* Components: any number.
* Format: {@link PelFormat::LONG}.
const EXIF_IFD_POINTER =
0x8769;
* Format: {@link PelFormat::UNDEFINED}.
* Components: any number.
const INTER_COLOR_PROFILE =
0x8773;
* Format: {@link PelFormat::SHORT}.
const EXPOSURE_PROGRAM =
0x8822;
* Format: {@link PelFormat::ASCII}.
* Components: any number.
const SPECTRAL_SENSITIVITY =
0x8824;
* Format: {@link PelFormat::LONG}.
const GPS_INFO_IFD_POINTER =
0x8825;
* Format: {@link PelFormat::SHORT}.
const ISO_SPEED_RATINGS =
0x8827;
* Format: {@link PelFormat::UNDEFINED}.
* Components: any number.
* Format: {@link PelFormat::UNDEFINED}, modelled by the {@link }
* PelEntryVersion} class.
const EXIF_VERSION =
0x9000;
* Date and time of original data generation.
* Format: {@link PelFormat::ASCII}, modelled by the {@link }
const DATE_TIME_ORIGINAL =
0x9003;
* Date and time of digital data generation.
* Format: {@link PelFormat::ASCII}, modelled by the {@link }
const DATE_TIME_DIGITIZED =
0x9004;
* Meaning of each component.
* Format: {@link PelFormat::UNDEFINED}.
const COMPONENTS_CONFIGURATION =
0x9101;
* Image compression mode.
* Format: {@link PelFormat::RATIONAL}.
const COMPRESSED_BITS_PER_PIXEL =
0x9102;
* Format: {@link PelFormat::SRATIONAL}.
const SHUTTER_SPEED_VALUE =
0x9201;
* Format: {@link PelFormat::RATIONAL}.
const APERTURE_VALUE =
0x9202;
* Format: {@link PelFormat::SRATIONAL}.
const BRIGHTNESS_VALUE =
0x9203;
* Format: {@link PelFormat::SRATIONAL}.
const EXPOSURE_BIAS_VALUE =
0x9204;
* Format: {@link PelFormat::RATIONAL}.
const MAX_APERTURE_VALUE =
0x9205;
* Format: {@link PelFormat::SRATIONAL}.
const SUBJECT_DISTANCE =
0x9206;
* Format: {@link PelFormat::SHORT}.
const METERING_MODE =
0x9207;
* Format: {@link PelFormat::SHORT}.
const LIGHT_SOURCE =
0x9208;
* Format: {@link PelFormat::SHORT}.
* Format: {@link PelFormat::RATIONAL}.
const FOCAL_LENGTH =
0x920A;
* Format: {@link PelFormat::SHORT}.
const SUBJECT_AREA =
0x9214;
* Format: {@link PelFormat::UNDEFINED}.
* Components: any number.
const MAKER_NOTE =
0x927C;
* Format: {@link PelFormat::UNDEFINED}, modelled by the {@link }
* PelEntryUserComment} class.
* Components: any number.
const USER_COMMENT =
0x9286;
* Format: {@link PelFormat::ASCII}.
* Components: any number.
const SUB_SEC_TIME =
0x9290;
* Format: {@link PelFormat::ASCII}.
* Components: any number.
const SUB_SEC_TIME_ORIGINAL =
0x9291;
* Format: {@link PelFormat::ASCII}.
* Components: any number.
const SUB_SEC_TIME_DIGITIZED =
0x9292;
* Format: {@link PelFormat::BYTE}, modelled by the
* {@link PelEntryWindowsString} class.
* Components: any number.
* Format: {@link PelFormat::BYTE}, modelled by the
* {@link PelEntryWindowsString} class.
* Components: any number.
const XP_COMMENT =
0x9C9C;
* Format: {@link PelFormat::BYTE}, modelled by the
* {@link PelEntryWindowsString} class.
* Components: any number.
const XP_AUTHOR =
0x9C9D;
* Format: {@link PelFormat::BYTE}, modelled by the
* {@link PelEntryWindowsString} class.
* Components: any number.
const XP_KEYWORDS =
0x9C9E;
* Format: {@link PelFormat::BYTE}, modelled by the
* {@link PelEntryWindowsString} class.
* Components: any number.
const XP_SUBJECT =
0x9C9F;
* Supported Flashpix version
* Format: {@link PelFormat::UNDEFINED}, modelled by the {@link }
* PelEntryVersion} class.
const FLASH_PIX_VERSION =
0xA000;
* Color space information.
* Format: {@link PelFormat::SHORT}.
const COLOR_SPACE =
0xA001;
* Format: {@link PelFormat::SHORT} or {@link PelFormat::LONG}.
const PIXEL_X_DIMENSION =
0xA002;
* Format: {@link PelFormat::SHORT} or {@link PelFormat::LONG}.
const PIXEL_Y_DIMENSION =
0xA003;
* Format: {@link PelFormat::ASCII}.
* Components: any number.
const RELATED_SOUND_FILE =
0xA004;
* Interoperability IFD Pointer
* Format: {@link PelFormat::LONG}.
const INTEROPERABILITY_IFD_POINTER =
0xA005;
* Format: {@link PelFormat::RATIONAL}.
const FLASH_ENERGY =
0xA20B;
* Spatial frequency response.
* Format: {@link PelFormat::UNDEFINED}.
* Components: any number.
const SPATIAL_FREQUENCY_RESPONSE =
0xA20C;
* Focal plane X resolution.
* Format: {@link PelFormat::RATIONAL}.
const FOCAL_PLANE_X_RESOLUTION =
0xA20E;
* Focal plane Y resolution.
* Format: {@link PelFormat::RATIONAL}.
const FOCAL_PLANE_Y_RESOLUTION =
0xA20F;
* Focal plane resolution unit.
* Format: {@link PelFormat::SHORT}.
const FOCAL_PLANE_RESOLUTION_UNIT =
0xA210;
* Format: {@link PelFormat::SHORT}.
const SUBJECT_LOCATION =
0xA214;
* Format: {@link PelFormat::RATIONAL}.
const EXPOSURE_INDEX =
0xA215;
* Format: {@link PelFormat::SHORT}.
const SENSING_METHOD =
0xA217;
* Format: {@link PelFormat::UNDEFINED}.
const FILE_SOURCE =
0xA300;
* Format: {@link PelFormat::UNDEFINED}.
const SCENE_TYPE =
0xA301;
* Format: {@link PelFormat::UNDEFINED}.
* Components: any number.
const CFA_PATTERN =
0xA302;
* Custom image processing.
* Format: {@link PelFormat::SHORT}.
const CUSTOM_RENDERED =
0xA401;
* Format: {@link PelFormat::SHORT}.
const EXPOSURE_MODE =
0xA402;
* Format: {@link PelFormat::SHORT}.
const WHITE_BALANCE =
0xA403;
* Format: {@link PelFormat::RATIONAL}.
const DIGITAL_ZOOM_RATIO =
0xA404;
* Focal length in 35mm film.
* Format: {@link PelFormat::RATIONAL}.
const FOCAL_LENGTH_IN_35MM_FILM =
0xA405;
* Format: {@link PelFormat::SHORT}.
const SCENE_CAPTURE_TYPE =
0xA406;
* Format: {@link PelFormat::SHORT}.
const GAIN_CONTROL =
0xA407;
* Format: {@link PelFormat::SHORT}.
* Format: {@link PelFormat::SHORT}.
const SATURATION =
0xA409;
* Format: {@link PelFormat::SHORT}.
const SHARPNESS =
0xA40A;
* Device settings description.
* This tag indicates information on the picture-taking conditions
* of a particular camera model. The tag is used only to indicate
* the picture-taking conditions in the reader.
const DEVICE_SETTING_DESCRIPTION =
0xA40B;
* Subject distance range.
* Format: {@link PelFormat::SHORT}.
const SUBJECT_DISTANCE_RANGE =
0xA40C;
* Format: {@link PelFormat::ASCII}.
const IMAGE_UNIQUE_ID =
0xA420;
* Format: {@link PelFormat::RATIONAL}.
* Format: {@link PelFormat::UNDEFINED}.
* Format: {@link PelFormat::BYTE}.
const GPS_VERSION_ID =
0x0000;
* North or South Latitude.
* Format: {@link PelFormat::ASCII}.
const GPS_LATITUDE_REF =
0x0001;
* Format: {@link PelFormat::RATIONAL}.
const GPS_LATITUDE =
0x0002;
* East or West Longitude.
* Format: {@link PelFormat::ASCII}.
const GPS_LONGITUDE_REF =
0x0003;
* Format: {@link PelFormat::RATIONAL}.
const GPS_LONGITUDE =
0x0004;
* Format: {@link PelFormat::BYTE}.
const GPS_ALTITUDE_REF =
0x0005;
* Format: {@link PelFormat::RATIONAL}.
const GPS_ALTITUDE =
0x0006;
* GPS time (atomic clock).
* Format: {@link PelFormat::RATIONAL}.
const GPS_TIME_STAMP =
0x0007;
* GPS satellites used for measurement.
* Format: {@link PelFormat::ASCII}.
const GPS_SATELLITES =
0x0008;
* Format: {@link PelFormat::ASCII}.
const GPS_STATUS =
0x0009;
* Format: {@link PelFormat::ASCII}.
const GPS_MEASURE_MODE =
0x000A;
* Format: {@link PelFormat::RATIONAL}.
* Format: {@link PelFormat::ASCII}.
const GPS_SPEED_REF =
0x000C;
* Format: {@link PelFormat::RATIONAL}.
const GPS_SPEED =
0x000D;
* Reference for direction of movement.
* Format: {@link PelFormat::ASCII}.
const GPS_TRACK_REF =
0x000E;
* Format: {@link PelFormat::RATIONAL}.
const GPS_TRACK =
0x000F;
* Reference for direction of image.
* Format: {@link PelFormat::ASCII}.
const GPS_IMG_DIRECTION_REF =
0x0010;
* Format: {@link PelFormat::RATIONAL}.
const GPS_IMG_DIRECTION =
0x0011;
* Geodetic survey data used.
* Format: {@link PelFormat::ASCII}.
const GPS_MAP_DATUM =
0x0012;
* Reference for latitude of destination.
* Format: {@link PelFormat::ASCII}.
const GPS_DEST_LATITUDE_REF =
0x0013;
* Latitude of destination.
* Format: {@link PelFormat::RATIONAL}.
const GPS_DEST_LATITUDE =
0x0014;
* Reference for longitude of destination.
* Format: {@link PelFormat::ASCII}.
const GPS_DEST_LONGITUDE_REF =
0x0015;
* Longitude of destination.
* Format: {@link PelFormat::RATIONAL}.
const GPS_DEST_LONGITUDE =
0x0016;
* Reference for bearing of destination.
* Format: {@link PelFormat::ASCII}.
const GPS_DEST_BEARING_REF =
0x0017;
* Bearing of destination.
* Format: {@link PelFormat::RATIONAL}.
const GPS_DEST_BEARING =
0x0018;
* Reference for distance to destination.
* Format: {@link PelFormat::ASCII}.
const GPS_DEST_DISTANCE_REF =
0x0019;
* Distance to destination.
* Format: {@link PelFormat::RATIONAL}.
const GPS_DEST_DISTANCE =
0x001A;
* Name of GPS processing method.
* Format: {@link PelFormat::UNDEFINED}.
const GPS_PROCESSING_METHOD =
0x001B;
* Format: {@link PelFormat::UNDEFINED}.
const GPS_AREA_INFORMATION =
0x001C;
* Format: {@link PelFormat::ASCII}.
const GPS_DATE_STAMP =
0x001D;
* GPS differential correction.
* Format: {@link PelFormat::SHORT}.
const GPS_DIFFERENTIAL =
0x001E;
* Returns a short name for an Exif tag.
* @param int the IFD type of the tag, one of {@link PelIfd::IFD0},
* {@link PelIfd::IFD1}, {@link PelIfd::EXIF}, {@link PelIfd::GPS},
* or {@link PelIfd::INTEROPERABILITY}.
* @return string the short name of the tag, e.g., 'ImageWidth' for
* the {@link IMAGE_WIDTH} tag. If the tag is not known, the string
* 'Unknown:0xTTTT' will be returned where 'TTTT' is the hexadecimal
* representation of the tag.
static function getName($type, $tag) {
case PelIfd::INTEROPERABILITY:
case self::INTEROPERABILITY_INDEX:
return 'InteroperabilityIndex';
case self::INTEROPERABILITY_VERSION:
return 'InteroperabilityVersion';
case self::BITS_PER_SAMPLE:
case self::PHOTOMETRIC_INTERPRETATION:
return 'PhotometricInterpretation';
case self::DOCUMENT_NAME:
case self::IMAGE_DESCRIPTION:
return 'ImageDescription';
case self::STRIP_OFFSETS:
case self::SAMPLES_PER_PIXEL:
return 'SamplesPerPixel';
case self::ROWS_PER_STRIP:
case self::STRIP_BYTE_COUNTS:
return 'StripByteCounts';
case self::PLANAR_CONFIGURATION:
return 'PlanarConfiguration';
case self::RESOLUTION_UNIT:
case self::TRANSFER_FUNCTION:
return 'TransferFunction';
case self::PRIMARY_CHROMATICITIES:
return 'PrimaryChromaticities';
case self::TRANSFER_RANGE:
case self::JPEG_INTERCHANGE_FORMAT:
return 'JPEGInterchangeFormat';
case self::JPEG_INTERCHANGE_FORMAT_LENGTH:
return 'JPEGInterchangeFormatLength';
case self::YCBCR_COEFFICIENTS:
return 'YCbCrCoefficients';
case self::YCBCR_SUB_SAMPLING:
return 'YCbCrSubSampling';
case self::YCBCR_POSITIONING:
return 'YCbCrPositioning';
case self::REFERENCE_BLACK_WHITE:
return 'ReferenceBlackWhite';
case self::RELATED_IMAGE_FILE_FORMAT:
return 'RelatedImageFileFormat';
case self::RELATED_IMAGE_WIDTH:
return 'RelatedImageWidth';
case self::RELATED_IMAGE_LENGTH:
return 'RelatedImageLength';
case self::CFA_REPEAT_PATTERN_DIM:
return 'CFARepeatPatternDim';
case self::BATTERY_LEVEL:
case self::EXPOSURE_TIME:
case self::EXIF_IFD_POINTER:
case self::INTER_COLOR_PROFILE:
return 'InterColorProfile';
case self::EXPOSURE_PROGRAM:
return 'ExposureProgram';
case self::SPECTRAL_SENSITIVITY:
return 'SpectralSensitivity';
case self::GPS_INFO_IFD_POINTER:
return 'GPSInfoIFDPointer';
case self::ISO_SPEED_RATINGS:
return 'ISOSpeedRatings';
case self::DATE_TIME_ORIGINAL:
return 'DateTimeOriginal';
case self::DATE_TIME_DIGITIZED:
return 'DateTimeDigitized';
case self::COMPONENTS_CONFIGURATION:
return 'ComponentsConfiguration';
case self::COMPRESSED_BITS_PER_PIXEL:
return 'CompressedBitsPerPixel';
case self::SHUTTER_SPEED_VALUE:
return 'ShutterSpeedValue';
case self::APERTURE_VALUE:
case self::BRIGHTNESS_VALUE:
return 'BrightnessValue';
case self::EXPOSURE_BIAS_VALUE:
return 'ExposureBiasValue';
case self::MAX_APERTURE_VALUE:
return 'MaxApertureValue';
case self::SUBJECT_DISTANCE:
return 'SubjectDistance';
case self::METERING_MODE:
case self::SUB_SEC_TIME_ORIGINAL:
return 'SubSecTimeOriginal';
case self::SUB_SEC_TIME_DIGITIZED:
return 'SubSecTimeDigitized';
return 'WindowsXPComment';
return 'WindowsXPAuthor';
return 'WindowsXPKeywords';
return 'WindowsXPSubject';
case self::FLASH_PIX_VERSION:
return 'FlashPixVersion';
case self::PIXEL_X_DIMENSION:
return 'PixelXDimension';
case self::PIXEL_Y_DIMENSION:
return 'PixelYDimension';
case self::RELATED_SOUND_FILE:
return 'RelatedSoundFile';
case self::INTEROPERABILITY_IFD_POINTER:
return 'InteroperabilityIFDPointer';
case self::SPATIAL_FREQUENCY_RESPONSE:
return 'SpatialFrequencyResponse';
case self::FOCAL_PLANE_X_RESOLUTION:
return 'FocalPlaneXResolution';
case self::FOCAL_PLANE_Y_RESOLUTION:
return 'FocalPlaneYResolution';
case self::FOCAL_PLANE_RESOLUTION_UNIT:
return 'FocalPlaneResolutionUnit';
case self::SUBJECT_LOCATION:
return 'SubjectLocation';
case self::EXPOSURE_INDEX:
case self::SENSING_METHOD:
case self::CUSTOM_RENDERED:
case self::EXPOSURE_MODE:
case self::WHITE_BALANCE:
case self::DIGITAL_ZOOM_RATIO:
return 'DigitalZoomRatio';
case self::FOCAL_LENGTH_IN_35MM_FILM:
return 'FocalLengthIn35mmFilm';
case self::SCENE_CAPTURE_TYPE:
return 'SceneCaptureType';
case self::DEVICE_SETTING_DESCRIPTION:
return 'DeviceSettingDescription';
case self::SUBJECT_DISTANCE_RANGE:
return 'SubjectDistanceRange';
case self::IMAGE_UNIQUE_ID:
case self::GPS_VERSION_ID:
case self::GPS_LATITUDE_REF:
case self::GPS_LONGITUDE_REF:
return 'GPSLongitudeRef';
case self::GPS_LONGITUDE:
case self::GPS_ALTITUDE_REF:
case self::GPS_TIME_STAMP:
case self::GPS_SATELLITES:
case self::GPS_MEASURE_MODE:
case self::GPS_SPEED_REF:
case self::GPS_TRACK_REF:
case self::GPS_IMG_DIRECTION_REF:
return 'GPSImgDirectionRef';
case self::GPS_IMG_DIRECTION:
return 'GPSImgDirection';
case self::GPS_MAP_DATUM:
case self::GPS_DEST_LATITUDE_REF:
return 'GPSDestLatitudeRef';
case self::GPS_DEST_LATITUDE:
return 'GPSDestLatitude';
case self::GPS_DEST_LONGITUDE_REF:
return 'GPSDestLongitudeRef';
case self::GPS_DEST_LONGITUDE:
return 'GPSDestLongitude';
case self::GPS_DEST_BEARING_REF:
return 'GPSDestBearingRef';
case self::GPS_DEST_BEARING:
case self::GPS_DEST_DISTANCE_REF:
return 'GPSDestDistanceRef';
case self::GPS_DEST_DISTANCE:
return 'GPSDestDistance';
case self::GPS_PROCESSING_METHOD:
return 'GPSProcessingMethod';
case self::GPS_AREA_INFORMATION:
return 'GPSAreaInformation';
case self::GPS_DATE_STAMP:
case self::GPS_DIFFERENTIAL:
return 'GPSDifferential';
return Pel::fmt('Unknown: 0x%04X', $tag);
* Returns a title for an Exif tag.
* @param int the IFD type of the tag, one of {@link PelIfd::IFD0},
* {@link PelIfd::IFD1}, {@link PelIfd::EXIF}, {@link PelIfd::GPS},
* or {@link PelIfd::INTEROPERABILITY}.
* @return string the title of the tag, e.g., 'Image Width' for the
* {@link IMAGE_WIDTH} tag. If the tag isn't known, the string
* 'Unknown Tag: 0xTT' will be returned where 'TT' is the
* hexadecimal representation of the tag.
case PelIfd::INTEROPERABILITY:
case self::INTEROPERABILITY_INDEX:
return Pel::tra('Interoperability Index');
case self::INTEROPERABILITY_VERSION:
return Pel::tra('Interoperability Version');
return Pel::tra('Image Width');
return Pel::tra('Image Length');
case self::BITS_PER_SAMPLE:
return Pel::tra('Bits per Sample');
return Pel::tra('Compression');
case self::PHOTOMETRIC_INTERPRETATION:
return Pel::tra('Photometric Interpretation');
return Pel::tra('Fill Order');
case self::DOCUMENT_NAME:
return Pel::tra('Document Name');
case self::IMAGE_DESCRIPTION:
return Pel::tra('Image Description');
return Pel::tra('Manufacturer');
case self::STRIP_OFFSETS:
return Pel::tra('Strip Offsets');
return Pel::tra('Orientation');
case self::SAMPLES_PER_PIXEL:
return Pel::tra('Samples per Pixel');
case self::ROWS_PER_STRIP:
return Pel::tra('Rows per Strip');
case self::STRIP_BYTE_COUNTS:
return Pel::tra('Strip Byte Count');
return Pel::tra('x-Resolution');
return Pel::tra('y-Resolution');
case self::PLANAR_CONFIGURATION:
return Pel::tra('Planar Configuration');
case self::RESOLUTION_UNIT:
return Pel::tra('Resolution Unit');
case self::TRANSFER_FUNCTION:
return Pel::tra('Transfer Function');
return Pel::tra('Date and Time');
return Pel::tra('White Point');
case self::PRIMARY_CHROMATICITIES:
return Pel::tra('Primary Chromaticities');
case self::TRANSFER_RANGE:
return Pel::tra('Transfer Range');
return Pel::tra('JPEG Process');
case self::JPEG_INTERCHANGE_FORMAT:
return Pel::tra('JPEG Interchange Format');
case self::JPEG_INTERCHANGE_FORMAT_LENGTH:
return Pel::tra('JPEG Interchange Format Length');
case self::YCBCR_COEFFICIENTS:
return Pel::tra('YCbCr Coefficients');
case self::YCBCR_SUB_SAMPLING:
return Pel::tra('YCbCr Sub-Sampling');
case self::YCBCR_POSITIONING:
return Pel::tra('YCbCr Positioning');
case self::REFERENCE_BLACK_WHITE:
return Pel::tra('Reference Black/White');
case self::RELATED_IMAGE_FILE_FORMAT:
return Pel::tra('Related Image File Format');
case self::RELATED_IMAGE_WIDTH:
return Pel::tra('Related Image Width');
case self::RELATED_IMAGE_LENGTH:
return Pel::tra('Related Image Length');
case self::CFA_REPEAT_PATTERN_DIM:
return Pel::tra('CFA Repeat Pattern Dim');
return Pel::tra('CFA Pattern');
case self::BATTERY_LEVEL:
return Pel::tra('Battery Level');
case self::EXPOSURE_TIME:
return Pel::tra('Exposure Time');
case self::EXIF_IFD_POINTER:
return Pel::tra('Exif IFD Pointer');
case self::INTER_COLOR_PROFILE:
return Pel::tra('Inter Color Profile');
case self::EXPOSURE_PROGRAM:
return Pel::tra('Exposure Program');
case self::SPECTRAL_SENSITIVITY:
return Pel::tra('Spectral Sensitivity');
case self::GPS_INFO_IFD_POINTER:
return Pel::tra('GPS Info IFD Pointer');
case self::ISO_SPEED_RATINGS:
return Pel::tra('ISO Speed Ratings');
return Pel::tra('Exif Version');
case self::DATE_TIME_ORIGINAL:
return Pel::tra('Date and Time (original)');
case self::DATE_TIME_DIGITIZED:
return Pel::tra('Date and Time (digitized)');
case self::COMPONENTS_CONFIGURATION:
return Pel::tra('Components Configuration');
case self::COMPRESSED_BITS_PER_PIXEL:
return Pel::tra('Compressed Bits per Pixel');
case self::SHUTTER_SPEED_VALUE:
return Pel::tra('Shutter speed');
case self::APERTURE_VALUE:
case self::BRIGHTNESS_VALUE:
return Pel::tra('Brightness');
case self::EXPOSURE_BIAS_VALUE:
return Pel::tra('Exposure Bias');
case self::MAX_APERTURE_VALUE:
return Pel::tra('Max Aperture Value');
case self::SUBJECT_DISTANCE:
return Pel::tra('Subject Distance');
case self::METERING_MODE:
return Pel::tra('Metering Mode');
return Pel::tra('Light Source');
return Pel::tra('Focal Length');
return Pel::tra('Maker Note');
return Pel::tra('User Comment');
return Pel::tra('SubSec Time');
case self::SUB_SEC_TIME_ORIGINAL:
return Pel::tra('SubSec Time Original');
case self::SUB_SEC_TIME_DIGITIZED:
return Pel::tra('SubSec Time Digitized');
return 'Windows XP Title';
return 'Windows XP Comment';
return 'Windows XP Author';
return 'Windows XP Keywords';
return 'Windows XP Subject';
case self::FLASH_PIX_VERSION:
return Pel::tra('FlashPix Version');
return Pel::tra('Color Space');
case self::PIXEL_X_DIMENSION:
return Pel::tra('Pixel x-Dimension');
case self::PIXEL_Y_DIMENSION:
return Pel::tra('Pixel y-Dimension');
case self::RELATED_SOUND_FILE:
return Pel::tra('Related Sound File');
case self::INTEROPERABILITY_IFD_POINTER:
return Pel::tra('Interoperability IFD Pointer');
return Pel::tra('Flash Energy');
case self::SPATIAL_FREQUENCY_RESPONSE:
return Pel::tra('Spatial Frequency Response');
case self::FOCAL_PLANE_X_RESOLUTION:
return Pel::tra('Focal Plane x-Resolution');
case self::FOCAL_PLANE_Y_RESOLUTION:
return Pel::tra('Focal Plane y-Resolution');
case self::FOCAL_PLANE_RESOLUTION_UNIT:
return Pel::tra('Focal Plane Resolution Unit');
case self::SUBJECT_LOCATION:
return Pel::tra('Subject Location');
case self::EXPOSURE_INDEX:
return Pel::tra('Exposure index');
case self::SENSING_METHOD:
return Pel::tra('Sensing Method');
return Pel::tra('File Source');
return Pel::tra('Scene Type');
return Pel::tra('Subject Area');
case self::CUSTOM_RENDERED:
return Pel::tra('Custom Rendered');
case self::EXPOSURE_MODE:
return Pel::tra('Exposure Mode');
case self::WHITE_BALANCE:
return Pel::tra('White Balance');
case self::DIGITAL_ZOOM_RATIO:
return Pel::tra('Digital Zoom Ratio');
case self::FOCAL_LENGTH_IN_35MM_FILM:
return Pel::tra('Focal Length In 35mm Film');
case self::SCENE_CAPTURE_TYPE:
return Pel::tra('Scene Capture Type');
return Pel::tra('Gain Control');
return Pel::tra('Saturation');
case self::DEVICE_SETTING_DESCRIPTION:
return Pel::tra('Device Setting Description');
case self::SUBJECT_DISTANCE_RANGE:
return Pel::tra('Subject Distance Range');
case self::IMAGE_UNIQUE_ID:
return Pel::tra('Image Unique ID');
case self::GPS_VERSION_ID:
case self::GPS_LATITUDE_REF:
case self::GPS_LONGITUDE_REF:
return 'GPSLongitudeRef';
case self::GPS_LONGITUDE:
case self::GPS_ALTITUDE_REF:
case self::GPS_TIME_STAMP:
case self::GPS_SATELLITES:
case self::GPS_MEASURE_MODE:
case self::GPS_SPEED_REF:
case self::GPS_TRACK_REF:
case self::GPS_IMG_DIRECTION_REF:
return 'GPSImgDirectionRef';
case self::GPS_IMG_DIRECTION:
return 'GPSImgDirection';
case self::GPS_MAP_DATUM:
case self::GPS_DEST_LATITUDE_REF:
return 'GPSDestLatitudeRef';
case self::GPS_DEST_LATITUDE:
return 'GPSDestLatitude';
case self::GPS_DEST_LONGITUDE_REF:
return 'GPSDestLongitudeRef';
case self::GPS_DEST_LONGITUDE:
return 'GPSDestLongitude';
case self::GPS_DEST_BEARING_REF:
return 'GPSDestBearingRef';
case self::GPS_DEST_BEARING:
case self::GPS_DEST_DISTANCE_REF:
return 'GPSDestDistanceRef';
case self::GPS_DEST_DISTANCE:
return 'GPSDestDistance';
case self::GPS_PROCESSING_METHOD:
return 'GPSProcessingMethod';
case self::GPS_AREA_INFORMATION:
return 'GPSAreaInformation';
case self::GPS_DATE_STAMP:
case self::GPS_DIFFERENTIAL:
return 'GPSDifferential';
return Pel::fmt('Unknown Tag: 0x%04X', $tag);
Documentation generated on Thu, 05 May 2011 07:19:29 +0200 by phpDocumentor 1.4.3