Android中读图片Exif信息的方法

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) {
    }

你可能感兴趣的:(移动开发)