今天突然看到有人写过获取图片中位置信息的程序。我觉得很有趣,也就自己实践了一下,研究了一下

话不多说,先上代码

1 #!/usr/bin/env python3

2 #-*- coding: utf-8 -*-

3

4 'A program used to get GPS information in picture'

5

6 __author__ = 'Albert Yang'

7

8 importexifread9 importre10

11 defFindGPSTime(filePath):12 GPS={}13 Data=""

14 f=open(filePath,'rb')15 tags=exifread.process_file(f)16 #print("f:",f.read())

17 #print("tags:",tags)

18 #for key in tags:

19 #print(key)

20

21 for tag,value intags.items():22 if re.match('GPS GPSLatitudeRef',tag):23 GPS['GPSLatitudeRef(纬度标识)']=str(value)24 elif re.match('GPS GPSLongitudeRef',tag):25 GPS['GPSLongitudeRef(经度标识)']=str(value)26 elif re.match('GPS GPSAltitudeRef',tag):27 GPS['GPSAltitudeRef(高度标识)']=str(value)28 elif re.match('GPS GPSLatitude',tag):29 try:30 match_result=re.match('\[(\w*), (\w*), (\w.*)/(\w.*)\]',str(value)).groups() #匹配临近的字符

31 GPS['GPSLatitude(纬度)']=int(match_result[0]),int(match_result[1]),int(match_result[2])/int(match_result[3])32 except:33 GPS['GPSLatitude(纬度)']=str(value)34 elif re.match('GPS GPSLongitude',tag):35 try:36 match_result=re.match('\[(\w*), (\w*), (\w.*)/(\w.*)\]',str(value)).groups()37 GPS['GPSLongitude(经度)']=[int(match_result[0]),int(match_result[1]),int(match_result[2])/int(match_result[3])]38 except:39 GPS['GPSLongitude(经度)']=str(value)40 elif re.match('GPS GPSAltitude',tag):41 GPS['GPSAltitude(高度)']=str(value)42 elif re.match('Image DateTime',tag):43 Data=str(value)44 return {'GPS 信息':GPS,'时间信息':Data}45 #http: // www.gpsspg.com / maps.htm

46

47 if __name__=='__main__':48 print(FindGPSTime("3.jpg"))

几个关键点:

1,exifread包就是用来专门获取图像的exif信息的。

2,exifread()函数返回字典,字典里的value值是IfdTag类型的。需要用str()转化成str类型才好处理

3,re模块\w是匹配字符,加上*大致是匹配多个的意思

这是我的运行结果

{'GPS 信息': {'GPSAltitudeRef(高度标识)': '0', 'GPSLatitude(纬度)': (**, **, *********), 'GPSAltitude(高度)': '0', 'GPSLongitude(经度)': [***, ***, *******], 'GPSLatitudeRef(纬度标识)': 'N', 'GPSLongitudeRef(经度标识)': 'E'}, '时间信息': '2018:08:31 16:03:06'}

里面的***是我人工打码的。就是三个数字,分别是**°**’****”。就是经纬度的多少度,多少分,多少秒。

得到经纬度后

注意输入格式,先是纬度,再是经度。纬经度之间用逗号隔开。度,分,秒之间用空格隔开

具体的就是这样。挺好玩的,不过根据我的实验,QQ空间,朋友圈,微博里的图片都提取不出。应该是因为都压缩了。不过我让我朋友发给我的照片都能提取出来。还行。

其他更好玩的你们再挖掘吧,觉得不错记得赞一下

java提取图片位置信息_实战项目——获取图片中的GPS位置信息和拍摄时间相关推荐

  1. python爬上市公司信息_实战项目 1:5 行代码爬取国内所有上市公司信息

    实战项目 1:5 行代码爬取国内所有上市公司信息 Python入门爬虫与数据分析 在正式开始这门专栏课的学习之前,我们先来看一个简单的爬虫案例.兴趣是最好的老师,当你对爬虫产生兴趣的时候,才会更有动力 ...

  2. java 取pdf 文本域_使用PDFBox获取文本行的位置

    一般而言 要使用PDFBox提取文本(带或不带位置,颜色等额外信息),可以实例化 PDFTextStripper 或从中派生的类,并使用它: PDFTextStripper stripper = ne ...

  3. qpython获取手机gps_基于Python获取照片的GPS位置信息

    这篇文章主要介绍了基于Python获取照片的GPS位置信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 昨天听人说,用手机拍照会带着GPS信息,原 ...

  4. java 微信图片上传_微信小程序图片上传java端以及前端实现

    小程序的图片上传与传统的图片上传方式有一些不一样 如果你有幸看到这篇文章,恭喜你,你可以完美解决了. 话不多说,前后端代码一并奉上: (基于springmvc ) @Controller @Reque ...

  5. java对接物联网api对接_一种对接物联网云平台的信息交互方法以及中间件系统与流程...

    本发明涉及物联网技术领域,特别是一种对接物联网云平台的信息交互方法以及中间件系统. 背景技术: 物联网是继计算机.互联网和移动通信之后的又一次信息产业的革命性发展,在互联网和移动互联网高速发展的时代, ...

  6. python 播放本地音乐_实战项目—python实现本地音乐播放器

    随着网络的发展,我们已经很少将音乐下载到本地,而是直接在线听歌,方便而又直接.也许你用的音乐播放器是这个 也许是这个 这都不是重点,今天我们要用python自己打造一款音乐播放器. 具体思路 使用py ...

  7. 获取附近小区信息_小程序获取当前位置加搜索附近热门小区及商区的方法

    本文详细的介绍了小程序获取当前位置加搜索附近热门小区及商区的方法,分享给大家 两种方法:一种是腾讯地图获取,另一种是百度地图获取 我用的是腾讯地图获取步骤如下 1.话不多说,直接上干货 实现上图效果, ...

  8. java 返回上一个页面_页面返回上一页浏览位置

    1.如果上一页是静态页面,可以用 history.go(-1)方法: go() 方法可加载历史列表中的某个具体的页面. 该参数可以是数字,使用的是要访问的 URL 在 History 的 URL 列表 ...

  9. java获取鼠标在屏幕中的位置 方法一_Java如何获取鼠标指针的位置?

    MouseInfo 提供获取有关鼠标信息的方法,例如鼠标指针的位置和鼠标按钮的数量.package org.nhooo.example.awt; import java.awt.*; public c ...

最新文章

  1. 与springcloud整合的框架源码读取入口
  2. 安装quagga 软路由
  3. LeetCode Different Ways to Add Parentheses(递归,动态规划)
  4. 硬盘安装 solaris
  5. BugkuCTF-Crypto题Crack it
  6. jQuery的before()方法和after()方法
  7. oracle 下和 db2的syscat 对应的,oracle db2命令对比(整理中)
  8. 最便宜的那款特斯拉,刚刚喜提“最安全汽车”称号(然后被打脸)
  9. 《算法图解》第八章贪婪算法
  10. JavaScript: The Good Parts 学习随笔(三)
  11. C语言实现推箱子game
  12. 大型企业数据库服务首选,AliSQL这几大企业级功能你了解几个?
  13. Unknown custom element: <xxx> - did you register the component correctly? For recursive components
  14. java.lang.UnsatisfiedLinkError解决方法
  15. Linux WiFi Deauthenticated Reason Code说明
  16. 511遇见易语言逍遥模拟器模块封装调用示范
  17. HarmonyOS助力构建“食用菌智慧农场”
  18. 【转】Linux diff 命令详解
  19. 在oracle中imp是什么意思,Oracle中的Imp和Expt用法
  20. SRM 504.5 DIV2

热门文章

  1. 疗效预测中的影像组学特征提取
  2. (上)史上最全 Flink SQL 成神之路(全文 18 万字、138 个案例、42 张图)
  3. Autodesk 3ds Max 系统要求和电脑硬件建议
  4. popper.js使用_使用Popper.js创建页面上的气泡
  5. elementUI组件中的popper组件popper-class使用方式
  6. 向前辈致敬:懂懂和一直特立独行的…
  7. 访问浏览出现:502 Bad Gateway
  8. [20180822]session_cached_cursors与子游标堆0.txt
  9. 山东大学软件学院高级语言课程设计JAVA课程设计-学生在线考试系统平台
  10. 程序媛从找工作到一年的你,怎么样了?