一、java实现
小编看了很多技术博客,但是测试要么下载的jar包中的api和博客对不上,要么就是不对,总之没实现
Java 读取图片信息
java 写入 exif 信息
使用Java读取和修改图片的Exif信息
java获取图片的GPS信息
https://drewnoakes.com/code/exif/
https://github.com/drewnoakes/metadata-extractor/
java 修改图片exif信息
JAVA 使用metadata-extractor添加水印
java 修改照片exif信息
ava图片识别文字软件 java识别图片文字 原理
java 修改图片exif信息
如何用一张照片进行GPS定位
https://www.jb51.net/program/319520ppk.htm
https://blog.csdn.net/qq_40985985/article/details/118605888
https://blog.51cto.com/u_16213361/10406427
https://blog.csdn.net/m0_51363655/article/details/125554155
https://blog.csdn.net/weixin_42350212/article/details/118467097
二、python实现
引用给家里的老照片添加时间、地点信息,方便查找回忆
from PIL import Image, ImageTk
from piexif import load, dump, ImageIFD,GPSIFD
import tkinter as tk
from tkinter import filedialog, messagebox
import pyperclip
def open_file():
print("打开文件 start")
file_path = filedialog.askopenfilename(title='选择图片文件')
# file_path = 'C:/Users/hahaha/Pictures/IMG_1089.JPG'
print(file_path)
img = Image.open(file_path)
img = img.resize((400, 300))
img = ImageTk.PhotoImage(img)
lable_img_display.config(image=img)
lable_img_display.image = img
if file_path:
print("打开文件:", file_path)
# 打开图片
image = Image.open(file_path)
img_name_old_label.config(text=file_path)
# 读取图片的原始exif信息'
try:
exif_dic = load(image.info["exif"])
image_time = exif_dic["0th"][ImageIFD.DateTime]
print(image_time)
img_time_old_label.config(text=image_time)
if exif_dic["GPS"]:
longtitude = exif_dic['GPS'][GPSIFD.GPSLongitude] # 经度
print(format_data(longtitude))
img_longtitude_old_label.config(text=format_data(longtitude))
latitude = exif_dic["GPS"][GPSIFD.GPSLatitude]
print(format_data(latitude))
img_latitude_old_label.config(text=format_data(latitude)) # 纬度
print(longtitude)
print(latitude)
print(format_data(format_data(longtitude)))
else:
print("无GPS信息")
img_longtitude_old_label.config(text="none")
img_latitude_old_label.config(text="none")
pass
except:
img_time_old_label.config(text="none")
img_longtitude_old_label.config(text="none")
img_latitude_old_label.config(text="none")
def format_data(latlong):
print(type(latlong))
if type(latlong) == float or type(latlong) == str or type(latlong) == int:
latlong = float(latlong)
degree = int(latlong)
res_degree = latlong - degree
minute = int(res_degree * 60)
res_minute = res_degree * 60 - minute
seconds = round(res_minute * 60, 3)
_data = ((degree, 1), (minute, 1), (int(seconds * 100), 100

最低0.47元/天 解锁文章
553

被折叠的 条评论
为什么被折叠?



