很多时候我们都要对我们的图片信息进行一些处理,比如向图片中写入经纬度,拍摄时间,设备信息,作者等等。

这个时候我们就要对我们的图片Exif进行写入信息的操作,当然,我们想知道图片的Exif信息,也可以对Exif信息的读取操作。

因为Android本身有对图片Exif操作的方法,所以就不需要额外导入其他 jar

下面先贴出代码:

<span style="font-size:14px;">import android.media.ExifInterface;
import android.util.Log; import java.io.IOException; /**
* Created by long on 2016/3/22.
*/
public class ModifyExif {
private static ExifInterface exif = null; //设置exif
public static void setExif
(String filepath,String longitude,String latitude,String time){
try{
exif = new ExifInterface(filepath); //根据图片的路径获取图片的Exif
}catch (IOException ex){
Log.e("Mine","cannot read exif",ex);
}
exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE,longitude); //把经度写进exif
exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, latitude); //把纬度写进exif
exif.setAttribute(ExifInterface.TAG_DATETIME,time); //把时间写进exif
exif.setAttribute(ExifInterface.TAG_MAKE,longitude); //把经度写进MAKE 设备的制造商,当然这样也是可以的,大家都是Stirng类型
exif.setAttribute(ExifInterface.TAG_MODEL,latitude); //把纬度写进MODEL
try{
exif.saveAttributes(); //最后保存起来
}catch (IOException e){
Log.e("Mine","cannot save exif",e);
}
} //获取exif
public static ExifInterface getExif(String filepath){
try {
exif = new ExifInterface(filepath); //想要获取相应的值:exif.getAttribute("对应的key");比如获取时间:exif.getAttribute(ExifInterface.TAG_DATETIME);
} catch (Exception e) {
e.printStackTrace();
}
return exif;
} <span style="font-family: Arial, Helvetica, sans-serif;">}</span></span>

相应文章分享:

http://blog.csdn.net/xywy2008/article/details/38089789

http://blog.csdn.net/gao_chun/article/details/46854323

http://blog.csdn.net/fengyud/article/details/6147597

http://blog.csdn.net/kook_okko/article/details/2635294

http://blog.csdn.net/dc15822445347/article/details/8142103

关注公众号,分享干货,讨论技术

Android 实现对图片 Exif 的修改(Android 自带的方法)的更多相关文章

  1. android系统通过图片绝对路径获取URI的三种方法

    最近做项目要通过图片的绝对路径找到图片的URI,然后删除图片,小小总结一下获取URI的方法,亲自试验在 android 4.1.3的系统上都是可用的. 1.将所有的图片路径取出,遍历比较找到需要的路径 ...

  2. Android中读取图片EXIF元数据之metadata-extractor的使用

    一.引言及介绍 近期在开发中用到了metadata-extractor-xxx.jar 和 xmpcore-xxx.jar这个玩意, 索性查阅大量文章了解学习,来分享分享. 本身工作也是常常和处理大图 ...

  3. Android 图片Exif信息相关的获取与修改

    1 Exif是什么 Exif是一种图像文件格式,它的数据存储于JPEG格式是完全相同的,实际上Exif格式就是JPEG格式头插入了 数码照片的信息,包括拍摄的光圈.快门.平衡白.ISO.焦距.日期时间 ...

  4. Android 获取图片exif信息

    使用android api读取图片的exif信息 布局代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/r ...

  5. Android -- 加载大图片到内存,从gallery获取图片,获取图片exif信息

    1. 加载大图片到内存,从gallery获取图片 android默认的最大堆栈只有16M, 图片像素太高会导致内存不足的异常, 需要将图片等比例缩小到适合手机屏幕分辨率, 再加载. 从gallery ...

  6. windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件

    原创文章,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4535459.html android 程序打包成apk,如果在是命令行方式,一般都要经过如下步骤: 1.用a ...

  7. Android 设置thumb图片大小

    xml: android:thumb="@drawable/seekbar_thumb" seekbar_thumb.xml: <?xml version="1.0 ...

  8. android 42 获取图片

    资源中获取图片:可以从工程assets文件夹.res/drawble文件夹.sd卡.服务端下载图片. 页面: <LinearLayout xmlns:android="http://s ...

  9. Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类

    Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类 转载自http://www.trinea.cn/android/android-common-lib/ 介绍总结的一 ...

随机推荐

  1. Hibernate-ORM:11.Hibernate中的关联查询

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客将讲述Hibernate中的关联查询,及其级联(cascade)操作,以及指定哪一方维护关联关系的(i ...

  2. [B2B、B2C、C2C] 区别介绍

    最近在学习建站系统的时候,偶尔我们的老大会说几个自己所不太了解的名词“简称”,所以呢?我就总结了一下,如果有不全面的地方,还请博友们多多指点! B2B B2B(也有写成BTB)是指企业对企业之间的营销 ...

  3. 使用IDEA快速搭建Gradle项目

  4. Python 3基础教程22-单个列表操作

    本文来介绍列表的操作,先看看单个列表的操作,列表有多个方法.以下多行代码,建议你写一个方法,测试运行一个方法,不然看起来很乱. # 元组操作 x = [5,6,2,1,6,7,2,7,9] # app ...

  5. BZOJ 2946 POI2000 公共串 后缀自动机(多串最长公共子串)

    题意概述:给出N个字符串,每个串的长度<=2000(雾...可能是当年的年代太久远机子太差了),问这N个字符串的最长公共子串长度为多少.(N<=5) 抛开数据结构,先想想朴素做法. 设计一 ...

  6. 在easyUI开发中,出现jquery.easyui.min.js函数库问题

    easyUI是jquery的一个插件,是民间的插件.easyUI使用起来很方便,里面有网页制作的最重要的三大方块:javascript代码.html代码和Css样式.我们在导入easyUI库后,可以直 ...

  7. mysql与hive2.1.1安装和配置

    1.mysql安装 这个安装很简单,是在线安装,只需要按顺序执行一下几个命令就ok了. (1)sudo apt-get install mysql-server (2)sudo apt-get ins ...

  8. .Net MVC中使用css 和js

    @section script { <script language="javascript"> </script> }

  9. Storm之tickTuple

    tickTuple是Storm中引入的一种定时机制,利用tickTuple能够实现间隔一段时间进行某种处理的逻辑. 在boltA中实现tickTuple注册的方法如下 @Override public ...

  10. ob_flush()和flush()的区别

    最近写定时任务,遇到ob_flush()和flush()混淆的问题... ob_flush/flush在手册中的描述, 都是刷新输出缓冲区, 并且还需要配套使用, 所以会导致很多人迷惑- 其实, 他们 ...