【IT168技术】从Android 2.0开始新增了ExifInterface类,ExifInterface类主要描述多媒体文件比如JPG格式图片的一些附加信息,比如拍照的设备厂商,当时的日期时间,曝光时间,快门速度等。该类位于android.media.ExifInterface的位置,需要调用API Level至少为5即2.0 SDK。
一、ExifInterface类给我们了一个实用的方法public byte[] getThumbnail () 这个方法可以生成一个缩略图,返回一个字节数组,我们通过以前讲到的通过OutputStream将其保存成一个JPG文件。当然如果要是显示到一个Drawable对象,可以通过decodeByteArray(byte[], int, int) 类来解析这个字节数组,不过具体生成的分辨率还不清楚。
二、图片的MIME Exif信息
图片的的Exif信息和MP3的ID3标签类似,使用了属性和值的存储方式。通过public void setAttribute (String tag, String value) 来设置,而获取可以通过 public int getAttributeInt (String tag, int defaultValue) 和 public String getAttribute (String tag) 两种方法都可以,getAttributeInt 重载方法一第二个参数为我们设置的默认值,如果成功则返回相应Tag的值;特定的整数内容为该方法直接返回值。而重载方法二该方法直接返回结果,如果失败则为null。
目前Android SDK定义的Tag有:
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 白平衡
从Android 2.0.1 SDK上看属性不是很多,详细的可能会在以后的版本中添加,调用示例如下
String sFileName="cwj-android123.jpg";
ExifInterface exif = new ExifInterface(filename);
String sModel=exif.getAttribute(ExifInterface.TAG_MODEL);
最终sModel就是拍照设备的型号,这里我们可以看到是Nexus One或HTC Hero等等的字符,当然是用数码相机拍照从PC上传的是该文件原始生成的设备,比如IXUS 980等等。
http://doc.chinaunix.net/android/200910/488798.shtml
分享到:
相关推荐
Android 图片exif信息读写,官方的不支持保存中文字符,经过改良后,支持保存中文字符,编码格式为UFT-8;使用方法与官方一致,把文件名称改成你所需要的就行。
博文链接http://blog.csdn.net/diyangxia/article/details/50995253,仅供参考
SwipeView类似桌面的滑动界面使用了android 2.0以上的ExifInterface来生成缩略图。可用来设计游戏的选关界面。
主要介绍了Android开发之使用ExifInterface获取拍照后的图片属性,较为详细的分析了ExifInterface类操作图片的具体使用技巧,需要的朋友可以参考下
android应用里使用相机图片时必须要考虑的一个问题就是图片朝向,只有判断对朝向才能调整图片从而更好的展现。本文将介绍一种通过ExifInterface判断图片朝向的方法!上代码: /** * 利用给定路径下的图片设置...
android拍摄图片并获取当前拍摄的经纬度进行上传
它基于android [ExifInterface] 和[Jhead] c库 进口 只需将此行添加到您的依赖项组中: compile 'it.sephiroth.android.exif:library:+' 用法 import it.sephiroth.android.library.exif2.ExifInterface; import ...
SwipeView类似桌面的滑动界面使用了android 2.0以上的ExifInterface来生成缩略图。可用来设计游戏的选关界面。
了解数码相片的Exif信息格式,并利用VB来提取出来。
android应用里使用相机图片时必须要考虑的一个问题就是图片朝向,只有判断对朝向才能调整图片从而更好的展现。本文将介绍一种通过ExifInterface判断图片朝向的方法! 上代码: /** * * 利用给定路径下的图片...
#有效加载大位图 - Android ##概述这是一个用于从本地磁盘有效加载位图的Android库,如果您在磁盘上有大图像并希望将其加载到ImageView 中,那么您可以使用此库从该图像加载采样位图。 您可以使用此库来避免加载高...
'com.android.support:appcompat-v7:27.1.1' 'com.android.support:exifinterface:27.1.1' 'com.android.support:preference-v7:27.1.1' 'com.android.support.constraint:约束布局:1.1.0' '...
## Usefull info #####我需要开始在Android项目中使用Tesseract类的内容:添加到build.gradle : dependencies { compile 'com.rmtheis:tess-two:5.4.1' } 就这样! #####为什么此示例仅适用于以横向模式捕获的...
通过ExifInterface可以将拍照时的一些属性信息写入图片文件里,其中包括经纬度信息。本文介绍一种将经纬度坐标写入JPEG图片文件的方法! 核心代码 /** * 浮点型经纬度值转成度分秒格式 * * @param coord * @return ...
Java获取EXIF所需的jar包包括metadata-extractor-2.6.2.jar和xmpcore.jar
通过照相获取相册的ExifInterface信息,比如时间,位置,产品型号等