about summary refs log tree commit diff
path: root/converter/other/exif.h
blob: 57eb745b0bac87f3798486ecbb6f80051e391ad8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#ifndef EXIF_H_INCLUDED
#define EXIF_H_INCLUDED

#include <stdio.h>
#include "netpbm/pm_c_util.h"

#define MAX_COMMENT 2000

#if MSVCRT
    #define PATH_MAX _MAX_PATH
#endif

/*--------------------------------------------------------------------------
  This structure stores Exif header image elements in a simple manner
  Used to store camera data as extracted from the various ways that it can be
  stored in an exif header
--------------------------------------------------------------------------*/
typedef struct {
    char  CameraMake   [32];
    char  CameraModel  [40];
    char  DateTime     [20];
    float XResolution;
    float YResolution;
    int   Orientation;
    int   IsColor;
    int   FlashUsed;
    float FocalLength;
    float ExposureTime;
    float ApertureFNumber;
    float Distance;
    int   HaveCCDWidth;  /* boolean */
    float CCDWidth;
    float ExposureBias;
    int   Whitebalance;
    int   MeteringMode;
    int   ExposureProgram;
    int   ISOequivalent;
    int   CompressionLevel;
    char  Comments[MAX_COMMENT];

    const unsigned char * ThumbnailPointer;  /* Pointer at the thumbnail */
    unsigned ThumbnailSize;     /* Size of thumbnail. */

    const char * DatePointer;
} exif_ImageInfo;


/* Prototypes for exif.c functions. */

void 
exif_parse(const unsigned char * const exifSection, 
           unsigned int          const length,
           exif_ImageInfo *      const imageInfoP, 
           bool                  const wantTagTrace,
           const char **         const errorP);

void 
exif_showImageInfo(const exif_ImageInfo * const imageInfoP,
                   FILE *                 const fileP);

#endif