1 /****************************************************************************** 2 * $Id: gdalexif.h 45d3d60d2b90c52d7ef69f5a9336219e4c6069d7 2017-09-14 09:50:30Z Even Rouault $ 3 * 4 * Project: JPEG JFIF Driver 5 * Purpose: Implement GDAL JPEG Support based on IJG libjpeg. 6 * Author: Frank Warmerdam, warmerdam@pobox.com 7 * 8 ****************************************************************************** 9 * Copyright (c) 2000, Frank Warmerdam 10 * Copyright (c) 2017, Even Rouault 11 * 12 * Permission is hereby granted, free of charge, to any person obtaining a 13 * copy of this software and associated documentation files (the "Software"), 14 * to deal in the Software without restriction, including without limitation 15 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 16 * and/or sell copies of the Software, and to permit persons to whom the 17 * Software is furnished to do so, subject to the following conditions: 18 * 19 * The above copyright notice and this permission notice shall be included 20 * in all copies or substantial portions of the Software. 21 * 22 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 23 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 24 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 25 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 26 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 27 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 28 * DEALINGS IN THE SOFTWARE. 29 ****************************************************************************/ 30 31 //! @cond Doxygen_Suppress 32 33 typedef enum { 34 TIFF_NOTYPE = 0, /* placeholder */ 35 TIFF_BYTE = 1, /* 8-bit unsigned integer */ 36 TIFF_ASCII = 2, /* 8-bit bytes w/ last byte null */ 37 TIFF_SHORT = 3, /* 16-bit unsigned integer */ 38 TIFF_LONG = 4, /* 32-bit unsigned integer */ 39 TIFF_RATIONAL = 5, /* 64-bit unsigned fraction */ 40 TIFF_SBYTE = 6, /* !8-bit signed integer */ 41 TIFF_UNDEFINED = 7, /* !8-bit untyped data */ 42 TIFF_SSHORT = 8, /* !16-bit signed integer */ 43 TIFF_SLONG = 9, /* !32-bit signed integer */ 44 TIFF_SRATIONAL = 10, /* !64-bit signed fraction */ 45 TIFF_FLOAT = 11, /* !32-bit IEEE floating point */ 46 TIFF_DOUBLE = 12, /* !64-bit IEEE floating point */ 47 TIFF_IFD = 13 /* %32-bit unsigned integer (offset) */ 48 } GDALEXIFTIFFDataType; 49 50 /* 51 * TIFF Image File Directories are comprised of a table of field 52 * descriptors of the form shown below. The table is sorted in 53 * ascending order by tag. The values associated with each entry are 54 * disjoint and may appear anywhere in the file (so long as they are 55 * placed on a word boundary). 56 * 57 * If the value is 4 bytes or less, then it is placed in the offset 58 * field to save space. If the value is less than 4 bytes, it is 59 * left-justified in the offset field. 60 */ 61 typedef struct { 62 GUInt16 tdir_tag; /* see below */ 63 GUInt16 tdir_type; /* data type; see below */ 64 GUInt32 tdir_count; /* number of items; length in spec */ 65 GUInt32 tdir_offset; /* byte offset to field data */ 66 } GDALEXIFTIFFDirEntry; 67 68 GByte* EXIFCreate(char** papszEXIFMetadata, 69 GByte* pabyThumbnail, 70 GUInt32 nThumbnailSize, 71 GUInt32 nThumbnailWidth, 72 GUInt32 nThumbnailHeight, 73 GUInt32 *pnOutBufferSize); 74 75 76 //! @endcond 77