GDAL
gdalexif.h
1/******************************************************************************
2 * $Id$
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 * SPDX-License-Identifier: MIT
13 ****************************************************************************/
14
16
17typedef enum
18{
19 TIFF_NOTYPE = 0, /* placeholder */
20 TIFF_BYTE = 1, /* 8-bit unsigned integer */
21 TIFF_ASCII = 2, /* 8-bit bytes w/ last byte null */
22 TIFF_SHORT = 3, /* 16-bit unsigned integer */
23 TIFF_LONG = 4, /* 32-bit unsigned integer */
24 TIFF_RATIONAL = 5, /* 64-bit unsigned fraction */
25 TIFF_SBYTE = 6, /* !8-bit signed integer */
26 TIFF_UNDEFINED = 7, /* !8-bit untyped data */
27 TIFF_SSHORT = 8, /* !16-bit signed integer */
28 TIFF_SLONG = 9, /* !32-bit signed integer */
29 TIFF_SRATIONAL = 10, /* !64-bit signed fraction */
30 TIFF_FLOAT = 11, /* !32-bit IEEE floating point */
31 TIFF_DOUBLE = 12, /* !64-bit IEEE floating point */
32 TIFF_IFD = 13 /* %32-bit unsigned integer (offset) */
33} GDALEXIFTIFFDataType;
34
35/*
36 * TIFF Image File Directories are comprised of a table of field
37 * descriptors of the form shown below. The table is sorted in
38 * ascending order by tag. The values associated with each entry are
39 * disjoint and may appear anywhere in the file (so long as they are
40 * placed on a word boundary).
41 *
42 * If the value is 4 bytes or less, then it is placed in the offset
43 * field to save space. If the value is less than 4 bytes, it is
44 * left-justified in the offset field.
45 */
46typedef struct
47{
48 GUInt16 tdir_tag; /* see below */
49 GUInt16 tdir_type; /* data type; see below */
50 GUInt32 tdir_count; /* number of items; length in spec */
51 GUInt32 tdir_offset; /* byte offset to field data */
52} GDALEXIFTIFFDirEntry;
53
54GByte CPL_DLL *EXIFCreate(char **papszEXIFMetadata, GByte *pabyThumbnail,
55 GUInt32 nThumbnailSize, GUInt32 nThumbnailWidth,
56 GUInt32 nThumbnailHeight, GUInt32 *pnOutBufferSize);
57
unsigned int GUInt32
Unsigned int32 type.
Definition: cpl_port.h:161
unsigned short GUInt16
Unsigned int16 type.
Definition: cpl_port.h:167
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:169