Metadaten - Exif und IPTC

Digitale Bilder können außer dem eigentlichen Bild weitere Informationen enthalten.

Dies wird insbesondere bei Fotos genutzt, die von Digitalkameras erzeugt wurden. So werden dort der Name des Kameraherstellers, die Bezeichnung des Kameramodells, Belichtungszeit, Blende, Aufnahmedatum und viele weitere Informationen abgelegt. Der Aufbau dieser Informationen ist in einer Norm, "Exchangeable image file format for Digital Still Cameras", kurz Exif genannt, beschrieben.

Alle Bilder vom Typ JPG können aber auch allgemeine Information enthalten, deren Aufbau die IPTC festgelegt hat.

Da die Metadaten-Auswertung teilweise sehr aufwändig ist und die internen Strukturen von JoJoThumb erweitert, ist der Ausleseprozess explizit einzuschalten. Der Schalter befindet sich bei den  HTML-Grundeinstellungen. Die einzelnen Informationen werden in Exif/IPTC-Einträgen abgelegt und können durch  JoJoScript-Funktionen ausgewertet werden.

Um die gesamte folgende Funktionalität nutzen zu können, muss ein Grundwissen über die entsprechenden Normen vorhanden sein; insbesondere die Bedeutung von Eintragsnummern (Tags), Eintragsbezeichnungen und Eintragsbedeutungen.

Leider werden die in der Norm beschriebenen Vorgaben von den Herstellern nicht immer gleich interpretiert. Zusätzlich sieht die Exif-Norm einen Hersteller/Geräteabhängigen Teil (Makernote) in dieser Informationssammlung vor. Aus diesem Grund muss eine Auswertung teilweise an diese Gegebenheiten angepasst werden.
Für JoJoThumb bedeutet dies, dass es möglicherweise an nicht bekannte Kameramodelle angepasst werden muss.
Um etwas auf diese Tatsache vorbereitet zu sein, ist ein Teil der Metadatendefinition in eine externe Beschreibungsdatei (metadata.def im Installationsverzeichnis von JoJoThumb) ausgelagert worden. Im folgenden sind das Format dieser Datei sowie einige Exif- und IPTC-Einträge mit ihrer Nummer und ihrer Bezeichnung beschrieben.

Aufbau der Metadaten-Beschreibungsdatei (metadata.def)

Erstes Zeichen
einer Zeile
Zeileninhalt
* Rest der Zeile ist Kommentar
# Sektion
 
Sektionsbezeichnung Bedeutung
version nr Die Versionsangabe muss zwingend als erste Sektion vorhanden sein
main

Image File Directory 0 (IFD 0)
Hierüber sind alle möglichen allgemeinen Einträge erreichbar.
Siehe Verzeichnis der Exif-Einträge

thumbnail

Image File Directory 1 (IFD 1)
Hierüber sind alle möglichen allgemeinen Einträge für Thumbnails, die zusätzlich in den Bilder abgelegt wurden, erreichbar.
Siehe Verzeichnis der Exif-Einträge

makernote gerätegruppe

Im IFD 0 gibt es einen speziellen Eintrag, in dem die Hersteller weitere Informationen nach eigener Vorstellung ablegen können. In dieser Sektion können diese Einträge rudimentär beschrieben werden (leider sind sie sehr herstellerabhängig).
Siehe Verzeichnis der Exif-Einträge

Im Anschluss an die Sektionsbezeichnung muss der Name der Gerätegruppe, für den diese Makernote gilt, angegeben werden.
Zur Zeit sind folgende Gerätegruppen realisiert:

Gerätegruppe
bzw. Hersteller
Modelle
(da nicht alle Modelle getestet werden können, gilt die Aussage bis auf Widerruf)
ASAHI01 alle Pentax-Modelle außer E-Serie und die bei ASAHI02 aufgeführten
ASAHI02 Optio 230
CANON01 alle
CASIO01 alle Casio-Modelle, außer die bei CASIO02 aufgeführten
CASIO02 EX-M1, EX-S1, QV-R3, QV-R4
EPSON01 alle
FUJIFILM01 alle
MINOLTA01 alle
OLYMPUS01 alle Agfa, Epson, Olympus, Sanyo
PANASONIC01 alle
NIKON01 D100, E700, E800, E900, E900S, E910, E950, E2000, E4500, E5700
NIKON02 für alle übrigen Nikonmodelle, z.B. D1, E880, E885, E990, E995, E2500, E5000
gps

Global positioning System (gps)
Einige Kameramodelle können Information über den Standort, an dem das Foto gemacht wurde speichern. Diese Informationen werden über das GPS bezogen.
Siehe Verzeichnis der Exif-Einträge

focalequiv

