Android 图片信息获取--ExifInterface类

通过Exfi获取照片相关信息。

因为公司出了这个需求,所以研究了下,这个比较简单,其实就是拿到照片后,通过ExifInterface类获取到照片的相关信息。问题发现了一些,比如经纬度属性获取不稳定偏差大,修改后ExifInterface并没有真正的存储到本地文件中等,最后我是通过集成百度SDK完成这方面的功能,各种不给力呀

参考:

TAG_DATETIME 时间日期 

TAG_FLASH 闪光灯 

TAG_GPS_LATITUDE 纬度 

TAG_GPS_LATITUDE_REF 纬度参考

TAG_GPS_LONGITUDE 经度 

TAG_GPS_LONGITUDE_REF 经度参考 

TAG_IMAGE_LENGTH 图片长

TAG_IMAGE_WIDTH 图片宽 

TAG_MAKE 设备制造商 

TAG_MODEL 设备型号 

TAG_ORIENTATION 方向

TAG_WHITE_BALANCE 白平衡

步骤

1. 拿到ExifInterface

 mExif = new ExifInterface(filename);

2. 通过ExifInterface拿到各个信息

String date = exif.getAttribute(ExifInterface.TAG_DATETIME);

String flash = exif.getAttribute(ExifInterface.TAG_FLASH);

String latitude = exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE);

String latitude_ref = exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE_REF);

String longitude = exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE);

String longitude_ref = exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF);

String image_length = exif.getAttribute(ExifInterface.TAG_IMAGE_LENGTH);

String image_width = exif.getAttribute(ExifInterface.TAG_IMAGE_WIDTH);

String make = exif.getAttribute(ExifInterface.TAG_MAKE);

String model = exif.getAttribute(ExifInterface.TAG_MODEL);

String orientation = exif.getAttribute(ExifInterface.TAG_ORIENTATION);

String white_balance = exif.getAttribute(ExifInterface.TAG_WHITE_BALANCE);

3. 修改ExifInterface信息

   if( mExif  !=  null){

       mExif.setAttribute(ExifInterface.TAG_MAKE,  "大华为");

     try {

mExif.saveAttributes();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

     }

 

效果

上半部分是原图效果,下半部分修改过的信息,只改了一个生产厂商


问题:

1. 经纬度难以获取。

首先,必须要设置照相机开启GPS才能,拿到经纬度信息,而且因为各个厂商的修改,没有找到通过代码开启照相机GPSapi,更有甚者,魅蓝note就压根连手动进入设置都找不到。我最后是集成百度sdk,去完成这部分功能的。

2. 修改ExifInterface信息,保存无效。

mExif.setAttribute(ExifInterface.TAG_MAKE,  "大华为");

mExif.saveAttributes();

然并卵,么得用,下次读取还是这样。

 

 

 源码地址

http://download.csdn.net/detail/fly_saint/9315033

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值