Start page / Advanced topics / Exif data

Exif data in the Media Store

Metadata input components for Exif data

“Exchangeable Image File Format” (Exif) is a standard for storing meta data in digital image files. Exif data can be also used in FirstSpirit: Depending on the configuration set by the template developer, this data can be displayed on the “Metadata” tab of a picture and if applicable can also be changed, e.g. camera manufacturer and model, date and time taken, focal length, exposure time.

To this end, a metadata template can be created or extended (see page Variables in metadata). To do this, input components suitable for acquisition of the Exif data are defined on the Form tab, e.g.

Information

Input component

Text
such as camera manufacturer and model

CMS_INPUT_TEXT

Numbers
such as picture width, height, film sensitivity (ISO), aperture setting, GPS data

CMS_INPUT_NUMBER

Date / time
e.g. date and time recorded

CMS_INPUT_DATE

Option selection
e.g. picture orientation (top left/right, bottom left/right, etc.), flash settings (not triggered, automatic, switched on, etc.)

CMS_INPUT_COMBOBOX

  

For these input components, the identifier used (name parameter) must be the corresponding tags as hexadecimal value, which are defined by the Exif standard (see http://www.cipa.jp/std/documents/e/DC-008-2012_E.pdf) or information of the camera manufacturer. Each hexadecimal value must also be assigned the prefix FS_ for processing by FirstSpirit, e.g.

Picture taking parameters

Identifier (Parameter name)

Camera manufacturer

FS_0x010F

Camera model

FS_0x0110

Orientation

FS_0x0112

Horizontal resolution

FS_0x011A

Vertical resolution

FS_0x011B

Resolution unit

FS_0x0128

Shutter speed

FS_0x829A

Film sensitivity to ISO

FS_0x8827

Date and time taken

FS_0x9003

Aperture setting

FS_0x9202

Focal length of lens

FS_0x920A

  

Example code for the metadata form

<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>

The Exif syntax including an example is described under http://www.w3.org/2003/12/exif/.

Conditional display

Ideally, the input components for Exif data should only be displayed on the metadata template if it concerns a picture with Exif data or if values are available for this input component.

To this end, on the Rules tab, the metadata template can be checked using the PROPERTY tag in conjunction with the EMPTY property, to establish whether the respective input component is empty. This can be hidden using the VISIBLE property.

Example for the FS_0x010F field (camera manufacturer):

<!-- 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>

© 2005 - 2022 Crownpeak Technology GmbH | All rights reserved. | FirstSpirit 2022.12 | Data privacy