Zu einzelnen Kameramodellen kann hier ein Multiplikator eingetragen werden, wodurch dann eine Brennweitenentsprechung zu einer 35mm-Kamera ermittelt werden kann

iptc

Hieran können dann die Bezeichnungen der jeweiligen IPTC-Tags folgen


z.B.
# version 2
# makernote nikon02
# iptc
+ Beschreibung des Eintrags der vorher bezeichneten Sektion
  • Für Einträge der Sektionen main, thumbnail, makernote und gps gilt:
    Eintragnummer (INTEGER), Eintragsposition (INTEGER), Format (INTEGER), Bezeichnung (STRING)

    Die Eintragsnummer ist z.B. der Liste der Einträge der Norm  Exif zu entnehmen.

    Bei bestimmten Einträgen können mehrere Informationen abgelegt sein. Hier ist die Position in dieser Informationsfolge anzugeben. Ist der Basiseintrag bemeint, ist eine 0 als Position anzugeben.

    Die Formatangabe gilt für die Anforderung des Exif-Eintrags mit der Funktion  exifnice.

    spezieller Exif-Eintrag Format Darstellung Anmerkungen
    ExposureTime - 1/100  
    FNumber - f2.8  
    ComponentsConfiguration - diverse  
    ShutterSpeedValue - 1/100  
    ApertureValue - f2.8  
    MaxApertureValue - f2.8  
    FocalLength 0 5.8mm tatsächliche Brennweite
    1 58mm 35mm Kamera entsprechende Brennweite
    GPSLongitude
    GPSLatitude
    0 2 26' 14.16" Grad Minuten Sekunden
    1 2° 26' 14.16" Grad Minuten Sekunden
    2 2.4372666666667 Grad (in dezimaler Darstellung)
    3 2° 26.236' Grad Minuten (in dezimaler Darstellung)
     
    allgemeiner
    Exif-Eintrag
    Format Darstellung Anmerkungen
    Integer-Einträge 0 Sunny

    oder

    48

    oder

    48,49,50,4,...(32)

    Wenn möglich wird die Beschreibung aus der Exif-Beschreibungsdatei entnommen

    Komponenten werden durch Komma getrennt (es werden aber max. 10 Elemente dargestellt)

    1 0123___ Die einzelnen Komponenten werden als ASCII Zeichen interpretiert und zu einem String zusammengesetzt. ASCII-Zeichen mit einem Wert<32 werden als _ dargestellt.
    2 0123 Die einzelnen Komponenten werden als Unicode-Zeichen interpretiert (je 2 Byte) und zu einem String zusammengesetzt.
    Double-Einträge 0 1.23456

    oder

    1.23,1.48,2.45,4.76,...(15)

    Komponenten werden durch Komma getrennt (es werden aber max. 10 Elemente dargestellt)
    10 0.0
    11 0mm
    12 0.0cm
    13 0.00dm
    14 0.000m
    String-Einträge 0 abcde keine Aufbereitung
    1 datum Hier wird versucht, aus dem String ein Datum zu ermitteln
    10 0.0 Einige Einträge enthalten Daten in der Form 1000/500

    Diese Informationen können in Doublewerte umgewandelt werden
    11 0mm
    12 0.0cm
    13 0.00dm
    14 0.000m

     

  • Für Einträge der Sektion focalequiv gilt:
    Kamerabezeichnung (STRING), Multiplikator (INTEGER oder DOUBLE)

Die Kamerabezeichnung muss der Bezeichnung im Exif-Eintrag Model entsprechen (ohne eine eventuell in Klammern vorhandene Versionsbezeichnung)

  • Für Einträge der Sektion iptc gilt:
    Tagnummer (INTEGER), Tagbezeichnung (STRING)

z.B. Name des Herstellers
+ 271, 0, 0, Make

z.B. Bezeichnung des Kameramodells
+ 272, 0, 0, Model

z.B. 35mm-Äquivalent einer Canon G2
+ Canon PowerShot G2, 4.86

z.B. IPTC-Tagbezeichnung
+ 5, Object Name

! Beschreibung des Inhalts des vorher bezeichneten Exif-Eintrags
Inhalt (INTEGER), Bezeichnung (STRING)

Mit der Inhaltsbeschreibung eines Exif-Eintrags wird die Funktion  exifnice in die Lage versetzt, Rohinhalte, die zu verschiedenen Exif-Einträgen vorliegen, in eine lesbare Form zu überführen.
So wird z.B. statt 1 als Ergebnis es Erfragens der Art der Lichtquelle die Information Tageslicht angeliefert.

z.B.
+ 0x128, 0, 0, ResolutionUnit
! 1, keine Einheit
! 2, Inch
! 3, Zentimeter

