DocumentationOverviewBuilding ASL Documentation Library Wiki Docs Indices Browse Perforce More InfoRelease NotesWiki Site Search License Success Stories Contributors MediaDownloadPerforce Depots SupportASL SourceForge HomeMailing Lists Discussion Forums Report Bugs Suggest Features Contribute to ASL RSSShort-text newsFull-text news File releases Other Adobe ProjectsAdobe AirAdobe GIL Adobe Labs Adobe Media Gallery Adobe XMP Tamarin project (Mozilla Foundation) Other ResourcesBoostRIAForge SGI STL |
dng_exif.hGo to the documentation of this file.00001 /*****************************************************************************/ 00002 // Copyright 2006-2008 Adobe Systems Incorporated 00003 // All Rights Reserved. 00004 // 00005 // NOTICE: Adobe permits you to use, modify, and distribute this file in 00006 // accordance with the terms of the Adobe license agreement accompanying it. 00007 /*****************************************************************************/ 00008 00009 /* $Id: //mondo/workarea/stern/camera_raw/dng_sdk/source/dng_exif.h#12 $ */ 00010 /* $DateTime: 2008/02/08 10:14:57 $ */ 00011 /* $Change: 420100 $ */ 00012 /* $Author: stern $ */ 00013 00018 /*****************************************************************************/ 00019 00020 #ifndef __dng_exif__ 00021 #define __dng_exif__ 00022 00023 /*****************************************************************************/ 00024 00025 #include "dng_classes.h" 00026 #include "dng_date_time.h" 00027 #include "dng_fingerprint.h" 00028 #include "dng_types.h" 00029 #include "dng_matrix.h" 00030 #include "dng_rational.h" 00031 #include "dng_string.h" 00032 #include "dng_stream.h" 00033 #include "dng_sdk_limits.h" 00034 00035 /*****************************************************************************/ 00036 00040 00041 class dng_exif 00042 { 00043 00044 public: 00045 00046 dng_string fImageDescription; 00047 dng_string fMake; 00048 dng_string fModel; 00049 dng_string fSoftware; 00050 dng_string fArtist; 00051 dng_string fCopyright; 00052 dng_string fCopyright2; 00053 dng_string fUserComment; 00054 00055 dng_date_time_info fDateTime; 00056 dng_date_time_storage_info fDateTimeStorageInfo; 00057 00058 dng_date_time_info fDateTimeOriginal; 00059 dng_date_time_storage_info fDateTimeOriginalStorageInfo; 00060 00061 dng_date_time_info fDateTimeDigitized; 00062 dng_date_time_storage_info fDateTimeDigitizedStorageInfo; 00063 00064 uint32 fTIFF_EP_StandardID; 00065 uint32 fExifVersion; 00066 uint32 fFlashPixVersion; 00067 00068 dng_urational fExposureTime; 00069 dng_urational fFNumber; 00070 dng_srational fShutterSpeedValue; 00071 dng_urational fApertureValue; 00072 dng_srational fBrightnessValue; 00073 dng_srational fExposureBiasValue; 00074 dng_urational fMaxApertureValue; 00075 dng_urational fFocalLength; 00076 dng_urational fDigitalZoomRatio; 00077 dng_urational fExposureIndex; 00078 dng_urational fSubjectDistance; 00079 dng_urational fGamma; 00080 00081 dng_urational fBatteryLevelR; 00082 dng_string fBatteryLevelA; 00083 00084 uint32 fExposureProgram; 00085 uint32 fMeteringMode; 00086 uint32 fLightSource; 00087 uint32 fFlash; 00088 uint32 fFlashMask; 00089 uint32 fSensingMethod; 00090 uint32 fColorSpace; 00091 uint32 fFileSource; 00092 uint32 fSceneType; 00093 uint32 fCustomRendered; 00094 uint32 fExposureMode; 00095 uint32 fWhiteBalance; 00096 uint32 fSceneCaptureType; 00097 uint32 fGainControl; 00098 uint32 fContrast; 00099 uint32 fSaturation; 00100 uint32 fSharpness; 00101 uint32 fSubjectDistanceRange; 00102 uint32 fSelfTimerMode; 00103 uint32 fImageNumber; 00104 00105 uint32 fFocalLengthIn35mmFilm; 00106 00107 uint32 fISOSpeedRatings [3]; 00108 00109 uint32 fSubjectAreaCount; 00110 uint32 fSubjectArea [4]; 00111 00112 uint32 fComponentsConfiguration; 00113 00114 dng_urational fCompresssedBitsPerPixel; 00115 00116 uint32 fPixelXDimension; 00117 uint32 fPixelYDimension; 00118 00119 dng_urational fFocalPlaneXResolution; 00120 dng_urational fFocalPlaneYResolution; 00121 00122 uint32 fFocalPlaneResolutionUnit; 00123 00124 uint32 fCFARepeatPatternRows; 00125 uint32 fCFARepeatPatternCols; 00126 00127 uint8 fCFAPattern [kMaxCFAPattern] [kMaxCFAPattern]; 00128 00129 dng_fingerprint fImageUniqueID; 00130 00131 uint32 fGPSVersionID; 00132 dng_string fGPSLatitudeRef; 00133 dng_urational fGPSLatitude [3]; 00134 dng_string fGPSLongitudeRef; 00135 dng_urational fGPSLongitude [3]; 00136 uint32 fGPSAltitudeRef; 00137 dng_urational fGPSAltitude; 00138 dng_urational fGPSTimeStamp [3]; 00139 dng_string fGPSSatellites; 00140 dng_string fGPSStatus; 00141 dng_string fGPSMeasureMode; 00142 dng_urational fGPSDOP; 00143 dng_string fGPSSpeedRef; 00144 dng_urational fGPSSpeed; 00145 dng_string fGPSTrackRef; 00146 dng_urational fGPSTrack; 00147 dng_string fGPSImgDirectionRef; 00148 dng_urational fGPSImgDirection; 00149 dng_string fGPSMapDatum; 00150 dng_string fGPSDestLatitudeRef; 00151 dng_urational fGPSDestLatitude [3]; 00152 dng_string fGPSDestLongitudeRef; 00153 dng_urational fGPSDestLongitude [3]; 00154 dng_string fGPSDestBearingRef; 00155 dng_urational fGPSDestBearing; 00156 dng_string fGPSDestDistanceRef; 00157 dng_urational fGPSDestDistance; 00158 dng_string fGPSProcessingMethod; 00159 dng_string fGPSAreaInformation; 00160 dng_string fGPSDateStamp; 00161 uint32 fGPSDifferential; 00162 00163 dng_string fInteroperabilityIndex; 00164 00165 uint32 fInteroperabilityVersion; 00166 00167 dng_string fRelatedImageFileFormat; 00168 00169 uint32 fRelatedImageWidth; 00170 uint32 fRelatedImageLength; 00171 00172 dng_string fCameraSerialNumber; 00173 00174 dng_urational fLensInfo [4]; 00175 00176 dng_string fLensID; 00177 dng_string fLensName; 00178 dng_string fLensSerialNumber; 00179 00180 dng_srational fFlashCompensation; 00181 00182 dng_string fOwnerName; 00183 dng_string fFirmware; 00184 00185 public: 00186 00187 dng_exif (); 00188 00189 virtual ~dng_exif (); 00190 00191 virtual dng_exif * Clone () const; 00192 00193 static real64 SnapExposureTime (real64 et); 00194 00195 void SetExposureTime (real64 et, 00196 bool snap = true); 00197 00198 void SetShutterSpeedValue (real64 ss); 00199 00200 static dng_urational EncodeFNumber (real64 fs); 00201 00202 void SetFNumber (real64 fs); 00203 00204 void SetApertureValue (real64 av); 00205 00206 void UpdateDateTime (const dng_date_time_info &dt); 00207 00208 virtual bool ParseTag (dng_stream &stream, 00209 dng_shared &shared, 00210 uint32 parentCode, 00211 bool isMainIFD, 00212 uint32 tagCode, 00213 uint32 tagType, 00214 uint32 tagCount, 00215 uint64 tagOffset); 00216 00217 virtual void PostParse (dng_host &host, 00218 dng_shared &shared); 00219 00220 protected: 00221 00222 virtual bool Parse_ifd0 (dng_stream &stream, 00223 dng_shared &shared, 00224 uint32 parentCode, 00225 uint32 tagCode, 00226 uint32 tagType, 00227 uint32 tagCount, 00228 uint64 tagOffset); 00229 00230 virtual bool Parse_ifd0_main (dng_stream &stream, 00231 dng_shared &shared, 00232 uint32 parentCode, 00233 uint32 tagCode, 00234 uint32 tagType, 00235 uint32 tagCount, 00236 uint64 tagOffset); 00237 00238 virtual bool Parse_ifd0_exif (dng_stream &stream, 00239 dng_shared &shared, 00240 uint32 parentCode, 00241 uint32 tagCode, 00242 uint32 tagType, 00243 uint32 tagCount, 00244 uint64 tagOffset); 00245 00246 virtual bool Parse_gps (dng_stream &stream, 00247 dng_shared &shared, 00248 uint32 parentCode, 00249 uint32 tagCode, 00250 uint32 tagType, 00251 uint32 tagCount, 00252 uint64 tagOffset); 00253 00254 virtual bool Parse_interoperability (dng_stream &stream, 00255 dng_shared &shared, 00256 uint32 parentCode, 00257 uint32 tagCode, 00258 uint32 tagType, 00259 uint32 tagCount, 00260 uint64 tagOffset); 00261 00262 }; 00263 00264 /*****************************************************************************/ 00265 00266 #endif 00267 00268 /*****************************************************************************/ |