Klasse zum lesen der EXIF-Informationen

Für das ReNamer Programm brauchte ich die EXIF-Informationen. Einige schon im Internet vorhandene Quellcodes probiert. Die waren jedoch teilweise fehlerhaft, liefen nicht mit mit dem BCB oder auch nur schlecht zu bedienen. Alos eine eigene Klasse entworfen.

Die EXIF-Daten sind in Form von nummerischen Key/Value - Paaren in den Dateien verankert. Es sind also folgende Schritte notwendig:

  1. finden der EXIF-Daten
  2. lesen der Key/Value Daten
  3. Interpretieren der Keys
  4. Interpretieren der Werte

Die Klasse übernimmt die Punkte 1-3.

GExif

public: __fastcall GExif(String file); Konstruktor - Der Parameter enthält den kompletten Pfad der Datei, deren EXIF-Daten gelesen werden sollen
  bool isError; Zeigt an, ob ein Fehler aufgetreten ist
  String __fastcall GetLastError(); Gibt den Fehler als String zurück
  TStringList* __fastcall GetListWithNames(); Gibt eine Key=Value Stringlist mit den gefunden Daten zurück. Dabei ist der Keywert durch ein Text ersetzt worden
  TStringList* __fastcall GetListWithTags(); Gibt eine Key=Value Stringlist mit den gefunden Daten zurück. Dabei ist der Keywert erhalten geblieben
  String __fastcall GetValueByTag(int Key); Gibt von einem beliebigen Key den Textwert zurück

Es wäre kein Problem gewesen, auch die Änderung von EXIF-Daten einzubauen. Jeoch hat die GDI+ Klasse Image von Microsoft so einen kleinen entscheidenen Nachteil:

Ich finde das ein ziemlich starkes Stück, solch einen Designfehler einzubauen und das Problem auf die Entwickler abzuwälzen. Sicherlich gibt es Lösungen dafür, doch als ich da gelesen hatte, ist mir die Lust vergangen.....


Download

GEXIF nur die Klasse 6 Kb
GEXIF und DemoKlasse mit Demoprojekt 743 KB

Zur Übersicht