To better understand what exif tag is in which ifd I wrote a little exifviewer. A simple little programs which list all exif-tags from one picture and the ifd’s the tag belongs to.
#include <stdio.h>
#include <libexif/exif-data.h>
void display_entry(ExifEntry *entry, void *null) {
char b[1024];
exif_entry_get_value (entry, b, sizeof(b));
printf("%s: %s\n", exif_tag_get_name (entry->tag), b);
}
void display_content(ExifContent *content, void *null) {
printf("\nEXIFIFD: %s:\n---------\n\n", exif_ifd_get_name(exif_content_get_ifd(content)));
exif_content_foreach_entry (content, display_entry, NULL);
}
int main(int argc, char **argv) {
ExifData *data;
data = exif_data_new_from_file(argv[1]);
if(data == NULL || argc != 2) {
printf("Argument must be one valid jpg-file!\n");
return(1);
}
exif_data_foreach_content (data, display_content, NULL);
return 0;
}
Build it with(Install libexif-dev):
cc -lexif -lm -o exifviewer src/exifviewer.c
