Main Page | Class List | File List | File Members

exif.c File Reference

provides a number of functions to get and condition EXIF data found in jpeg files More...

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <time.h>
#include <errno.h>
#include <ctype.h>
#include <limits.h>
#include "../include/jhead.h"
#include <utime.h>
#include <sys/types.h>
#include <unistd.h>

Classes

struct  TagTable_t
 Structure to associate EXIF tags to english descriptions. More...


Defines

#define NUM_FORMATS   12
#define FMT_BYTE   1
#define FMT_STRING   2
#define FMT_USHORT   3
#define FMT_ULONG   4
#define FMT_URATIONAL   5
#define FMT_SBYTE   6
#define FMT_UNDEFINED   7
#define FMT_SSHORT   8
#define FMT_SLONG   9
#define FMT_SRATIONAL   10
#define FMT_SINGLE   11
#define FMT_DOUBLE   12
#define TAG_EXIF_OFFSET   0x8769
#define TAG_INTEROP_OFFSET   0xa005
#define TAG_MAKE   0x010F
#define TAG_MODEL   0x0110
#define TAG_ORIENTATION   0x0112
#define TAG_EXPOSURETIME   0x829A
#define TAG_FNUMBER   0x829D
#define TAG_SHUTTERSPEED   0x9201
#define TAG_APERTURE   0x9202
#define TAG_MAXAPERTURE   0x9205
#define TAG_FOCALLENGTH   0x920A
#define TAG_DATETIME_ORIGINAL   0x9003
#define TAG_USERCOMMENT   0x9286
#define TAG_SUBJECT_DISTANCE   0x9206
#define TAG_FLASH   0x9209
#define TAG_FOCALPLANEXRES   0xa20E
#define TAG_FOCALPLANEUNITS   0xa210
#define TAG_EXIF_IMAGEWIDTH   0xA002
#define TAG_EXIF_IMAGELENGTH   0xA003
#define TAG_EXPOSURE_BIAS   0x9204
#define TAG_WHITEBALANCE   0x9208
#define TAG_METERING_MODE   0x9207
#define TAG_EXPOSURE_PROGRAM   0x8822
#define TAG_ISO_EQUIVALENT   0x8827
#define TAG_COMPRESSION_LEVEL   0x9102
#define TAG_THUMBNAIL_OFFSET   0x0201
#define TAG_THUMBNAIL_LENGTH   0x0202
#define DIR_ENTRY_ADDR(Start, Entry)   (Start+2+12*(Entry))

Functions

void process_EXIF (unsigned char *ExifSection, unsigned int length)
 Process a EXIF marker. Describes all the drivel that most digital cameras include...

int RemoveThumbnail (unsigned char *ExifSection, unsigned int Length)
 Remove thumbnail out of the exif image.

int Exif2tm (struct tm *timeptr, char *ExifTime)
 Convert exif time to Unix time structure.

void ShowImageInfo (void)
 Show the collected image info, displaying camera F-stop and shutter speed in a consistent and legible fashion.

void ShowConciseImageInfo (void)
 Summarize highlights of image info on one line (suitable for grep-ing).


Detailed Description

provides a number of functions to get and condition EXIF data found in jpeg files

Author:
Thomas Niemann (DOxygen comments added by Tim Jacobs)
Date:
2004.11.13

Function Documentation

int Exif2tm struct tm *  timeptr,
char *  ExifTime
 

Convert exif time to Unix time structure.

Returns:
1 if success, 0 otherwise.
Parameters:
timeptr Pointer to UNIX time structure
ExifTime Exif time value

void process_EXIF unsigned char *  ExifSection,
unsigned int  length
 

Process a EXIF marker. Describes all the drivel that most digital cameras include...

Parameters:
ExifSection 
length 

int RemoveThumbnail unsigned char *  ExifSection,
unsigned int  Length
 

Remove thumbnail out of the exif image.

Returns:
How far the non thumbnail data went.
Parameters:
ExifSection 
length 


Generated on Sun Nov 14 15:28:24 2004 for clens by doxygen 1.3.6