写入GPS信息到jpeg格式的图片中 ExifInterface类的使用
来源:互联网 发布:软件开发行业分类 编辑:程序博客网 时间:2024/05/16 00:50
写入GPS信息到jpeg格式的图片中 ExifInterface类的使用
Jpge格式是图片压缩格式的一种,jpg就属于这其中一种;我们如需要将gps信息写入到图片中本身是比较简单的,获取图片句柄ExifInterface就可以了;但是我在做的过程中碰到了几个问题,解决之后便考虑将这一块写出来供大家参考。
写入GPS信息到jpeg格式的图片一共三个步骤,获取句柄,写入信息,验证写入信息
第一步:获取句柄
// 获取图片前缀 ExifInterfaceexif = newExifInterface(filePath);
这里关键的一点是filepath这个参数,这是文件的绝对路径加文件名(肯定是包含文件的后缀名的!)
第二步:写入信息
// 写入经度信息 exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, this.gpsInfoConvert(jingdu)); exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF, jingdu> 0 ? "E": "W");// 写入纬度信息 exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, gpsInfoConvert(weidu)); exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE_REF, weidu> 0 ? "N": "S");// 执行保存 exif.saveAttributes();上面的代码中jingdu和weidu都是已经申明并得到复制的变量,代表经纬度;最后的执行保存一定要操作,否则信息可能写入不成功。
第三步:验证写入信息
ExifInterface exiftest = null; exiftest= newExifInterface(filePath); this.printMessage("写完后的校验:", exiftest);这个printMessage函数是自定义的信息输出函数,旨在读出图片中的GPS信息,以验证。
private void printMessage(String tag, ExifInterface e) {System.out.println(tag + "\n"+ e.getAttribute(ExifInterface.TAG_GPS_LATITUDE) + "\n"+ e.getAttribute(ExifInterface.TAG_GPS_LONGITUDE) + "\n"+ e.getAttribute(ExifInterface.TAG_GPS_PROCESSING_METHOD)+ "\n" + e.getAttribute(ExifInterface.TAG_IMAGE_LENGTH) + "\n"+ e.getAttribute(ExifInterface.TAG_IMAGE_WIDTH));
【附注】
1、 上面比较重要的地方有两处,第一是new ExifInterface(filePath)这里的参数是指的绝对路径加文件名,ExifInterface这个类其实不是借口尽管它这么写了;其次即使你写的路径不对,它也不会报错甚至提示,这就导致路径不对不易发现,我当时就犯了这种错误,没有及时发现浪费了时间
2、 一定要记得执行保存;写入的经纬度信息直接将通过百度地图得到的经纬度信息写进去会有问题,格式不对,必须经由gpsInforConvert(double aa)函数进行转换,这个函数也是我自定义的,发现格式不对对照标准格式写的。
格式转换函数:
private String gpsInfoConvert(double gpsInfo) { gpsInfo= Math.abs(gpsInfo); Stringdms = Location.convert(gpsInfo, Location.FORMAT_SECONDS); String[]splits = dms.split(":"); String[]secnds = (splits[2]).split("\\."); Stringseconds; if (secnds.length == 0) { seconds= splits[2]; }else{ seconds= secnds[0]; } return splits[0] + "/1," + splits[1] + "/1," + seconds + "/1";}
源码下载
(因为实例中需要获取GPS信息,因此源码中已经使用了百度地图的sdk,输入自己的key之后便可以直接使用获取GPS信息写入到jpeg图片中)
1 0
- 写入GPS信息到jpeg格式的图片中 ExifInterface类的使用
- 写入GPS信息到jpeg格式的图片中 ExifInterface类的使用
- 写入GPS信息到jpeg格式的图片中 ExifInterface类的使用
- ExifInterface类的使用
- 将GPS信息写入到图片里
- Android中通过Exif-ExifInterface获取图片的相关信息,并且在图片上添加获取到的信息将图片展示出来
- OpenCV - 将图片的二进制信息写入到文件中
- 在图片中添加自己的文本信息(PNG及JPEG格式)
- 从EXIF JPEG图片中提取GPS位置信息
- VC中JPEG格式到BMP格式的转换
- 在Android下通过ExifInterface类操作图片的Exif信息
- jpeg图片的exif信息
- Android 图片信息获取--ExifInterface类
- ExifInterface图片附加信息
- Android中通过Exifinterface读取图片地理位置信息
- Android中通过Exifinterface读取图片地理位置信息
- Android中通过Exifinterface读取图片地理位置信息
- ExifInterface获取拍照后的图片属性
- 免费的编程中文书籍索引
- csvkit 学习和使用 (三) csvjoin csvstack
- Gas Station
- spring ApplicationContext.xml之ResourceBundleMessageSource配置资源文件
- linux下phpmyadmin安装
- 写入GPS信息到jpeg格式的图片中 ExifInterface类的使用
- 2015.1.4
- python 练习
- actionbarsherlock getSupportActionBar() return null in android4.0,but in 2.3.3 is ok
- Struts2对于i18n的支持
- 内置函数 - type
- 关于javascript原型链上属性查找的小讨论
- DB2时间的问题,和oracle不同
- C#的三大结构