你有没有想过,手机里那些看似普通的照片,其实暗藏了不少“秘密”?除了画面本身,每张照片的文件中还记录着一系列拍摄参数——相机型号、快门速度、光圈大小,甚至还有拍摄地点的经纬度坐标。这些隐藏数据属于EXIF信息的一部分,平时看不见摸不着,但在某些场景下却能派上大用场。
比如,有人想整理旅行照片、按地点归档;有人发图前担心隐私泄露、想清除或更改定位;还有人因为工作需求,需要为一批图片批量写入指定的经纬度数据。图片的GPS信息怎么查看和修改这个问题,其实有好几种不同的解决办法,有的适合懂编程的朋友,有的则对普通用户更友好。今天我们就来逐一梳理,找到适合你的思路。
在正式展开方法之前,先提醒一句:修改图片信息前,建议养成备份原图的习惯。毕竟有些操作会直接覆盖原文件,万一手误改错了,可没有后悔药吃。

方法一:用汇帮元数据编辑器修改GPS信息
如果你不想碰代码,又希望有一个能批量处理的操作方案,汇帮元数据编辑器是一个比较省心的选择。它是一款运行在Windows系统上的本地软件,支持直接修改图片的EXIF数据,包括拍摄时间、相机型号以及经纬度等GPS信息。
具体操作流程如下:
第一步:打开软件,进入图片元数据编辑功能
在电脑上启动已安装好的汇帮元数据编辑器,主界面上能看到多个功能入口,此时选择“图片元数据编辑”模块即可。
第二步:添加需要修改的图片
把需要修改经纬度的图片导入软件。它支持一次性添加多张图片,也就是说,如果你手里有一批照片都需要调整位置信息,可以批量操作,效率会高出不少。
第三步:查看图片元数据
图片添加成功后,软件右侧会自动展示这张图片的各类元数据信息。如果显示的字段有限,点击“查看更多”按钮,就能看到更完整的参数列表。
第四步:定位经度、纬度属性
在下拉的属性列表中,找到“经度”和“纬度”这两个项目,它们右侧各有一个编辑按钮。点击对应按钮,就可以对数值进行修改。
第五步:获取目标地点的经纬度数值
这里有一个比较关键又容易卡住的细节——怎么知道自己想要的经纬度到底是多少?其实不用自己算,打开任意一个地图工具就行。在搜索引擎中搜索“经纬度拾取器”,找到支持坐标显示的地图服务,在地图上找到你指定的地点并点击,页面上会自动显示对应的经度和纬度数值,复制下来备用即可。
第六步:填入数值,批量修改
回到软件界面,分别在经度和纬度的弹出框中输入刚才复制到的数值,确认无误后,点击“批量修改所有图片”按钮,软件就会自动完成所有图片的坐标写入。

