python 通過(guò)exifread讀取照片信息
通過(guò)第三方庫(kù)exifread讀取照片信息。exifread官網(wǎng):https://pypi.org/project/ExifRead/
一、安裝exifreadpip install exifread二、讀取照片信息,以及根據(jù)經(jīng)緯度通過(guò)百度地圖API獲取位置
import exifreadimport jsonimport urllib.request# Open image file for reading (binary mode)f = open(’001.jpg’, ’rb’)# Return Exif tagstags = exifread.process_file(f)’’’#打印所有照片信息for tag in tags.keys(): print('Key: {}, value {}'.format(tag, tags[tag]))’’’#打印照片其中一些信息print(’拍攝時(shí)間:’, tags[’EXIF DateTimeOriginal’])print(’照相機(jī)制造商:’, tags[’Image Make’])print(’照相機(jī)型號(hào):’, tags[’Image Model’])print(’照片尺寸:’, tags[’EXIF ExifImageWidth’], tags[’EXIF ExifImageLength’])#獲取經(jīng)度或緯度def getLatOrLng(refKey, tudeKey): if refKey not in tags: return None ref=tags[refKey].printable LatOrLng=tags[tudeKey].printable[1:-1].replace(' ','').replace('/',',').split(',') LatOrLng=float(LatOrLng[0])+float(LatOrLng[1])/60+float(LatOrLng[2])/float(LatOrLng[3])/3600 if refKey == ’GPS GPSLatitudeRef’ and tags[refKey].printable != 'N': LatOrLng=LatOrLng*(-1) if refKey == ’GPS GPSLongitudeRef’ and tags[refKey].printable != 'E': LatOrLng=LatOrLng*(-1) return LatOrLng#調(diào)用百度地圖API通過(guò)經(jīng)緯度獲取位置def getlocation(lat,lng): url = ’http://api.map.baidu.com/geocoder/v2/?location=’ + lat + ’,’ + lng + ’&output=json&pois=1&ak=申請(qǐng)的百度地圖KEY’ req = urllib.request.urlopen(url) res = req.read().decode('utf-8') str = json.loads(res) #print(str) jsonResult = str.get(’result’) formatted_address = jsonResult.get(’formatted_address’) return formatted_addresslat = getLatOrLng(’GPS GPSLatitudeRef’,’GPS GPSLatitude’) #緯度lng = getLatOrLng(’GPS GPSLongitudeRef’,’GPS GPSLongitude’) #經(jīng)度print(’緯度:{} 經(jīng)度:{}’.format(lat, lng))location = getlocation(str(lat), str(lng))print(’位置:{}’.format(location))
以上就是python 通過(guò)exifread讀取照片信息的詳細(xì)內(nèi)容,更多關(guān)于python 讀取照片信息的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. django queryset相加和篩選教程2. 利用ajax+php實(shí)現(xiàn)商品價(jià)格計(jì)算3. Java實(shí)現(xiàn)的迷宮游戲4. idea設(shè)置提示不區(qū)分大小寫的方法5. JS圖片懶加載庫(kù)VueLazyLoad詳解6. Java利用TCP協(xié)議實(shí)現(xiàn)客戶端與服務(wù)器通信(附通信源碼)7. 使用AJAX(包含正則表達(dá)式)驗(yàn)證用戶登錄的步驟8. Java PreparedStatement用法詳解9. Spring如何集成ibatis項(xiàng)目并實(shí)現(xiàn)dao層基類封裝10. IDEA 2020.1.2 安裝教程附破解教程詳解

網(wǎng)公網(wǎng)安備