Exif读取类
Android提供了读取写入Exif的API,但很可惜,这个API只能由指定文件名读取、写入Exif,效率低得可怜。
不得已,把Android系统代码里图库的一段摘了过来。
有Android源码的看源码中 packages/apps/Gallery2/ 部分,
没有或者图方便的直接看这里:
https://github.com/jxt1234/ThirdPartyUsefulCode/tree/master/android_app/exif
使用方法
和SDK中那个API用法基本一致,可参考:
http://www.cnblogs.com/hyzhou/p/3336812.html
不过这个Exif库支持从内存、流之中直接读取写入,方便很多。
用到的接口只有
ExifInterface
其中读取和写入的接口支持内存/流。
readExif 读取
writeExif 写入
其他用法一样。
使用实例
读取Exif中的缩略图示例
public void onHandle(final byte[] data){
ExifInterface exif = new ExifInterface();
try {
exif.readExif(data);
} catch (IOException e1) {
e1.printStackTrace();
}
Bitmap thumbnail_origin = null;
if (exif.hasThumbnail()){
thumbnail_origin = exif.getThumbnailBitmap();
}
/*.......*/
}
写入:
//Bitmap result = XXXXXXX;
//String file = YYYY;
//ExifInterface exif = ZZZZ;
FileOutputStream fstream = new FileOutputStream(file);
try {
exif.writeExif(result, fstream);
} catch (IOException e1) {
}