GPS Koordinaten aus EXIF-Header auslesen

28/04/2010 - 14:01 von Michael Happ | Report spam
Hallo Gemeinde,

habe mir die EXIF Reader Klasse von sourceforge.net heruntergeladen.
Funktioniert soweit, nur: das Auslesen der GPS-Tags ist nicht
integriert. Ich kann mittels ExifTool von Phil Harvey die Koordinaten
in ein Textfile schreiben und dann auslesen, aber das ist natürlich
sehr umstàndlich.

Hat jemand ein Codeschnipsel zur Erweiterung der Exif-Klasse?

Gruß Michael
 

Lesen sie die antworten

#1 Jörg Ostendorp
03/05/2010 - 11:39 | Warnen spam
Hallo Michael, hallo zusammen,

habe mir die EXIF Reader Klasse von sourceforge.net heruntergeladen.
Funktioniert soweit, nur: das Auslesen der GPS-Tags ist nicht
integriert. Ich kann mittels ExifTool von Phil Harvey die Koordinaten
in ein Textfile schreiben und dann auslesen, aber das ist natürlich
sehr umstàndlich.

Hat jemand ein Codeschnipsel zur Erweiterung der Exif-Klasse?



Leider hab ich keine Antwort - die Frage beschàftigt mich allerdings auch
sehr (wenngleich sie zugegeben nur bedingt mit Access zu tun hat).

Da noch keine Antwort gekommen ist, fehlt vielleicht einfach der Anreiz?
Ich schreibe daher hiermit den Preis von *einem e-Plàtzchen* zur Belohnung
für sachdienliche Hinweise aus!

Möglicherweise hat jemand ja gerade nur keinen Code zur Hand, kann aber das
EXIF-Format zumindest erklàren. Genau das verstehe ich nàmlich nicht
(insbesondere das Offset-Gedöns). Dort steht nach meinem Verstàndnis, dass
der GPSinfo-Tag ein Pointer auf die dahinterlgende GPS-Tabelle sei. Diese
wiederum kann zwar eine variable Größe haben - die ersten Tags wie Latitude
und Longitude müssen aber immer gesetzt sein, solange der GPSInfo-Tag halt
etwas zurückgibt. Somit wàre mein erster Ansatz, einen Type mit den
einzelnen Pflicht-Tags zu erstellen und diesen dann per CopyMemory zu
füllen. Das funktioniert aber leider nicht, d.h. die Werte stimmen nicht.

BSP (im Form):
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory"
(ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)

Private Type GPSInfo_Detail
GPSVersionID(3) As Byte '4 * Byte
GPSLatitudeRef(1) As Byte '2 * Ascii
GPSLatitude(2) As Double '3 * Rational
GPSLongiudeRef(1) As Byte '2 * Ascii
GPSLongitude(2) As Double '3 * Rational
'etc
End Type

Private Sub Command0_Click()
Dim objExif As New ExifReader
Dim lngExifInfo As Long
Dim gpsTest As GPSInfo_Detail

objExif.Load "MeinBild.jpg"
lngExifInfo = objExif.Tag(GPSInfo)

CopyMemory gpsTest , lngExifInfo, 4
MsgBox gpsTest .GPSVersionID(0) 'etc
End Sub

Ach so, noch die links:

Exif-Klasse: http://sourceforge.net/projects/exifclass/
Exif-Doku: http://www.exif.org/specifications.html (->Exif 2.2)

Viele Grüße
Jörg Ostendorp

Access-FAQ: www.donkarl.com

Ähnliche fragen