为图片设置经纬度信息

一、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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值