+ 0x1, 5, 0, FlashMode
! 0, not fired
! 1, auto
! 2, on
! 3, red-eye reduction
! 4, slow synchro
! 5, auto+red-eye reduction
! 6, on+red-eye reduction
! 16, external flash

 

Ausgewählte Exif-Einträge der Norm Exif

Sektion Main
Hexadezimalwert Dezimalwert Bezeichnung
0x9202 37378 ApertureValue
0x9203 37379 BrightnessValue
0xA302 41730 CFAPattern
0xA001 40961 ColorSpace
0x9101 37121 ComponentsConfiguration
0x9102 37122 CompressedBitsPerPixel
0x8298 33432 Copyright
0x132 306 DateTime
0x9004 36868 DateTimeDigitized
0x9003 36867 DateTimeOriginal
0xA005 40965 ExifInteroperabilityOffset
0x8769 34665 ExifOffset
0x9000 36864 ExifVersion
0x9204 37380 ExposureBiasValue
0xA215 41493 ExposureIndex
0x8822 34850 ExposureProgram
0x829A 33434 ExposureTime
0xA300 41728 FileSource
0x9209 37385 Flash
0xA000 40960 FlashPixVersion
0x829D 33437 FNumber
0x920A 37386 FocalLength
0xA210 41488 FocalPlaneResolutionUnit
0xA20E 41486 FocalPlaneXResolution
0xA20F 41487 FocalPlaneYResolution
0x10E 270 ImageDescription
0x1 1 InteroperabilityIndex
0x2 2 InteroperabilityVersion
0x8827 34855 ISOSpeedRatings
0x9208 37384 LightSource
0x10F 271 Make
0x927C 37500 MakerNote
0x9205 37381 MaxApertureValue
0x9207 37383 MeteringMode
0x110 272 Model
0x112 274 Orientation
0xA002 40962 PixelXDimension
0xA003 40963 PixelYDimension
0x13F 319 PrimaryChromaticities
0x214 532 ReferenceBlackWhite
0x1000 4096 RelatedImageFileFormat
0x1002 4098 RelatedImageLength
0x1001 4097 RelatedImageWidth
0xA004 40964 RelatedSoundFile
0x128 296 ResolutionUnit
0xA301 41729 SceneType
0xA217 41495 SensingMethod
0x9201 37377 ShutterSpeedValue
0x131 305 Software
0x9206 37382 SubjectDistance
0x9290 37520 SubSecTime
0x9292 37522 SubSecTimeDigitized
0x9291 37521 SubSecTimeOriginal
0x9286 37510 UserComment
0x13E 318 WhitePoint
0x11A 282 XResolution
0x211 529 YCbCrCoefficients
0x213 531 YCbCrPositioning
0x212 530 YCbCrSubSampling
0x11B 283 YResolution
     
0x12D 301 TransferFunction
0x13B 315 Artist
0x828F 33423 BatteryLevel
0x83BB 33723 IPTC/NAA
0x8773 34675 InterColorProfile
0x8824 34852 SpectralSensitivity
0x8825 34853 GPSInfo
0xA20B 41483 FlashEnergy
0xA20C 41484 SpatialFrequencyResponse
0xA214 41492 SubjectLocation
0x8828 34856 OECF
0x10A 266 FillOrder
0x10D 269 DocumentName
0x156 342 TransferRange
0x200 512 JPEGProc
0x828D 33421 CFARepeatPatternDim
     
0x9C9B 40091 XP-Titel
0x9C9C 40092 XP-Kommentar
0x9C9D 40093 XP-Autor
0x9C9E 40094 XP-Stichwort
0x9C9F 40095 XP-Thema

Die gelb markierten Einträge werden von Microsoft zum Speichern der JPG-Eigenschaften über den Eigenschaftsdialog unter Windows XP benutzt. Die Inhalte werden als Unicode-Zeichen gespeichert. Zum Auslesen mit Exifnice ist deshalb die Formatangabe 2 zu benutzen.

Sektion Thumbnail
Hexadezimalwert Dezimalwert Bezeichnung
0x100 256 ImageWidth
0x101 257 ImageLength
0x102 258 BitsPerSample
0x103 259 Compression
0x106 262 PhotometricInterpretation
0x111 273 StripOffsets
0x115 277 SamplesPerPixel
0x116 278 RowsPerStrip
0x117 279 StripByteCounts
0x11C 284 PlanarConfiguration
0x201 513 JpegIFOffset
0x202 514 JpegIFCount

 

Ausgewählte IPTC-Einträge

Hexadezimalwert Dezimalwert Bezeichnung
0x05 5 Object Name
0x37 55 Created date
0x5a 90 City
0x65 101 Country
0xbc 188 Owner id