あるソースからの座標があり、jpg ファイルにタグを付けたいと考えています。ジオタグをexifデータに書き込むのに最適なpythonライブラリは何ですか?
Frank Bannister
質問する
14516 次
5 に答える
6
pyexiv2 ライブラリを使用して GPS 位置を設定する方法の例を次に示します。ジオタグ付きの画像を Panoramio にアップロードして、このスクリプトをテストしました
#!/usr/bin/env python
import pyexiv2
import fractions
from PIL import Image
from PIL.ExifTags import TAGS
import sys
def to_deg(value, loc):
if value < 0:
loc_value = loc[0]
elif value > 0:
loc_value = loc[1]
else:
loc_value = ""
abs_value = abs(value)
deg = int(abs_value)
t1 = (abs_value-deg)*60
min = int(t1)
sec = round((t1 - min)* 60, 5)
return (deg, min, sec, loc_value)
def set_gps_location(file_name, lat, lng):
"""Adds GPS position as EXIF metadata
Keyword arguments:
file_name -- image file
lat -- latitude (as float)
lng -- longitude (as float)
"""
lat_deg = to_deg(lat, ["S", "N"])
lng_deg = to_deg(lng, ["W", "E"])
print lat_deg
print lng_deg
# convert decimal coordinates into degrees, munutes and seconds
exiv_lat = (pyexiv2.Rational(lat_deg[0]*60+lat_deg[1],60),pyexiv2.Rational(lat_deg[2]*100,6000), pyexiv2.Rational(0, 1))
exiv_lng = (pyexiv2.Rational(lng_deg[0]*60+lng_deg[1],60),pyexiv2.Rational(lng_deg[2]*100,6000), pyexiv2.Rational(0, 1))
exiv_image = pyexiv2.Image(file_name)
exiv_image.readMetadata()
exif_keys = exiv_image.exifKeys()
exiv_image["Exif.GPSInfo.GPSLatitude"] = exiv_lat
exiv_image["Exif.GPSInfo.GPSLatitudeRef"] = lat_deg[3]
exiv_image["Exif.GPSInfo.GPSLongitude"] = exiv_lng
exiv_image["Exif.GPSInfo.GPSLongitudeRef"] = lng_deg[3]
exiv_image["Exif.Image.GPSTag"] = 654
exiv_image["Exif.GPSInfo.GPSMapDatum"] = "WGS-84"
exiv_image["Exif.GPSInfo.GPSVersionID"] = '2 0 0 0'
exiv_image.writeMetadata()
set_gps_location(sys.argv[1], float(sys.argv[2]), float(sys.argv[3]))
于 2011-01-30T12:19:18.417 に答える
6
私はそれを自分で試したことはありませんが、ドキュメント [pyexiv2][1] から、それは仕事をするべきだと思われます。
[1]: http://tilloy.net/dev/pyexiv2/tutorial.html #リンクに最後の文字がありませんでした
于 2009-01-17T14:55:41.533 に答える
6
pexifはジオタグを目標として書かれています (私の強調):
pexif は、JPEG ファイルの EXIF データを解析し、さらに重要なことに編集するための Python ライブラリです。
これは、GPS タグ付きデータを画像に追加する必要性から生じました。残念ながら、他のライブラリは更新を行うことができず、そのようなものを追加できるように簡単に構築されているようには見えませんでした。再利用可能なソフトウェアグランドではありません!
これを書いた主な理由は、写真にジオタグを付ける簡単な方法を提供することでしたが、ライブラリは現在、それを行うのに十分成熟しているようです.
于 2009-01-17T15:45:16.067 に答える