1 /*****************************************************************************/ 2 // Copyright 2006-2007 Adobe Systems Incorporated 3 // All Rights Reserved. 4 // 5 // NOTICE: Adobe permits you to use, modify, and distribute this file in 6 // accordance with the terms of the Adobe license agreement accompanying it. 7 /*****************************************************************************/ 8 9 /* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_tag_values.h#1 $ */ 10 /* $DateTime: 2012/05/30 13:28:51 $ */ 11 /* $Change: 832332 $ */ 12 /* $Author: tknoll $ */ 13 14 /*****************************************************************************/ 15 16 #ifndef __dng_tag_values__ 17 #define __dng_tag_values__ 18 19 /*****************************************************************************/ 20 21 #include "dng_flags.h" 22 23 /*****************************************************************************/ 24 25 // Values for NewSubFileType tag. 26 27 enum 28 { 29 30 // The main image data. 31 32 sfMainImage = 0, 33 34 // Preview image for the primary settings. 35 36 sfPreviewImage = 1, 37 38 // Transparency mask 39 40 sfTransparencyMask = 4, 41 42 // Preview Transparency mask 43 44 sfPreviewMask = sfPreviewImage + sfTransparencyMask, 45 46 // Preview image for non-primary settings. 47 48 sfAltPreviewImage = 0x10001 49 50 }; 51 52 /******************************************************************************/ 53 54 // Values for PhotometricInterpretation tag. 55 56 enum 57 { 58 59 piWhiteIsZero = 0, 60 piBlackIsZero = 1, 61 piRGB = 2, 62 piRGBPalette = 3, 63 piTransparencyMask = 4, 64 piCMYK = 5, 65 piYCbCr = 6, 66 piCIELab = 8, 67 piICCLab = 9, 68 69 piCFA = 32803, // TIFF-EP spec 70 71 piLinearRaw = 34892 72 73 }; 74 75 /******************************************************************************/ 76 77 // Values for PlanarConfiguration tag. 78 79 enum 80 { 81 82 pcInterleaved = 1, 83 pcPlanar = 2, 84 85 // Ordering, using an RGB image as an example: 86 // 87 // RRRRRRRRRR 88 // GGGGGGGGGG 89 // BBBBBBBBBB 90 // RRRRRRRRRR 91 // GGGGGGGGGG 92 // BBBBBBBBBB 93 // 94 // The "Align16" variant additionally ensures that the offset of each 95 // plane's row is aligned to an integer multiple of 16 bytes from the 96 // beginning of the buffer. 97 pcRowInterleaved = 100000, // Internal use only 98 pcRowInterleavedAlign16 = 100001 // Internal use only 99 100 }; 101 102 /******************************************************************************/ 103 104 // Values for ExtraSamples tag. 105 106 enum 107 { 108 109 esUnspecified = 0, 110 esAssociatedAlpha = 1, 111 esUnassociatedAlpha = 2 112 113 }; 114 115 /******************************************************************************/ 116 117 // Values for SampleFormat tag. 118 119 enum 120 { 121 122 sfUnsignedInteger = 1, 123 sfSignedInteger = 2, 124 sfFloatingPoint = 3, 125 sfUndefined = 4 126 127 }; 128 129 /******************************************************************************/ 130 131 // Values for Compression tag. 132 133 enum 134 { 135 136 ccUncompressed = 1, 137 ccLZW = 5, 138 ccOldJPEG = 6, 139 ccJPEG = 7, 140 ccDeflate = 8, 141 ccPackBits = 32773, 142 ccOldDeflate = 32946, 143 144 // Used in DNG files in places that allow lossless JPEG. 145 146 ccLossyJPEG = 34892 147 148 }; 149 150 /******************************************************************************/ 151 152 // Values for Predictor tag. 153 154 enum 155 { 156 157 cpNullPredictor = 1, 158 cpHorizontalDifference = 2, 159 cpFloatingPoint = 3, 160 161 cpHorizontalDifferenceX2 = 34892, 162 cpHorizontalDifferenceX4 = 34893, 163 cpFloatingPointX2 = 34894, 164 cpFloatingPointX4 = 34895 165 166 }; 167 168 /******************************************************************************/ 169 170 // Values for ResolutionUnit tag. 171 172 enum 173 { 174 175 ruNone = 1, 176 ruInch = 2, 177 ruCM = 3, 178 ruMM = 4, 179 ruMicroM = 5 180 181 }; 182 183 /******************************************************************************/ 184 185 // Values for LightSource tag. 186 187 enum 188 { 189 190 lsUnknown = 0, 191 192 lsDaylight = 1, 193 lsFluorescent = 2, 194 lsTungsten = 3, 195 lsFlash = 4, 196 lsFineWeather = 9, 197 lsCloudyWeather = 10, 198 lsShade = 11, 199 lsDaylightFluorescent = 12, // D 5700 - 7100K 200 lsDayWhiteFluorescent = 13, // N 4600 - 5500K 201 lsCoolWhiteFluorescent = 14, // W 3800 - 4500K 202 lsWhiteFluorescent = 15, // WW 3250 - 3800K 203 lsWarmWhiteFluorescent = 16, // L 2600 - 3250K 204 lsStandardLightA = 17, 205 lsStandardLightB = 18, 206 lsStandardLightC = 19, 207 lsD55 = 20, 208 lsD65 = 21, 209 lsD75 = 22, 210 lsD50 = 23, 211 lsISOStudioTungsten = 24, 212 213 lsOther = 255 214 215 }; 216 217 /******************************************************************************/ 218 219 // Values for ExposureProgram tag. 220 221 enum 222 { 223 224 epUnidentified = 0, 225 epManual = 1, 226 epProgramNormal = 2, 227 epAperturePriority = 3, 228 epShutterPriority = 4, 229 epProgramCreative = 5, 230 epProgramAction = 6, 231 epPortraitMode = 7, 232 epLandscapeMode = 8 233 234 }; 235 236 /******************************************************************************/ 237 238 // Values for MeteringMode tag. 239 240 enum 241 { 242 243 mmUnidentified = 0, 244 mmAverage = 1, 245 mmCenterWeightedAverage = 2, 246 mmSpot = 3, 247 mmMultiSpot = 4, 248 mmPattern = 5, 249 mmPartial = 6, 250 251 mmOther = 255 252 253 }; 254 255 /******************************************************************************/ 256 257 // CFA color codes from the TIFF/EP specification. 258 259 enum ColorKeyCode 260 { 261 262 colorKeyRed = 0, 263 colorKeyGreen = 1, 264 colorKeyBlue = 2, 265 colorKeyCyan = 3, 266 colorKeyMagenta = 4, 267 colorKeyYellow = 5, 268 colorKeyWhite = 6, 269 270 colorKeyMaxEnum = 0xFF 271 272 }; 273 274 /*****************************************************************************/ 275 276 // Values for the SensitivityType tag. 277 278 enum 279 { 280 281 stUnknown = 0, 282 283 stStandardOutputSensitivity = 1, 284 stRecommendedExposureIndex = 2, 285 stISOSpeed = 3, 286 stSOSandREI = 4, 287 stSOSandISOSpeed = 5, 288 stREIandISOSpeed = 6, 289 stSOSandREIandISOSpeed = 7 290 291 }; 292 293 /*****************************************************************************/ 294 295 // Values for the ColorimetricReference tag. It specifies the colorimetric 296 // reference used for images with PhotometricInterpretation values of CFA 297 // or LinearRaw. 298 299 enum 300 { 301 302 // Scene referred (default): 303 304 crSceneReferred = 0, 305 306 // Output referred using the parameters of the ICC profile PCS. 307 308 crICCProfilePCS = 1 309 310 }; 311 312 /*****************************************************************************/ 313 314 // Values for the ProfileEmbedPolicy tag. 315 316 enum 317 { 318 319 // Freely embedable and copyable into installations that encounter this 320 // profile, so long as the profile is only used to process DNG files. 321 322 pepAllowCopying = 0, 323 324 // Can be embeded in a DNG for portable processing, but cannot be used 325 // to process other files that the profile is not embedded in. 326 327 pepEmbedIfUsed = 1, 328 329 // Can only be used if installed on the machine processing the file. 330 // Note that this only applies to stand-alone profiles. Profiles that 331 // are already embedded inside a DNG file allowed to remain embedded 332 // in that DNG, even if the DNG is resaved. 333 334 pepEmbedNever = 2, 335 336 // No restricts on profile use or embedding. 337 338 pepNoRestrictions = 3 339 340 }; 341 342 /*****************************************************************************/ 343 344 // Values for the ProfileHueSatMapEncoding and ProfileLookTableEncoding tags. 345 346 enum 347 { 348 349 // 1. Convert linear ProPhoto RGB values to HSV. 350 // 2. Use the HSV coordinates to index into the color table. 351 // 3. Apply color table result to the original HSV values. 352 // 4. Convert modified HSV values back to linear ProPhoto RGB. 353 354 encoding_Linear = 0, 355 356 // 1. Convert linear ProPhoto RGB values to HSV. 357 // 2. Encode V coordinate using sRGB encoding curve. 358 // 3. Use the encoded HSV coordinates to index into the color table. 359 // 4. Apply color table result to the encoded values from step 2. 360 // 5. Decode V coordinate using sRGB decoding curve (inverse of step 2). 361 // 6. Convert HSV values back to linear ProPhoto RGB (inverse of step 1). 362 363 encoding_sRGB = 1 364 365 }; 366 367 /*****************************************************************************/ 368 369 // Values for the DefaultBlackRender tag. 370 371 enum 372 { 373 374 // By default, the renderer applies (possibly auto-calculated) black subtraction 375 // prior to the look table. 376 377 defaultBlackRender_Auto = 0, 378 379 // By default, the renderer does not apply any black subtraction prior to the 380 // look table. 381 382 defaultBlackRender_None = 1 383 384 }; 385 386 /*****************************************************************************/ 387 388 // Values for the PreviewColorSpace tag. 389 390 enum PreviewColorSpaceEnum 391 { 392 393 previewColorSpace_Unknown = 0, 394 previewColorSpace_GrayGamma22 = 1, 395 previewColorSpace_sRGB = 2, 396 previewColorSpace_AdobeRGB = 3, 397 previewColorSpace_ProPhotoRGB = 4, 398 399 previewColorSpace_LastValid = previewColorSpace_ProPhotoRGB, 400 401 previewColorSpace_MaxEnum = 0xFFFFFFFF 402 403 }; 404 405 /*****************************************************************************/ 406 407 // Values for CacheVersion tag. 408 409 enum 410 { 411 412 // The low-16 bits are a rendering version number. 413 414 cacheVersionMask = 0x0FFFF, 415 416 // Default cache version. 417 418 cacheVersionDefault = 0x00100, 419 420 // Is this an integer preview of a floating point image? 421 422 cacheVersionDefloated = 0x10000, 423 424 // Is this an flattening preview of an image with tranparency? 425 426 cacheVersionFlattened = 0x20000, 427 428 // Was this preview build using a the default baseline multi-channel 429 // CFA merge (i.e. only using the first channel)? 430 431 cacheVersionFakeMerge = 0x40000 432 433 }; 434 435 /*****************************************************************************/ 436 437 // TIFF-style byte order markers. 438 439 enum 440 { 441 442 byteOrderII = 0x4949, // 'II' 443 byteOrderMM = 0x4D4D // 'MM' 444 445 }; 446 447 /*****************************************************************************/ 448 449 // "Magic" numbers. 450 451 enum 452 { 453 454 // DNG related. 455 456 magicTIFF = 42, // TIFF (and DNG) 457 magicExtendedProfile = 0x4352, // 'CR' 458 magicRawCache = 1022, // Raw cache (fast load data) 459 460 // Other raw formats - included here so the DNG SDK can parse them. 461 462 magicPanasonic = 85, 463 magicOlympusA = 0x4F52, 464 magicOlympusB = 0x5352 465 466 }; 467 468 /*****************************************************************************/ 469 470 // DNG Version numbers 471 472 enum 473 { 474 475 dngVersion_None = 0, 476 477 dngVersion_1_0_0_0 = 0x01000000, 478 dngVersion_1_1_0_0 = 0x01010000, 479 dngVersion_1_2_0_0 = 0x01020000, 480 dngVersion_1_3_0_0 = 0x01030000, 481 dngVersion_1_4_0_0 = 0x01040000, 482 483 dngVersion_Current = dngVersion_1_4_0_0, 484 485 dngVersion_SaveDefault = dngVersion_Current 486 487 }; 488 489 /*****************************************************************************/ 490 491 #endif 492 493 /*****************************************************************************/ 494