等待系统提示操作成功,此时图片的定位数据已经被改写。如果想确认结果,可以打开图片详情或属性面板,查看经纬度是否已经更新为你填写的数值。
这套流程整体下来不用写一行代码,属于“所见即所得”的操作方式。如果你手头的图片比较多,或者你平时不太熟悉命令行工具,这种可视化的软件工具会更顺手。
方法二:用Python修改EXIF中的GPS数据
如果你具备一定的编程基础,或者经常需要批量处理图片、希望在流程中实现更高程度的自动化,那么用Python来修改EXIF信息也是个值得了解的路子。这种方式胜在灵活,想改哪些字段、批量跑多少张图片,全凭代码说了算。
准备工作
需要先安装两个Python库:piexif 和 Pillow。piexif专门负责处理EXIF数据,Pillow则是Python中常用的图像处理库。安装命令如下:
pip install piexif pillow
核心代码实现
下面是一段能够修改GPS坐标、拍摄时间、相机参数等信息的完整代码逻辑:
from fractions import Fraction
import piexif
from PIL import Image
def to_degrees(value):
"""将十进制度数转换为EXIF使用的度分秒格式"""
d = int(value)
# 获取度数
m = int((value - d) * 60)
# 计算分数中的分钟
s = (value - d - m / 60) * 3600
# 计算剩余秒数
return [(d, 1), (m, 1), to_fraction(s)]
def to_fraction(value):
"""将浮点数转换为分数,EXIF中以分数存储较常见"""
f = Fraction(value).limit_denominator()
return (f.numerator, f.denominator)
def set_exif_data(img_path, output_path, longitude, latitude, altitude,
focal_length, aperture_value, iso_speed,
camera_make, camera_model, date_taken):
img = Image.open(img_path)
exif_dict = piexif.load(img.info['exif']) if 'exif' in img.info else {"0th": {}, "Exif": {}, "GPS": {}}
# GPS经度
exif_dict['GPS'][piexif.GPSIFD.GPSLongitude] = to_degrees(longitude)
exif_dict['GPS'][piexif.GPSIFD.GPSLongitudeRef] = "E" if longitude >= 0 else "W"
# GPS纬度
exif_dict['GPS'][piexif.GPSIFD.GPSLatitude] = to_degrees(latitude)
exif_dict['GPS'][piexif.GPSIFD.GPSLatitudeRef] = "N" if latitude >= 0 else "S"
# GPS海拔
exif_dict['GPS'][piexif.GPSIFD.GPSAltitude] = (to_fraction(altitude) if altitude else (0, 1))
exif_dict['GPS'][piexif.GPSIFD.GPSAltitudeRef] = 0 if altitude >= 0 else 1
# 相机拍摄参数
exif_dict['Exif'][piexif.ExifIFD.FocalLength] = to_fraction(focal_length)
exif_dict['Exif'][piexif.ExifIFD.FNumber] = to_fraction(aperture_value)
exif_dict['Exif'][piexif.ExifIFD.ISOSpeedRatings] = iso_speed
# 相机设备信息
exif_dict['0th'][piexif.ImageIFD.Make] = camera_make.encode('utf-8')
exif_dict['0th'][piexif.ImageIFD.Model] = camera_model.encode('utf-8')
# 拍摄时间
exif_dict['Exif'][piexif.ExifIFD.DateTimeOriginal] = date_taken.encode('utf-8')
exif_bytes = piexif.dump(exif_dict)
img.save(output_path, exif=exif_bytes, quality=100)
# 示例:使用函数修改一张照片的信息
set_exif_data(
'F:/photos/DSC_6571.jpg',
'./DSC_6572.jpg',
110.481661,
# 经度
29.099569,
# 纬度
2100,
# 海拔(米)
28,
# 焦距(mm)
2.8,
# 光圈
400,
# ISO
"NIKON CORPORATION",
"NIKON D7100",
"2024:06:11 12:15:43"
)
代码逻辑简述
-
to_degrees()负责将百度的经纬度小数形式,换算成EXIF标准要求的度分秒结构; -
to_fraction()会把浮点数转换为分数形式,这符合EXIF数据的存储规则; - 主函数
set_exif_data()是核心写入入口,通过piexif.dump()将修改后的信息重新打包并保存到输出图片中。
对于技术人员来说,这个方案的扩展性很好——调整代码中的参数字段,还可以自由增加其他EXIF条目。不过坦白讲,Python方案的门槛确实摆在那里,如果没有编程经验,光是调试环境、运行脚本就可能劝退不少人。这个方案更适合有技术背景、需要高度定制化的用户。
方法三:其他常用修改工具一览
除了上面两种思路,还有几款工具也可以实现GPS信息的查看与修改,这里简单介绍一下它们的操作特点,供大家参考。
MagicEXIF元数据编辑器
这是一款功能比较全面的EXIF编辑工具,界面是图形化的,适合普通用户使用。
打开软件后,点击工具栏中的“打开文件”按钮载入一张照片。以iPhone拍摄的照片为例,切换到“GPS信息”选项卡,可以看到列表中展示的GPS数据,右侧通常还会显示地图预览。

如果照片本身没有GPS数据,地图区域会显示“无可用地理数据”,此时可以通过工具栏中的“增添项”按钮,在弹出对话框中添加所需的GPS字段。
在“显示”下拉列表中选择“GPS地理信息”,勾选必要的几项数据,点击“确认添加”。添加完成的新项目会以绿色高亮显示,接下来就能直接修改其中的坐标数值了。

MagicEXIF比较适合批量修改需求不大的普通用户,上手速度快,功能覆盖也比较全面。
另一种使用GPS坐标写入工具的方式
网上还有一个叫“GPS写入照片”的小工具,通过Excel格式的pos文件配合操作。步骤大致是:打开工具 → 选择数据转换 → 点击“GPS写入照片” → 在百度地图坐标拾取器中查询目标位置坐标 → 将照片文件夹和pos文件路径选好 → 设置照片列、经度列、纬度列、高度列的对应关系 → 点击“一键写入”完成。





Surfer软件中的底图坐标调整
如果在专业制图软件Surfer中操作底图,也可以通过修改坐标轴的范围来实现经纬度的标注调整——通过“对象管理器”选择底图后,在属性中更改X轴和Y轴的最大最小值,将其设定为具体的经纬度范围即可。这属于地理制图场景下的坐标校正,对普通照片的EXIF信息修改也有一定参考价值。





查看GPS信息的基础方法
说完了如何修改,很多人可能还会问:在修改之前,我怎么查看一张图片现有的GPS数据呢?其实有很简单的操作。
Windows系统下,直接右键点击图片文件,选择“属性”,切换到“详细信息”选项卡,就能看到部分EXIF信息,包括经纬度坐标(如果图片本身带有GPS数据的话)。
macOS系统下,用“预览”应用打开图片,点击菜单栏的“工具”→“显示检查器”,或直接使用快捷键Command+I,在打开的窗口中切换到“更多信息”标签页,同样可以看到位置信息及地图预览。
手机上也可以用一些专业的图片信息查看App,这里不直接点名,大家可以在应用商店搜索“EXIF查看器”之类的关键词自行选择,注意挑选下载量大、评分高的产品即可。
注意事项与常见问题
在实际操作中,有几个容易被忽略的细节值得提出来:
GPS坐标的格式差异。 不同工具或地图平台显示坐标的方式不完全一样,有的直接显示十进制度数(如110.481661),有的则显示度分秒(如110°28‘54")。这两种格式之间需要换算,填写时务必搞清楚你复制下来的数据属于哪种格式,避免填错后造成定位偏差。
原图备份意识。 多数桌面软件在保存时会直接覆盖原文件,虽然方便,但如果修改后发现数值不对,再想找回原始数据就麻烦了。养成先复制一份原图的习惯,能在很大程度上规避不必要的风险。
关于隐私的一点提醒。 这里也提醒一下大家:日常在社交平台发布照片前,如果想保留照片的画质又不想暴露家庭住址等敏感位置信息,可以考虑把EXIF中的GPS数据清除干净再上传。虽然不少社交软件在发送时会自动压缩并剥离元数据,但不要盲目认为所有平台都会做这一步。
总结:如何选择适合自己的方法?
回到“图片的GPS信息怎么查看和修改”这个问题上,其实并没有放之四海而皆准的答案,关键看你自己的情况更适合哪条路:
- 普通用户,偶尔改一两张图,不想动代码:选汇帮元数据编辑器或MagicEXIF这类图形化工具都比较稳妥,界面直观、操作路径短,几分钟就能完成修改。如果你需要批量处理较多图片,汇帮的一键批量功能也会比逐张修改更高效。
- 有技术背景,追求自动化或特定功能:Python脚本是性价比高的方案,改代码就能复用,适合大量图片需要统一处理的场景,但前提是你得有耐心处理环境配置这类基础问题。
- 专业制图或地理信息相关场景:Surfer等专业工具中的坐标调整方式更有针对性,不过适用范围相对垂直。
希望这篇文章能帮你弄清楚图片的GPS信息怎么查看和修改。如果你之前一直用某一款工具觉得还挺顺手的,也欢迎在评论区聊聊自己的使用体验,让更多人少走弯路。