Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1768to1772
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

GPS-Daten in Bildern auslesen

GPS-Daten in Bildern auslesen
29.06.2020 10:54:05
Joachim
Hallo zusammen, ich habe Bilder mit der Drohne aufgenommen (JPGs). Wenn ich im Explorer mit der rechten Maustaste auf die Bilddatei klicke und Eigenschaften wähle, kann ich die GPS-Daten sehen. Kann ich in Excel diese GPS-Daten (Breiten- und Längengrad, Höhe) aus den Bilddateien auslesen?
Schon mal danke für Eure Tipps!
Joachim

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: GPS-Daten in Bildern auslesen
29.06.2020 10:59:49
Daniel
HI
such mal im WWW nach "GetDetailsOf" oder "excel metadaten auslesen jpg"
da sollte es was geben.
Gruß Daniel
AW: WIA
29.06.2020 11:22:38
Fennek
Hallo,
Excel kann über die COM-Schnittstelle WIA (Windows-Image-Acquisition) ansteuern und damit in vielen Bild-Formaten, z.B. jpg, auch die GPS-Daten auslesen.
Es dürfte aber einfacher sein, ein Foto-Tool, z.B."Exif-Tools" zu nutzen, die GPS-Daten in eine Ascci-Datei zu schreiben und diese in Excel zu importieren.
mfg
AW: GPS-Daten in Bildern auslesen
29.06.2020 12:14:02
volti
Hallo Joachim,
hier ein kleines Beispiel für DetailsOf:
Sub GetFilesDetails()
'Sub ermittelt einige Datei-Parameter
 Dim oFile As Object, i As Integer
 Dim sPath As String, sFile As String
 
 sPath = "D:\Pictures\Fotos\2020\"
 sFile = "20200206_201737.jpg"
 With CreateObject("Shell.Application").Namespace(CVar(sPath))
   Set oFile = .ParseName(sFile)
   For i = 1 To 50
      Debug.Print i, .getdetailsof(oFile, i)
   Next i
 End With
End Sub
 

viele Grüße aus Freigericht
Karl-Heinz

Anzeige
AW: GPS-Daten in Bildern auslesen
29.06.2020 13:09:38
Joachim
Hallo zusammen, Danke für die Tipps
@ Karl-Heinz: Habe deinen Code ein bisschen geändert und schreib mir die Werte in ein Tabellenblatt, und die Laufschleife erweitert. Ab 291 wird nichts mehr geschrieben, die GPS-Daten sind aber nicht dabei. (Laufschleife geht bis 10.000). Da wird wohl nichts mehr kommen....
Trotzdem Danke
AW: GPS-Daten in Bildern auslesen
29.06.2020 14:17:09
volti
Ok,
ein Versuch war's wert.
VG KH
AW: Quick & dirty
29.06.2020 13:36:45
Fennek
Hallo,
vielleicht kann man die GPS-Daten auch direkt als Ascii lesen. Könnstest du eine Beispieldatei hochladen?
(falls jpg nicht gehen sollte, einfach ein .txt anhängen, also aus "Bild.jpg" wird "Bild.jpg.txt")
mfg
Anzeige
AW: Quick & dirty
29.06.2020 14:24:05
volti
Hallo Fennek,
da bin ich mal gespannt, ob Du/man da fündig wird.
Ich hatte aus bestimmten Grunde auch schon Bilddateien per Binärdaten auseinandergenommen.
Klartexte wie z.B. Firma, Kameratyp und Datum kann man erkennen und sind mit Chr(0) abgeschlossen, Zahlenwerte z.B. Bildschirmgröße habe ich nicht gefunden (möglicherweise codiert).
Die sind aber auch nicht immer an der gleichen Stelle, da müsste man die ExIf-Struktur kennen bzw. anwenden.
viele Grüße
Karl-Heinz
AW: Quick & dirty
29.06.2020 14:47:05
Joachim
Hallo,
habe die Datei in Photoshop auf kleinste Größe (Qualität 0) gespeichert, ist immer noch zu groß zum uploaden.
Gruß
Joachim
Anzeige
AW: VBA-WIA Beispielcode
29.06.2020 15:04:05
Fennek
Hallo,
Volti hat Recht, die GPS-Daten sind binär.
Vor einiger Zeit habe ich einen VBA-Code erstellt, schau mal, ob du damit zurecht kommst:

'############## GPS #################
Function GPS_Loc(Fl As String) As String   ' Übergabe eines Pfad & Dateinamens
Dim Img ' as Imagefile
Dim GPS(4) As String
Set Img = CreateObject("WIA.ImageFile")
Call Img.LoadFile(Fl)
If Img.Properties.Exists("1") Then GPS(0) = Img.Properties("1").Value    'N
If GPS(0) = "" Then GPS_Loc = "nv": Exit Function
If Img.Properties.Exists("2") Then
For i = 1 To Img.Properties("2").Value.Count
If Err.Number  0 Then GPS_Loc = "error": Err.Clear: Exit Function
GPS(1) = GPS(1) & Img.Properties("2").Value.Item(i) & Choose(i, "° ", "' ", "")
Next i
End If
If Img.Properties.Exists("3") Then GPS(2) = Img.Properties("3").Value 'W/E
If Img.Properties.Exists("4") Then
For i = 1 To Img.Properties("4").Value.Count
GPS(3) = GPS(3) & Img.Properties("4").Value.Item(i) & Choose(i, "° ", "' ", "")
Next i
End If
If Img.Properties.Exists("6") Then GPS(4) = Img.Properties("6").Value
If Len(GPS(1)) > 5 Then
GPS_Loc = GPS(0) & GPS(1) & ", " & GPS(2) & GPS(3) & ", Höhe: " & Format(GPS(4), "0.00  _
m")
Else
GPS_Loc = "nv"
End If
ERASE GPS
'einzelne Fotos, alle Propeties
'andere Methoden: p.value.Numerator, p.value.Denumerator
'if p.type = RationalImagePropertyType Then    s = s & p.Value.Numerator & "/" & p.Value. _
Denominator
'if p.Type = StringImagePropertyType then
'if p.SubType  UnspecifiedSubType then
'if p.Value  p.SubTypeDefault then
'if p.IsReadOnly then
'select Case p.SubType
'    Case FlagSubType
'        For i = 1 To p.SubTypeValue.Count
'            s = s & p.SubTypeValues(i)
'            If i  p.SubTypeValues.Count Then s = s & ", "
'        Next i
'    Case ListSubType
'         s = s & " [ valid values include:"
'        For i = 1 To p.SubTypeValues.Count
'            s = s & p.SubTypeValues(i)
'            If i  p.SubTypeValues.Count Then
'                s = s & ", "
'            End If
'        Next
'    s = s & " ]"
'    Case RangeSubType
'        s = s & " [ valid values in the range from " & _
'               p.SubTypeMin & " to " & p.SubTypeMax & _
" in increments of " & p.SubTypeStep & " ]"
'   Case Else 'UnspecifiedSubType
'   End Select
'   If Img.Properties.Exists("40095") then
'   Set v = Img.Properties("40095").Value
'   s = s & "Subject = " & v.String & vbCrLf
'   End If
'For Each p In Img.Properties
'    Debug.Print p.propertyid, p.Name, p.Value, p.isvector
'Next p
'Alternative
'For i = 1 To objImage.Properties.Count
'    Debug.Print i, Img.Properties(i).Name, Img.Properties(i).Value
'Next i
'Set v = CreateObject("WIA.Vector")
'v.Add 1
'v.Add 42
'v.Remove 1
'v.add "Text"
'MsgBox v(1)
Set Img = Nothing
End Function
Für wenige Fotos ist der Code ok, für viele dauert er zu lange, da jedesmal "WIA" erneut angelegt wird. Wenn man WIA einmal anlegt und dann eine Schleife über alle Fotos legt, wird es viiiiiiel schneller.
mfg
Anzeige
AW: VBA-WIA Beispielcode
30.06.2020 09:18:34
Joachim
Klappt SUPER!!!
Vielen, vielen Dank!!!
Joachim

195 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige