首頁 > 軟體

利用Python實現獲取照片位置資訊

2022-08-22 22:00:23

引言

通過一張照片居然發現女友在宿舍裡沒去上課!強大的照片位置資訊獲取,快來一起學習吧!

一、exifread函數庫

要怎樣獲得拍攝圖片的GPS呢?這裡我們需要exifread 庫,這個就是用來提取 GPS 資訊的。直接 pip install exifread 來安裝就好了。

安裝exrfread庫(PyCharm)

開啟settings如下圖

選擇+號搜尋exifread

安裝即可

什麼是exifread函數庫

原理

先把圖片以二進位制的格式讀取出來,然後通過 exifread 庫把裡面的 GPS 資訊提取出來,再以特定的格式列印出來,最後直接複製裡面的經緯度資訊,在支援通過經緯度來查位置的地圖裡一查就能定位到了。

二、獲取女朋友發來的照片(單身勿擾)

女朋友居然告訴我這隻狗好可愛?

哪裡可愛了!!?

將圖片放在程式碼所在的目錄下

三、具體程式碼實現

import exifread
import re

# 讀取圖片為二進位制格式
f = open("example2.jpg","rb")
tags = exifread.process_file(f)

# GPS資訊
GPS = {}

# 拍攝時間
Data = ""

for tag,value in tags.items():
    # 獲取緯度資訊
    if re.match('GPS GPSLatitude', tag):
        try:
            match_result=re.match('[(w*), (w*), (w.*)/(w.*)]', str(value)).groups()
            GPS['緯度'] = str(int(match_result[0])) + " " + str(int(match_result[1])) + " " + str(int(match_result[2])/int(match_result[3]))
        except:
            GPS['緯度'] = str(value)
    # 獲取緯度資訊
    elif re.match('GPS GPSLongitude', tag):
        try:
            match_result=re.match('[(w*), (w*), (w.*)/(w.*)]',str(value)).groups()
            GPS['經度'] = str(int(match_result[0])) + " " + str(int(match_result[1])) + " " + str(int(match_result[2])/int(match_result[3]))
        except:
            GPS['經度'] = str(value)
    # 獲取高度
    elif re.match('GPS GPSAltitude', tag):
        GPS['高度'] = str(value)
    # 獲取拍攝時間
    elif re.match('Image DateTime', tag):
        Data = str(value)

# 列印資訊
print("緯 經 度:" + GPS['緯度'] + "," + GPS['經度'])
print("拍攝時間:" + Data)

結果

四、經緯度轉換

百度搜尋經緯度查詢

隨便點進去一個能夠轉換的

輸入得到的經緯度即可

可惡,居然在宿舍拍狗狗不去上課!!!

好了今天的分享就到這裡,希望大家一起進步!

到此這篇關於利用Python實現獲取照片位置資訊的文章就介紹到這了,更多相關Python照片位置資訊內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com