Exif-Daten in der Medien-Verwaltung
Das „Exchangeable Image File Format“ (Exif) ist ein Standardformat für das Abspeichern von Metadaten in digitalen Bildern. Auch in FirstSpirit können Exif-Daten verwendet werden: Je nach Konfiguration durch den Vorlagenentwickler können diese Daten in der Medien-Verwaltung auf dem Reiter „Metadaten“ eines Bildes angezeigt und ggf. auch verändert werden. Dabei kann es sich unter anderem um Daten wie Kamerahersteller und -modell, Aufnahmedatum und -uhrzeit, Brennweite und Belichtungszeit handeln.
Dazu kann eine Metadaten-Vorlage erstellt oder erweitert werden (siehe dazu Seite Variablen in Metadaten). Auf dem Formular-Register werden dazu Eingabekomponenten definiert, die zur Aufnahme der Exif-Daten geeignet sind, z. B.
Information | Eingabekomponente |
---|---|
Text | |
Zahlen | |
Datum / Uhrzeit | |
Optionsauswahl | |
Für diese Eingabekomponenten müssen als Bezeichner (Parameter name) die entsprechenden Tags als Hexadezimalwert, die über den Exif-Standard definiert sind (siehe dazu http://www.exif.org/Exif2-2.PDF) bzw. Angaben des Kameraherstellers verwendet werden. Jeder Hexadezimalwert muss zur Verarbeitung durch FirstSpirit zusätzlich mit dem Präfix FS_ versehen werden, z. B.
Aufnahmeparameter | Bezeichner (Parameter name) |
---|---|
Kamerahersteller | FS_0x010F |
Kameramodell | FS_0x0110 |
Ausrichtung | FS_0x0112 |
Horizontale Auflösung | FS_0x011A |
Vertikale Auflösung | FS_0x011B |
Auflösungseinheit | FS_0x0128 |
Verschlusszeit | FS_0x829A |
Filmempfindlichkeit nach ISO | FS_0x8827 |
Aufnahmedatum und -zeit | FS_0x9003 |
Blendeneinstellung | FS_0x9202 |
Linsenbrennweite | FS_0x920A |
Beispiel-Code für das Metadaten-Formular
<CMS_INPUT_TEXT name="FS_0x010F" hFill="yes" singleLine="yes" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Camera manufacturer (FS_0x010F)"/>
<LANGINFO lang="DE" label="Kamerahersteller (FS_0x010F)"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
<CMS_INPUT_TEXT name="FS_0x0110" hFill="yes" singleLine="yes" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Camera model (FS_0x0110)"/>
<LANGINFO lang="DE" label="Kameramodell (FS_0x0110)"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
<CMS_INPUT_COMBOBOX name="FS_0x0112" hFill="yes" singleLine="yes" useLanguages="no">
<ENTRIES>
<ENTRY value="0">
<LANGINFOS>
<LANGINFO lang="*" label="Unknown"/>
<LANGINFO lang="DE" label="Unbekannt"/>
</LANGINFOS>
</ENTRY>
<ENTRY value="1">
<LANGINFOS>
<LANGINFO lang="*" label="Top left"/>
<LANGINFO lang="DE" label="Oben links"/>
</LANGINFOS>
</ENTRY>
<ENTRY value="2">
<LANGINFOS>
<LANGINFO lang="*" label="Top right"/>
<LANGINFO lang="DE" label="Oben rechts"/>
</LANGINFOS>
</ENTRY>
<ENTRY value="3">
<LANGINFOS>
<LANGINFO lang="*" label="Bottom right"/>
<LANGINFO lang="DE" label="Unten rechts"/>
</LANGINFOS>
</ENTRY>
<ENTRY value="4">
<LANGINFOS>
<LANGINFO lang="*" label="Bottom left"/>
<LANGINFO lang="DE" label="Unten links"/>
</LANGINFOS>
</ENTRY>
<ENTRY value="5">
<LANGINFOS>
<LANGINFO lang="*" label="Left top"/>
<LANGINFO lang="DE" label="Links oben"/>
</LANGINFOS>
</ENTRY>
<ENTRY value="6">
<LANGINFOS>
<LANGINFO lang="*" label="Right top"/>
<LANGINFO lang="DE" label="Rechts oben"/>
</LANGINFOS>
</ENTRY>
<ENTRY value="7">
<LANGINFOS>
<LANGINFO lang="*" label="Right bottom"/>
<LANGINFO lang="DE" label="Rechts unten"/>
</LANGINFOS>
</ENTRY>
<ENTRY value="8">
<LANGINFOS>
<LANGINFO lang="*" label="Left bottom"/>
<LANGINFO lang="DE" label="Links unten"/>
</LANGINFOS>
</ENTRY>
</ENTRIES>
<LANGINFOS>
<LANGINFO lang="*" label="Orientation (FS_0x0112)"/>
<LANGINFO lang="DE" label="Ausrichtung (FS_0x0112)"/>
</LANGINFOS>
</CMS_INPUT_COMBOBOX>
<CMS_INPUT_NUMBER name="FS_0x011A" type="long" hFill="yes" singleLine="yes" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Horizontal resolution (FS_0x011A)"/>
<LANGINFO lang="DE" label="Horizontale Auflösung (FS_0x011A)"/>
</LANGINFOS>
</CMS_INPUT_NUMBER>
<CMS_INPUT_NUMBER name="FS_0x011B" type="long" hFill="yes" singleLine="yes" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Vertical resolution (FS_0x011B)"/>
<LANGINFO lang="DE" label="Vertikale Auflösung (FS_0x011B)"/>
</LANGINFOS>
</CMS_INPUT_NUMBER>
<CMS_INPUT_COMBOBOX name="FS_0x0128" hFill="yes" singleLine="yes" useLanguages="no">
<ENTRIES>
<ENTRY value="0">
<LANGINFOS>
<LANGINFO lang="*" label="Unknown"/>
<LANGINFO lang="DE" label="Unbekannt"/>
</LANGINFOS>
</ENTRY>
<ENTRY value="1">
<LANGINFOS>
<LANGINFO lang="*" label="No-unit"/>
<LANGINFO lang="DE" label="Keine Einheit"/>
</LANGINFOS>
</ENTRY>
<ENTRY value="2">
<LANGINFOS>
<LANGINFO lang="*" label="Inch"/>
<LANGINFO lang="DE" label="Zoll"/>
</LANGINFOS>
</ENTRY>
<ENTRY value="3">
<LANGINFOS>
<LANGINFO lang="*" label="Centimeter"/>
<LANGINFO lang="DE" label="Zentimeter"/>
</LANGINFOS>
</ENTRY>
</ENTRIES>
<LANGINFOS>
<LANGINFO lang="*" label="Resolution unit (FS_0x0128)"/>
<LANGINFO lang="DE" label="Auflösungseinheit (FS_0x0128)"/>
</LANGINFOS>
</CMS_INPUT_COMBOBOX>
<CMS_INPUT_DATE name="FS_0x0132" hFill="yes" singleLine="yes" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Change date and time (FS_0x0132)" format="yyyy:MM:dd HH:mm:ss"/>
<LANGINFO lang="DE" label="Änderungsdatum und -zeit (FS_0x0132)" format="yyyy:MM:dd HH:mm:ss"/>
</LANGINFOS>
</CMS_INPUT_DATE>
<CMS_INPUT_NUMBER name="FS_0x829A" type="double" hFill="yes" singleLine="yes" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Exposure time (FS_0x829A)" format="#.#######################"/>
<LANGINFO lang="DE" label="Verschlusszeit (FS_0x829A)" format="#.#######################"/>
</LANGINFOS>
</CMS_INPUT_NUMBER>
<CMS_INPUT_NUMBER name="FS_0x8827" type="double" hFill="yes" singleLine="yes" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="ISO speed rating (FS_0x8827)" format="#.#######################"/>
<LANGINFO lang="DE" label="Filmempfindlichkeit nach ISO (FS_0x8827)" format="#.#######################"/>
</LANGINFOS>
</CMS_INPUT_NUMBER>
<CMS_INPUT_DATE name="FS_0x9003" hFill="yes" singleLine="yes" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Creation date and time (FS_0x9003)" format="yyyy:MM:dd HH:mm:ss"/>
<LANGINFO lang="DE" label="Aufnahmedatum und -zeit (FS_0x9003)" format="yyyy:MM:dd HH:mm:ss"/>
</LANGINFOS>
</CMS_INPUT_DATE>
<CMS_INPUT_NUMBER name="FS_0x9202" type="double" hFill="yes" singleLine="yes" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Aperture (FS_0x9202)" format="#.#######################"/>
<LANGINFO lang="DE" label="Blendeneinstellung (FS_0x9202)" format="#.#######################"/>
</LANGINFOS>
</CMS_INPUT_NUMBER>
<CMS_INPUT_NUMBER name="FS_0x920A" type="double" hFill="yes" singleLine="yes" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Lens focal length (FS_0x920A)" format="#.#######################"/>
<LANGINFO lang="DE" label="Linsenbrennweite (FS_0x920A)" format="#.#######################"/>
</LANGINFOS>
</CMS_INPUT_NUMBER>
Die Exif-Syntax inklusive Beispiel wird unter http://www.w3.org/2003/12/exif/ beschrieben.
Bedingte Anzeige
Es bietet sich an, die Eingabekomponenten für Exif-Daten auf der Metadaten-Vorlage nur dann anzuzeigen, wenn es sich um ein Bild mit Exif-Daten handelt bzw. wenn Werte für diese Eingabekomponente vorhanden sind.
Dazu kann auf dem Register Regeln der Metadaten-Vorlage mittels des PROPERTY-Tags in Verbindung mit der Eigenschaft EMPTY geprüft werden, ob die jeweilige Eingabekomponente leer ist. Diese kann dann über die Eigenschaft VISIBLE ausgeblendet werden.
Beispiel für das FS_0x010F-Feld (Kamerahersteller):
<!-- hide empty Exif field 0x010F -->
<ON_EVENT>
<WITH>
<NOT>
<PROPERTY source="FS_0x010F" name="EMPTY"/>
</NOT>
</WITH>
<DO>
<PROPERTY source="FS_0x010F" name="VISIBLE"/>
</DO>
</ON_EVENT>