## Exif

Exif — Exchangeable Image File Format (EXIF)

## Stability Level

Stable, unless otherwise indicated

## Synopsis

    #include <libtracker-extract/tracker-extract.h>

                        TrackerExifData;
    gboolean            tracker_exif_read                   (unsigned char *buffer,
                                                             size_t len,
                                                             const gchar *uri,
                                                             TrackerExifData *data);

## Description

Exchangeable Image File Format (EXIF) is a specification for the image file format used by digital cameras. The specification uses the existing JPEG, TIFF Rev. 6.0, and RIFF WAV file formats, with the addition of specific metadata tags. It is not supported in JPEG 2000, PNG, or GIF.

This API is provided to remove code duplication between extractors using these standards.

## Details

### TrackerExifData

    typedef struct {
    	gchar *y_dimension;
    	gchar *x_dimension;
    	gchar *image_width;
    	gchar *document_name;
    	gchar *time;
    	gchar *time_original;
    	gchar *artist;
    	gchar *user_comment;
    	gchar *description;
    	gchar *make;
    	gchar *model;
    	gchar *orientation;
    	gchar *exposure_time;
    	gchar *fnumber;
    	gchar *flash;
    	gchar *focal_length;
    	gchar *iso_speed_ratings;
    	gchar *metering_mode;
    	gchar *white_balance;
    	gchar *copyright;
    	gchar *software;
    } TrackerExifData;

### tracker_exif_read ()

    gboolean            tracker_exif_read                   (unsigned char *buffer,
                                                             size_t len,
                                                             const gchar *uri,
                                                             TrackerExifData *data);

This function takes `len` bytes of `buffer` and runs it through the EXIF library. The result is that `data` is populated with the EXIF data found in `uri`.

`buffer` : | a chunk of data with exif data in it.
`len` : | the size of `buffer`.
`uri` : | the URI this is related to.
`data` : | a pointer to a TrackerExifData struture to populate.
Returns : | `TRUE` if the `data` was populated successfully, otherwise `FALSE` is returned.

Since 0.8