利用Python實現獲取照片位置信息

引言

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

一、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照片位置信息內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: