1 /* 2 * Copyright 2014 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef IMG_UTILS_TIFF_TAG_DEFINITION_H 18 #define IMG_UTILS_TIFF_TAG_DEFINITION_H 19 20 #include <img_utils/TiffEntry.h> 21 #include <img_utils/Output.h> 22 #include <img_utils/TiffHelpers.h> 23 #include <stdint.h> 24 25 namespace android { 26 namespace img_utils { 27 28 /** 29 * Tag definitions contain information about standard TIFF compatible tags. 30 */ 31 typedef struct TagDefinition { 32 // The tag name. 33 const char* tagName; 34 // The specified tag ID. 35 const uint16_t tagId; 36 // The default type for this tag. This must be a valid TIFF type. 37 const TagType defaultType; 38 // The default Image File Directory (IFD) for this tag. 39 const uint32_t defaultIfd; 40 // The valid count for this tag, or 0 if the count is not fixed. 41 const uint32_t fixedCount; 42 // The endianness of the tag value, or UNDEFINED_ENDIAN if there is no fixed endian 43 const Endianness fixedEndian; 44 } TagDefinition_t; 45 46 /** 47 * Convenience defines for tag ids. 48 */ 49 enum { 50 TAG_RAWTOPREVIEWGAIN = 0xC7A8u, 51 TAG_NEWRAWIMAGEDIGEST = 0xC7A7u, 52 TAG_ORIGINALDEFAULTCROPSIZE = 0xC793u, 53 TAG_ORIGINALBESTQUALITYFINALSIZE = 0xC792u, 54 TAG_ORIGINALDEFAULTFINALSIZE = 0xC791u, 55 TAG_PROFILEHUESATMAPENCODING = 0xC7A3u, 56 TAG_PROFILELOOKTABLEENCODING = 0xC7A4u, 57 TAG_BASELINEEXPOSUREOFFSET = 0xC7A5u, 58 TAG_DEFAULTBLACKRENDER = 0xC7A6u, 59 TAG_DEFAULTUSERCROP = 0xC7B5u, 60 TAG_NOISEPROFILE = 0xC761u, 61 TAG_OPCODELIST3 = 0xC74Eu, 62 TAG_OPCODELIST2 = 0xC741u, 63 TAG_OPCODELIST1 = 0xC740u, 64 TAG_PROFILELOOKTABLEDATA = 0xC726u, 65 TAG_PROFILELOOKTABLEDIMS = 0xC725u, 66 TAG_ROWINTERLEAVEFACTOR = 0xC71Fu, 67 TAG_SUBTILEBLOCKSIZE = 0xC71Eu, 68 TAG_ORIGINALRAWFILEDIGEST = 0xC71Du, 69 TAG_RAWIMAGEDIGEST = 0xC71Cu, 70 TAG_PREVIEWDATETIME = 0xC71Bu, 71 TAG_PREVIEWCOLORSPACE = 0xC71Au, 72 TAG_PREVIEWSETTINGSDIGEST = 0xC719u, 73 TAG_PREVIEWSETTINGSNAME = 0xC718u, 74 TAG_PREVIEWAPPLICATIONVERSION = 0xC717u, 75 TAG_PREVIEWAPPLICATIONNAME = 0xC716u, 76 TAG_FORWARDMATRIX2 = 0xC715u, 77 TAG_FORWARDMATRIX1 = 0xC714u, 78 TAG_PROFILECOPYRIGHT = 0xC6FEu, 79 TAG_PROFILEEMBEDPOLICY = 0xC6FDu, 80 TAG_PROFILETONECURVE = 0xC6FCu, 81 TAG_PROFILEHUESATMAPDATA2 = 0xC6FBu, 82 TAG_PROFILEHUESATMAPDATA1 = 0xC6FAu, 83 TAG_PROFILEHUESATMAPDIMS = 0xC6F9u, 84 TAG_PROFILENAME = 0xC6F8u, 85 TAG_NOISEREDUCTIONAPPLIED = 0xC6F7u, 86 TAG_ASSHOTPROFILENAME = 0xC6F6u, 87 TAG_EXTRACAMERAPROFILES = 0xC6F5u, 88 TAG_PROFILECALIBRATIONSIGNATURE = 0xC6F4u, 89 TAG_CAMERACALIBRATIONSIGNATURE = 0xC6F3u, 90 TAG_COLORIMETRICREFERENCE = 0xC6BFu, 91 TAG_CURRENTPREPROFILEMATRIX = 0xC692u, 92 TAG_CURRENTICCPROFILE = 0xC691u, 93 TAG_ASSHOTPREPROFILEMATRIX = 0xC690u, 94 TAG_ASSHOTICCPROFILE = 0xC68Fu, 95 TAG_MASKEDAREAS = 0xC68Eu, 96 TAG_ACTIVEAREA = 0xC68Du, 97 TAG_ORIGINALRAWFILEDATA = 0xC68Cu, 98 TAG_ORIGINALRAWFILENAME = 0xC68Bu, 99 TAG_RAWDATAUNIQUEID = 0xC65Du, 100 TAG_MAKERNOTESAFETY = 0xC635u, 101 TAG_DNGPRIVATEDATA = 0xC634u, 102 TAG_SHADOWSCALE = 0xC633u, 103 TAG_ANTIALIASSTRENGTH = 0xC632u, 104 TAG_CHROMABLURRADIUS = 0xC631u, 105 TAG_LENSINFO = 0xC630u, 106 TAG_CAMERASERIALNUMBER = 0xC62Fu, 107 TAG_LINEARRESPONSELIMIT = 0xC62Eu, 108 TAG_BAYERGREENSPLIT = 0xC62Du, 109 TAG_BASELINESHARPNESS = 0xC62Cu, 110 TAG_BASELINENOISE = 0xC62Bu, 111 TAG_BASELINEEXPOSURE = 0xC62Au, 112 TAG_ASSHOTWHITEXY = 0xC629u, 113 TAG_ASSHOTNEUTRAL = 0xC628u, 114 TAG_ANALOGBALANCE = 0xC627u, 115 TAG_REDUCTIONMATRIX2 = 0xC626u, 116 TAG_REDUCTIONMATRIX1 = 0xC625u, 117 TAG_CAMERACALIBRATION2 = 0xC624u, 118 TAG_CAMERACALIBRATION1 = 0xC623u, 119 TAG_COLORMATRIX2 = 0xC622u, 120 TAG_COLORMATRIX1 = 0xC621u, 121 TAG_CALIBRATIONILLUMINANT2 = 0xC65Bu, 122 TAG_CALIBRATIONILLUMINANT1 = 0xC65Au, 123 TAG_DEFAULTCROPSIZE = 0xC620u, 124 TAG_DEFAULTCROPORIGIN = 0xC61Fu, 125 TAG_BESTQUALITYSCALE = 0xC65Cu, 126 TAG_DEFAULTSCALE = 0xC61Eu, 127 TAG_WHITELEVEL = 0xC61Du, 128 TAG_BLACKLEVELDELTAV = 0xC61Cu, 129 TAG_BLACKLEVELDELTAH = 0xC61Bu, 130 TAG_BLACKLEVEL = 0xC61Au, 131 TAG_BLACKLEVELREPEATDIM = 0xC619u, 132 TAG_LINEARIZATIONTABLE = 0xC618u, 133 TAG_CFALAYOUT = 0xC617u, 134 TAG_CFAPLANECOLOR = 0xC616u, 135 TAG_LOCALIZEDCAMERAMODEL = 0xC615u, 136 TAG_UNIQUECAMERAMODEL = 0xC614u, 137 TAG_DNGBACKWARDVERSION = 0xC613u, 138 TAG_DNGVERSION = 0xC612u, 139 TAG_SUBFILETYPE = 0x00FFu, 140 TAG_YRESOLUTION = 0x011Bu, 141 TAG_XRESOLUTION = 0x011Au, 142 TAG_THRESHHOLDING = 0x0107u, 143 TAG_STRIPOFFSETS = 0x0111u, 144 TAG_STRIPBYTECOUNTS = 0x0117u, 145 TAG_SOFTWARE = 0x0131u, 146 TAG_SAMPLESPERPIXEL = 0x0115u, 147 TAG_ROWSPERSTRIP = 0x0116u, 148 TAG_RESOLUTIONUNIT = 0x0128u, 149 TAG_PLANARCONFIGURATION = 0x011Cu, 150 TAG_PHOTOMETRICINTERPRETATION = 0x0106u, 151 TAG_ORIENTATION = 0x0112u, 152 TAG_NEWSUBFILETYPE = 0x00FEu, 153 TAG_MODEL = 0x0110u, 154 TAG_MINSAMPLEVALUE = 0x0118u, 155 TAG_MAXSAMPLEVALUE = 0x0119u, 156 TAG_MAKE = 0x010Fu, 157 TAG_IMAGEWIDTH = 0x0100u, 158 TAG_IMAGELENGTH = 0x0101u, 159 TAG_IMAGEDESCRIPTION = 0x010Eu, 160 TAG_HOSTCOMPUTER = 0x013Cu, 161 TAG_GRAYRESPONSEUNIT = 0x0122u, 162 TAG_GRAYRESPONSECURVE = 0x0123u, 163 TAG_FREEOFFSETS = 0x0120u, 164 TAG_FREEBYTECOUNTS = 0x0121u, 165 TAG_FILLORDER = 0x010Au, 166 TAG_EXTRASAMPLES = 0x0152u, 167 TAG_DATETIME = 0x0132u, 168 TAG_COPYRIGHT = 0x8298u, 169 TAG_COMPRESSION = 0x0103u, 170 TAG_COLORMAP = 0x0140u, 171 TAG_CELLWIDTH = 0x0108u, 172 TAG_CELLLENGTH = 0x0109u, 173 TAG_BITSPERSAMPLE = 0x0102u, 174 TAG_ARTIST = 0x013Bu, 175 TAG_EXIFVERSION = 0x9000u, 176 TAG_CFAREPEATPATTERNDIM = 0x828Du, 177 TAG_DATETIMEORIGINAL = 0x9003u, 178 TAG_CFAPATTERN = 0x828Eu, 179 TAG_SUBIFDS = 0x014Au, 180 TAG_TIFFEPSTANDARDID = 0x9216u, 181 TAG_EXPOSURETIME = 0x829Au, 182 TAG_ISOSPEEDRATINGS = 0x8827u, 183 TAG_FOCALLENGTH = 0x920Au, 184 TAG_FNUMBER = 0x829Du, 185 TAG_GPSINFO = 0x8825u, 186 TAG_GPSVERSIONID = 0x0u, 187 TAG_GPSLATITUDEREF = 0x1u, 188 TAG_GPSLATITUDE = 0x2u, 189 TAG_GPSLONGITUDEREF = 0x3u, 190 TAG_GPSLONGITUDE = 0x4u, 191 TAG_GPSTIMESTAMP = 0x7u, 192 TAG_GPSDATESTAMP = 0x001Du, 193 }; 194 195 /** 196 * TIFF_EP_TAG_DEFINITIONS contains tags defined in the TIFF EP spec 197 */ 198 const TagDefinition_t TIFF_EP_TAG_DEFINITIONS[] = { 199 { // PhotometricInterpretation 200 "PhotometricInterpretation", 201 0x0106u, 202 SHORT, 203 IFD_0, 204 1, 205 UNDEFINED_ENDIAN 206 }, 207 { // SubIfds 208 "SubIfds", 209 0x014Au, 210 LONG, 211 IFD_0, 212 0, 213 UNDEFINED_ENDIAN 214 }, 215 { // CFAPattern 216 "CFAPattern", 217 0x828Eu, 218 BYTE, 219 IFD_0, 220 0, 221 UNDEFINED_ENDIAN 222 }, 223 { // CFARepeatPatternDim 224 "CFARepeatPatternDim", 225 0x828Du, 226 SHORT, 227 IFD_0, 228 2, 229 UNDEFINED_ENDIAN 230 }, 231 { // DateTimeOriginal 232 "DateTimeOriginal", 233 0x9003u, 234 ASCII, 235 IFD_0, 236 20, 237 UNDEFINED_ENDIAN 238 }, 239 { // Tiff/EPStandardID 240 "Tiff", 241 0x9216u, 242 BYTE, 243 IFD_0, 244 4, 245 UNDEFINED_ENDIAN 246 }, 247 { // ExposureTime 248 "ExposureTime", 249 0x829Au, 250 RATIONAL, 251 IFD_0, 252 0, 253 UNDEFINED_ENDIAN 254 }, 255 { // ISOSpeedRatings 256 "ISOSpeedRatings", 257 0x8827u, 258 SHORT, 259 IFD_0, 260 0, 261 UNDEFINED_ENDIAN 262 }, 263 { // FocalLength 264 "FocalLength", 265 0x920Au, 266 RATIONAL, 267 IFD_0, 268 0, 269 UNDEFINED_ENDIAN 270 }, 271 { // FNumber 272 "FNumber", 273 0x829Du, 274 RATIONAL, 275 IFD_0, 276 0, 277 UNDEFINED_ENDIAN 278 }, 279 { // GPSInfo 280 "GPSInfo", 281 0x8825u, 282 LONG, 283 IFD_0, 284 1, 285 UNDEFINED_ENDIAN 286 }, 287 { // GPSVersionID 288 "GPSVersionID", 289 0x0u, 290 BYTE, 291 IFD_0, 292 4, 293 UNDEFINED_ENDIAN 294 }, 295 { // GPSLatitudeRef 296 "GPSLatitudeRef", 297 0x1u, 298 ASCII, 299 IFD_0, 300 2, 301 UNDEFINED_ENDIAN 302 }, 303 { // GPSLatitude 304 "GPSLatitude", 305 0x2u, 306 RATIONAL, 307 IFD_0, 308 3, 309 UNDEFINED_ENDIAN 310 }, 311 { // GPSLongitudeRef 312 "GPSLongitudeRef", 313 0x3u, 314 ASCII, 315 IFD_0, 316 2, 317 UNDEFINED_ENDIAN 318 }, 319 { // GPSLongitude 320 "GPSLongitude", 321 0x4u, 322 RATIONAL, 323 IFD_0, 324 3, 325 UNDEFINED_ENDIAN 326 }, 327 { // GPSTimeStamp 328 "GPSTimeStamp", 329 0x7u, 330 RATIONAL, 331 IFD_0, 332 3, 333 UNDEFINED_ENDIAN 334 }, 335 /*TODO: Remaining TIFF EP tags*/ 336 }; 337 338 /** 339 * EXIF_2_3_TAG_DEFINITIONS contains tags defined in the Jeita EXIF 2.3 spec 340 */ 341 const TagDefinition_t EXIF_2_3_TAG_DEFINITIONS[] = { 342 { // ExifVersion 343 "ExifVersion", 344 0x9000u, 345 UNDEFINED, 346 IFD_0, 347 4, 348 UNDEFINED_ENDIAN 349 }, 350 { // GPSDateStamp 351 "GPSDateStamp", 352 0x001Du, 353 ASCII, 354 IFD_0, 355 11, 356 UNDEFINED_ENDIAN 357 }, 358 /*TODO: Remaining EXIF 2.3 tags*/ 359 }; 360 361 /** 362 * TIFF_6_TAG_DEFINITIONS contains tags defined in the TIFF 6.0 spec 363 */ 364 const TagDefinition_t TIFF_6_TAG_DEFINITIONS[] = { 365 { // SubFileType 366 "SubFileType", 367 0x00FFu, 368 SHORT, 369 IFD_0, 370 1, 371 UNDEFINED_ENDIAN 372 }, 373 { // Artist 374 "Artist", 375 0x013Bu, 376 ASCII, 377 IFD_0, 378 0, 379 UNDEFINED_ENDIAN 380 }, 381 { // BitsPerSample 382 "BitsPerSample", 383 0x0102u, 384 SHORT, 385 IFD_0, 386 0, 387 UNDEFINED_ENDIAN 388 }, 389 { // CellLength 390 "CellLength", 391 0x0109u, 392 SHORT, 393 IFD_0, 394 1, 395 UNDEFINED_ENDIAN 396 }, 397 { // CellWidth 398 "CellWidth", 399 0x0108u, 400 SHORT, 401 IFD_0, 402 1, 403 UNDEFINED_ENDIAN 404 }, 405 { // ColorMap 406 "ColorMap", 407 0x0140u, 408 SHORT, 409 IFD_0, 410 0, 411 UNDEFINED_ENDIAN 412 }, 413 { // Compression 414 "Compression", 415 0x0103u, 416 SHORT, 417 IFD_0, 418 1, 419 UNDEFINED_ENDIAN 420 }, 421 { // Copyright 422 "Copyright", 423 0x8298u, 424 ASCII, 425 IFD_0, 426 0, 427 UNDEFINED_ENDIAN 428 }, 429 { // DateTime 430 "DateTime", 431 0x0132u, 432 ASCII, 433 IFD_0, 434 20, 435 UNDEFINED_ENDIAN 436 }, 437 { // ExtraSamples 438 "ExtraSamples", 439 0x0152u, 440 SHORT, 441 IFD_0, 442 0, 443 UNDEFINED_ENDIAN 444 }, 445 { // FillOrder 446 "FillOrder", 447 0x010Au, 448 SHORT, 449 IFD_0, 450 1, 451 UNDEFINED_ENDIAN 452 }, 453 { // FreeByteCounts 454 "FreeByteCounts", 455 0x0121u, 456 LONG, 457 IFD_0, 458 1, 459 UNDEFINED_ENDIAN 460 }, 461 { // FreeOffsets 462 "FreeOffsets", 463 0x0120u, 464 LONG, 465 IFD_0, 466 1, 467 UNDEFINED_ENDIAN 468 }, 469 { // GrayResponseCurve 470 "GrayResponseCurve", 471 0x0123u, 472 SHORT, 473 IFD_0, 474 0, 475 UNDEFINED_ENDIAN 476 }, 477 { // GrayResponseUnit 478 "GrayResponseUnit", 479 0x0122u, 480 SHORT, 481 IFD_0, 482 1, 483 UNDEFINED_ENDIAN 484 }, 485 { // HostComputer 486 "HostComputer", 487 0x013Cu, 488 ASCII, 489 IFD_0, 490 0, 491 UNDEFINED_ENDIAN 492 }, 493 { // ImageDescription 494 "ImageDescription", 495 0x010Eu, 496 ASCII, 497 IFD_0, 498 0, 499 UNDEFINED_ENDIAN 500 }, 501 { // ImageLength 502 "ImageLength", 503 0x0101u, 504 LONG, 505 IFD_0, 506 1, 507 UNDEFINED_ENDIAN 508 }, 509 { // ImageWidth 510 "ImageWidth", 511 0x0100u, 512 LONG, 513 IFD_0, 514 1, 515 UNDEFINED_ENDIAN 516 }, 517 { // Make 518 "Make", 519 0x010Fu, 520 ASCII, 521 IFD_0, 522 0, 523 UNDEFINED_ENDIAN 524 }, 525 { // MaxSampleValue 526 "MaxSampleValue", 527 0x0119u, 528 SHORT, 529 IFD_0, 530 0, 531 UNDEFINED_ENDIAN 532 }, 533 { // MinSampleValue 534 "MinSampleValue", 535 0x0118u, 536 SHORT, 537 IFD_0, 538 0, 539 UNDEFINED_ENDIAN 540 }, 541 { // Model 542 "Model", 543 0x0110u, 544 ASCII, 545 IFD_0, 546 0, 547 UNDEFINED_ENDIAN 548 }, 549 { // NewSubfileType 550 "NewSubfileType", 551 0x00FEu, 552 LONG, 553 IFD_0, 554 1, 555 UNDEFINED_ENDIAN 556 }, 557 { // Orientation 558 "Orientation", 559 0x0112u, 560 SHORT, 561 IFD_0, 562 1, 563 UNDEFINED_ENDIAN 564 }, 565 { // PhotoMetricInterpretation 566 "PhotoMetricInterpretation", 567 0x0106u, 568 SHORT, 569 IFD_0, 570 1, 571 UNDEFINED_ENDIAN 572 }, 573 { // PlanarConfiguration 574 "PlanarConfiguration", 575 0x011Cu, 576 SHORT, 577 IFD_0, 578 1, 579 UNDEFINED_ENDIAN 580 }, 581 { // ResolutionUnit 582 "ResolutionUnit", 583 0x0128u, 584 SHORT, 585 IFD_0, 586 1, 587 UNDEFINED_ENDIAN 588 }, 589 { // RowsPerStrip 590 "RowsPerStrip", 591 0x0116u, 592 LONG, 593 IFD_0, 594 1, 595 UNDEFINED_ENDIAN 596 }, 597 { // SamplesPerPixel 598 "SamplesPerPixel", 599 0x0115u, 600 SHORT, 601 IFD_0, 602 1, 603 UNDEFINED_ENDIAN 604 }, 605 { // Software 606 "Software", 607 0x0131u, 608 ASCII, 609 IFD_0, 610 0, 611 UNDEFINED_ENDIAN 612 }, 613 { // StripByteCounts 614 "StripByteCounts", 615 0x0117u, 616 LONG, 617 IFD_0, 618 0, 619 UNDEFINED_ENDIAN 620 }, 621 { // StripOffsets 622 "StripOffsets", 623 0x0111u, 624 LONG, 625 IFD_0, 626 0, 627 UNDEFINED_ENDIAN 628 }, 629 { // SubfileType 630 "SubfileType", 631 0x00FFu, 632 SHORT, 633 IFD_0, 634 1, 635 UNDEFINED_ENDIAN 636 }, 637 { // Threshholding 638 "Threshholding", 639 0x0107u, 640 SHORT, 641 IFD_0, 642 1, 643 UNDEFINED_ENDIAN 644 }, 645 { // XResolution 646 "XResolution", 647 0x011Au, 648 RATIONAL, 649 IFD_0, 650 1, 651 UNDEFINED_ENDIAN 652 }, 653 { // YResolution 654 "YResolution", 655 0x011Bu, 656 RATIONAL, 657 IFD_0, 658 1, 659 UNDEFINED_ENDIAN 660 }, 661 }; 662 663 /** 664 * DNG_TAG_DEFINITIONS contains tags defined in the DNG 1.4 spec 665 */ 666 const TagDefinition_t DNG_TAG_DEFINITIONS[] = { 667 { // DNGVersion 668 "DNGVersion", 669 0xC612u, 670 BYTE, 671 IFD_0, 672 4, 673 UNDEFINED_ENDIAN 674 }, 675 { // DNGBackwardVersion 676 "DNGBackwardVersion", 677 0xC613u, 678 BYTE, 679 IFD_0, 680 4, 681 UNDEFINED_ENDIAN 682 }, 683 { // UniqueCameraModel 684 "UniqueCameraModel", 685 0xC614u, 686 ASCII, 687 IFD_0, 688 0, 689 UNDEFINED_ENDIAN 690 }, 691 { // LocalizedCameraModel 692 "LocalizedCameraModel", 693 0xC615u, 694 ASCII, 695 IFD_0, 696 0, 697 UNDEFINED_ENDIAN 698 }, 699 { // CFAPlaneColor 700 "CFAPlaneColor", 701 0xC616u, 702 BYTE, 703 RAW_IFD, 704 0, 705 UNDEFINED_ENDIAN 706 }, 707 { // CFALayout 708 "CFALayout", 709 0xC617u, 710 SHORT, 711 RAW_IFD, 712 1, 713 UNDEFINED_ENDIAN 714 }, 715 { // LinearizationTable 716 "LinearizationTable", 717 0xC618u, 718 SHORT, 719 RAW_IFD, 720 0, 721 UNDEFINED_ENDIAN 722 }, 723 { // BlackLevelRepeatDim 724 "BlackLevelRepeatDim", 725 0xC619u, 726 SHORT, 727 RAW_IFD, 728 2, 729 UNDEFINED_ENDIAN 730 }, 731 { // BlackLevel 732 "BlackLevel", 733 0xC61Au, 734 LONG, 735 RAW_IFD, 736 0, 737 UNDEFINED_ENDIAN 738 }, 739 { // BlackLevelDeltaH 740 "BlackLevelDeltaH", 741 0xC61Bu, 742 SRATIONAL, 743 RAW_IFD, 744 0, 745 UNDEFINED_ENDIAN 746 }, 747 { // BlackLevelDeltaV 748 "BlackLevelDeltaV", 749 0xC61Cu, 750 SRATIONAL, 751 RAW_IFD, 752 0, 753 UNDEFINED_ENDIAN 754 }, 755 { // WhiteLevel 756 "WhiteLevel", 757 0xC61Du, 758 LONG, 759 RAW_IFD, 760 0, 761 UNDEFINED_ENDIAN 762 }, 763 { // DefaultScale 764 "DefaultScale", 765 0xC61Eu, 766 RATIONAL, 767 RAW_IFD, 768 2, 769 UNDEFINED_ENDIAN 770 }, 771 { // BestQualityScale 772 "BestQualityScale", 773 0xC65Cu, 774 RATIONAL, 775 RAW_IFD, 776 1, 777 UNDEFINED_ENDIAN 778 }, 779 { // DefaultCropOrigin 780 "DefaultCropOrigin", 781 0xC61Fu, 782 LONG, 783 RAW_IFD, 784 2, 785 UNDEFINED_ENDIAN 786 }, 787 { // DefaultCropSize 788 "DefaultCropSize", 789 0xC620u, 790 LONG, 791 RAW_IFD, 792 2, 793 UNDEFINED_ENDIAN 794 }, 795 { // CalibrationIlluminant1 796 "CalibrationIlluminant1", 797 0xC65Au, 798 SHORT, 799 PROFILE_IFD, 800 1, 801 UNDEFINED_ENDIAN 802 }, 803 { // CalibrationIlluminant2 804 "CalibrationIlluminant2", 805 0xC65Bu, 806 SHORT, 807 PROFILE_IFD, 808 1, 809 UNDEFINED_ENDIAN 810 }, 811 { // ColorMatrix1 812 "ColorMatrix1", 813 0xC621u, 814 SRATIONAL, 815 PROFILE_IFD, 816 0, 817 UNDEFINED_ENDIAN 818 }, 819 { // ColorMatrix2 820 "ColorMatrix2", 821 0xC622u, 822 SRATIONAL, 823 PROFILE_IFD, 824 0, 825 UNDEFINED_ENDIAN 826 }, 827 { // CameraCalibration1 828 "CameraCalibration1", 829 0xC623u, 830 SRATIONAL, 831 IFD_0, 832 0, 833 UNDEFINED_ENDIAN 834 }, 835 { // CameraCalibration2 836 "CameraCalibration2", 837 0xC624u, 838 SRATIONAL, 839 IFD_0, 840 0, 841 UNDEFINED_ENDIAN 842 }, 843 { // ReductionMatrix1 844 "ReductionMatrix1", 845 0xC625u, 846 SRATIONAL, 847 PROFILE_IFD, 848 0, 849 UNDEFINED_ENDIAN 850 }, 851 { // ReductionMatrix2 852 "ReductionMatrix2", 853 0xC626u, 854 SRATIONAL, 855 PROFILE_IFD, 856 0, 857 UNDEFINED_ENDIAN 858 }, 859 { // AnalogBalance 860 "AnalogBalance", 861 0xC627u, 862 RATIONAL, 863 IFD_0, 864 0, 865 UNDEFINED_ENDIAN 866 }, 867 { // AsShotNeutral 868 "AsShotNeutral", 869 0xC628u, 870 RATIONAL, 871 IFD_0, 872 0, 873 UNDEFINED_ENDIAN 874 }, 875 { // AsShotWhiteXY 876 "AsShotWhiteXY", 877 0xC629u, 878 RATIONAL, 879 IFD_0, 880 2, 881 UNDEFINED_ENDIAN 882 }, 883 { // BaselineExposure 884 "BaselineExposure", 885 0xC62Au, 886 SRATIONAL, 887 IFD_0, 888 1, 889 UNDEFINED_ENDIAN 890 }, 891 { // BaselineNoise 892 "BaselineNoise", 893 0xC62Bu, 894 RATIONAL, 895 IFD_0, 896 1, 897 UNDEFINED_ENDIAN 898 }, 899 { // BaselineSharpness 900 "BaselineSharpness", 901 0xC62Cu, 902 RATIONAL, 903 IFD_0, 904 1, 905 UNDEFINED_ENDIAN 906 }, 907 { // BayerGreenSplit 908 "BayerGreenSplit", 909 0xC62Du, 910 LONG, 911 RAW_IFD, 912 1, 913 UNDEFINED_ENDIAN 914 }, 915 { // LinearResponseLimit 916 "LinearResponseLimit", 917 0xC62Eu, 918 RATIONAL, 919 IFD_0, 920 1, 921 UNDEFINED_ENDIAN 922 }, 923 { // CameraSerialNumber 924 "CameraSerialNumber", 925 0xC62Fu, 926 ASCII, 927 IFD_0, 928 0, 929 UNDEFINED_ENDIAN 930 }, 931 { // LensInfo 932 "LensInfo", 933 0xC630u, 934 RATIONAL, 935 IFD_0, 936 4, 937 UNDEFINED_ENDIAN 938 }, 939 { // ChromaBlurRadius 940 "ChromaBlurRadius", 941 0xC631u, 942 RATIONAL, 943 RAW_IFD, 944 1, 945 UNDEFINED_ENDIAN 946 }, 947 { // AntiAliasStrength 948 "AntiAliasStrength", 949 0xC632u, 950 RATIONAL, 951 RAW_IFD, 952 1, 953 UNDEFINED_ENDIAN 954 }, 955 { // ShadowScale 956 "ShadowScale", 957 0xC633u, 958 RATIONAL, 959 IFD_0, 960 1, 961 UNDEFINED_ENDIAN 962 }, 963 { // DNGPrivateData 964 "DNGPrivateData", 965 0xC634u, 966 BYTE, 967 IFD_0, 968 0, 969 UNDEFINED_ENDIAN 970 }, 971 { // MakerNoteSafety 972 "MakerNoteSafety", 973 0xC635u, 974 SHORT, 975 IFD_0, 976 1, 977 UNDEFINED_ENDIAN 978 }, 979 { // RawDataUniqueID 980 "RawDataUniqueID", 981 0xC65Du, 982 BYTE, 983 IFD_0, 984 16, 985 UNDEFINED_ENDIAN 986 }, 987 { // OriginalRawFileName 988 "OriginalRawFileName", 989 0xC68Bu, 990 ASCII, 991 IFD_0, 992 0, 993 UNDEFINED_ENDIAN 994 }, 995 { // OriginalRawFileData 996 "OriginalRawFileData", 997 0xC68Cu, 998 UNDEFINED, 999 IFD_0, 1000 0, 1001 BIG 1002 }, 1003 { // ActiveArea 1004 "ActiveArea", 1005 0xC68Du, 1006 LONG, 1007 RAW_IFD, 1008 4, 1009 UNDEFINED_ENDIAN 1010 }, 1011 { // MaskedAreas 1012 "MaskedAreas", 1013 0xC68Eu, 1014 LONG, 1015 RAW_IFD, 1016 0, 1017 UNDEFINED_ENDIAN 1018 }, 1019 { // AsShotICCProfile 1020 "AsShotICCProfile", 1021 0xC68Fu, 1022 UNDEFINED, 1023 IFD_0, 1024 0, 1025 UNDEFINED_ENDIAN 1026 }, 1027 { // AsShotPreProfileMatrix 1028 "AsShotPreProfileMatrix", 1029 0xC690u, 1030 SRATIONAL, 1031 IFD_0, 1032 0, 1033 UNDEFINED_ENDIAN 1034 }, 1035 { // CurrentICCProfile 1036 "CurrentICCProfile", 1037 0xC691u, 1038 UNDEFINED, 1039 IFD_0, 1040 0, 1041 UNDEFINED_ENDIAN 1042 }, 1043 { // CurrentICCProfile 1044 "CurrentICCProfile", 1045 0xC691u, 1046 UNDEFINED, 1047 IFD_0, 1048 0, 1049 UNDEFINED_ENDIAN 1050 }, 1051 { // CurrentPreProfileMatrix 1052 "CurrentPreProfileMatrix", 1053 0xC692u, 1054 SRATIONAL, 1055 IFD_0, 1056 0, 1057 UNDEFINED_ENDIAN 1058 }, 1059 { // ColorimetricReference 1060 "ColorimetricReference", 1061 0xC6BFu, 1062 SHORT, 1063 IFD_0, 1064 1, 1065 UNDEFINED_ENDIAN 1066 }, 1067 { // CameraCalibrationSignature 1068 "CameraCalibrationSignature", 1069 0xC6F3u, 1070 ASCII, 1071 IFD_0, 1072 0, 1073 UNDEFINED_ENDIAN 1074 }, 1075 { // ProfileCalibrationSignature 1076 "ProfileCalibrationSignature", 1077 0xC6F4u, 1078 ASCII, 1079 PROFILE_IFD, 1080 0, 1081 UNDEFINED_ENDIAN 1082 }, 1083 { // ExtraCameraProfiles 1084 "ExtraCameraProfiles", 1085 0xC6F5u, 1086 LONG, 1087 IFD_0, 1088 0, 1089 UNDEFINED_ENDIAN 1090 }, 1091 { // AsShotProfileName 1092 "AsShotProfileName", 1093 0xC6F6u, 1094 ASCII, 1095 IFD_0, 1096 0, 1097 UNDEFINED_ENDIAN 1098 }, 1099 { // NoiseReductionApplied 1100 "NoiseReductionApplied", 1101 0xC6F7u, 1102 RATIONAL, 1103 RAW_IFD, 1104 1, 1105 UNDEFINED_ENDIAN 1106 }, 1107 { // ProfileName 1108 "ProfileName", 1109 0xC6F8u, 1110 ASCII, 1111 PROFILE_IFD, 1112 0, 1113 UNDEFINED_ENDIAN 1114 }, 1115 { // ProfileHueSatMapDims 1116 "ProfileHueSatMapDims", 1117 0xC6F9u, 1118 LONG, 1119 PROFILE_IFD, 1120 3, 1121 UNDEFINED_ENDIAN 1122 }, 1123 { // ProfileHueSatMapData1 1124 "ProfileHueSatMapData1", 1125 0xC6FAu, 1126 FLOAT, 1127 PROFILE_IFD, 1128 0, 1129 UNDEFINED_ENDIAN 1130 }, 1131 { // ProfileHueSatMapData2 1132 "ProfileHueSatMapData2", 1133 0xC6FBu, 1134 FLOAT, 1135 PROFILE_IFD, 1136 0, 1137 UNDEFINED_ENDIAN 1138 }, 1139 { // ProfileToneCurve 1140 "ProfileToneCurve", 1141 0xC6FCu, 1142 FLOAT, 1143 PROFILE_IFD, 1144 0, 1145 UNDEFINED_ENDIAN 1146 }, 1147 { // ProfileEmbedPolicy 1148 "ProfileEmbedPolicy", 1149 0xC6FDu, 1150 LONG, 1151 PROFILE_IFD, 1152 1, 1153 UNDEFINED_ENDIAN 1154 }, 1155 { // ProfileCopyright 1156 "ProfileCopyright", 1157 0xC6FEu, 1158 ASCII, 1159 PROFILE_IFD, 1160 0, 1161 UNDEFINED_ENDIAN 1162 }, 1163 { // ForwardMatrix1 1164 "ForwardMatrix1", 1165 0xC714u, 1166 SRATIONAL, 1167 PROFILE_IFD, 1168 0, 1169 UNDEFINED_ENDIAN 1170 }, 1171 { // ForwardMatrix2 1172 "ForwardMatrix2", 1173 0xC715u, 1174 SRATIONAL, 1175 PROFILE_IFD, 1176 0, 1177 UNDEFINED_ENDIAN 1178 }, 1179 { // PreviewApplicationName 1180 "PreviewApplicationName", 1181 0xC716u, 1182 ASCII, 1183 PREVIEW_IFD, 1184 0, 1185 UNDEFINED_ENDIAN 1186 }, 1187 { // PreviewApplicationVersion 1188 "PreviewApplicationVersion", 1189 0xC717u, 1190 ASCII, 1191 PREVIEW_IFD, 1192 0, 1193 UNDEFINED_ENDIAN 1194 }, 1195 { // PreviewSettingsName 1196 "PreviewSettingsName", 1197 0xC718u, 1198 ASCII, 1199 PREVIEW_IFD, 1200 0, 1201 UNDEFINED_ENDIAN 1202 }, 1203 { // PreviewSettingsDigest 1204 "PreviewSettingsDigest", 1205 0xC719u, 1206 BYTE, 1207 PREVIEW_IFD, 1208 16, 1209 UNDEFINED_ENDIAN 1210 }, 1211 { // PreviewColorSpace 1212 "PreviewColorSpace", 1213 0xC71Au, 1214 LONG, 1215 PREVIEW_IFD, 1216 1, 1217 UNDEFINED_ENDIAN 1218 }, 1219 { // PreviewDateTime 1220 "PreviewDateTime", 1221 0xC71Bu, 1222 ASCII, 1223 PREVIEW_IFD, 1224 0, 1225 UNDEFINED_ENDIAN 1226 }, 1227 { // RawImageDigest 1228 "RawImageDigest", 1229 0xC71Cu, 1230 BYTE, 1231 IFD_0, 1232 16, 1233 UNDEFINED_ENDIAN 1234 }, 1235 { // OriginalRawFileDigest 1236 "OriginalRawFileDigest", 1237 0xC71Du, 1238 BYTE, 1239 IFD_0, 1240 16, 1241 UNDEFINED_ENDIAN 1242 }, 1243 { // SubTileBlockSize 1244 "SubTileBlockSize", 1245 0xC71Eu, 1246 LONG, 1247 RAW_IFD, 1248 2, 1249 UNDEFINED_ENDIAN 1250 }, 1251 { // RowInterleaveFactor 1252 "RowInterleaveFactor", 1253 0xC71Fu, 1254 LONG, 1255 RAW_IFD, 1256 1, 1257 UNDEFINED_ENDIAN 1258 }, 1259 { // ProfileLookTableDims 1260 "ProfileLookTableDims", 1261 0xC725u, 1262 LONG, 1263 PROFILE_IFD, 1264 3, 1265 UNDEFINED_ENDIAN 1266 }, 1267 { // ProfileLookTableData 1268 "ProfileLookTableData", 1269 0xC726u, 1270 FLOAT, 1271 PROFILE_IFD, 1272 0, 1273 UNDEFINED_ENDIAN 1274 }, 1275 { // OpcodeList1 1276 "OpcodeList1", 1277 0xC740u, 1278 UNDEFINED, 1279 RAW_IFD, 1280 0, 1281 BIG 1282 }, 1283 { // OpcodeList2 1284 "OpcodeList2", 1285 0xC741u, 1286 UNDEFINED, 1287 RAW_IFD, 1288 0, 1289 BIG 1290 }, 1291 { // OpcodeList3 1292 "OpcodeList3", 1293 0xC74Eu, 1294 UNDEFINED, 1295 RAW_IFD, 1296 0, 1297 BIG 1298 }, 1299 { // NoiseProfile 1300 "NoiseProfile", 1301 0xC761u, 1302 DOUBLE, 1303 RAW_IFD, 1304 0, 1305 UNDEFINED_ENDIAN 1306 }, 1307 { // DefaultUserCrop 1308 "DefaultUserCrop", 1309 0xC7B5u, 1310 RATIONAL, 1311 RAW_IFD, 1312 4, 1313 UNDEFINED_ENDIAN 1314 }, 1315 { // DefaultBlackRender 1316 "DefaultBlackRender", 1317 0xC7A6u, 1318 LONG, 1319 PROFILE_IFD, 1320 1, 1321 UNDEFINED_ENDIAN 1322 }, 1323 { // BaselineExposureOffset 1324 "BaselineExposureOffset", 1325 0xC7A5u, 1326 RATIONAL, 1327 PROFILE_IFD, 1328 1, 1329 UNDEFINED_ENDIAN 1330 }, 1331 { // ProfileLookTableEncoding 1332 "ProfileLookTableEncoding", 1333 0xC7A4u, 1334 LONG, 1335 PROFILE_IFD, 1336 1, 1337 UNDEFINED_ENDIAN 1338 }, 1339 { // ProfileHueSatMapEncoding 1340 "ProfileHueSatMapEncoding", 1341 0xC7A3u, 1342 LONG, 1343 PROFILE_IFD, 1344 1, 1345 UNDEFINED_ENDIAN 1346 }, 1347 { // OriginalDefaultFinalSize 1348 "OriginalDefaultFinalSize", 1349 0xC791u, 1350 LONG, 1351 IFD_0, 1352 2, 1353 UNDEFINED_ENDIAN 1354 }, 1355 { // OriginalBestQualityFinalSize 1356 "OriginalBestQualityFinalSize", 1357 0xC792u, 1358 LONG, 1359 IFD_0, 1360 2, 1361 UNDEFINED_ENDIAN 1362 }, 1363 { // OriginalDefaultCropSize 1364 "OriginalDefaultCropSize", 1365 0xC793u, 1366 LONG, 1367 IFD_0, 1368 2, 1369 UNDEFINED_ENDIAN 1370 }, 1371 { // NewRawImageDigest 1372 "NewRawImageDigest", 1373 0xC7A7u, 1374 BYTE, 1375 IFD_0, 1376 16, 1377 UNDEFINED_ENDIAN 1378 }, 1379 { // RawToPreviewGain 1380 "RawToPreviewGain", 1381 0xC7A8u, 1382 DOUBLE, 1383 PREVIEW_IFD, 1384 1, 1385 UNDEFINED_ENDIAN 1386 }, 1387 }; 1388 1389 } /*namespace img_utils*/ 1390 } /*namespace android*/ 1391 1392 #endif /*IMG_UTILS_TIFF_TAG_DEFINITION_H*/ 1393