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) {
    }
时间: 2024-09-11 05:03:00

Android中读图片Exif信息的方法的相关文章

Java读取图片EXIF信息的方法_java

本文实例讲述了Java读取图片EXIF信息的方法.分享给大家供大家参考.具体分析如下: 首先介绍一下什么是EXIF,EXIF是Exchangeable Image File的缩写,这是一种专门为数码相机照片设定的格式.这种格式可以用来记录数字照片的属性信息,例如相机的品牌及型号.相片的拍摄时间.拍摄时所设置 的光圈大小.快门速度.ISO等等信息.除此之外它还能够记录拍摄数据,以及照片格式化方式,这样就可以输出到兼容EXIF格式的外设上,例如照片打印机 等. 目前最常见的支持EXIF信息的图片格式

python通过pil模块获得图片exif信息的方法_python

本文实例讲述了python通过pil模块获得图片exif信息的方法.分享给大家供大家参考.具体分析如下: python的pil模块功能超级强大,不但可以用来处理图片也可以用来获取图片的exif数据 from PIL import Image #code from http://www.jb51.net img = Image.open('img.jpg') exif_data = img._getexif() 希望本文所述对大家的Python程序设计有所帮助. 以上是小编为您精心准备的的内容,在

python通过exifread模块获得图片exif信息的方法_python

本文实例讲述了python通过exifread模块获得图片exif信息的方法.分享给大家供大家参考.具体分析如下: python可通过exifread模块获得图片exif信息 exifread模块的下载地址:https://pypi.python.org/pypi/ExifRead 也可以通过pip进行安装:pip install exifread import exifread # Open image file for reading (binary mode) f = open(path_

Android中WebView图片实现自适应的方法_Android

本文实例讲述了Android中WebView图片实现自适应的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: WebSettings ws = tv.getSettings(); 加上这个属性后,html的图片就会以单列显示就不会变形占了别的位置 ws.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); //让缩放显示的最小值为起始 webView.setInitialScale(5); // 设置支持缩放 webSettin

Android中WebView图片实现自适应的方法

本文实例讲述了Android中WebView图片实现自适应的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下:WebSettings ws = tv.getSettings(); 加上这个属性后,html的图片就会以单列显示就不会变形占了别的位置 ws.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); //让缩放显示的最小值为起始 webView.setInitialScale(5); // 设置支持缩放 webSetting

PHP中读取照片exif信息的方法_php技巧

先来了解什么是图片的Exif信息 Exif是一种图象文件格式,它的数据存储与JPEG格式是完全相同的.实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈.快门.白平衡.ISO.焦距.日期时间等各种和拍摄条件以及相机品牌.型号.色彩编码.拍摄时录制的声音以及全球定位系统(GPS).缩略图等.简单地说,Exif=JPEG+拍摄参数.因此,你可以利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但并不是所有的图形程序都能处理Exif信息. 以上引自百度百科. 读

Android 中对于图片的内存优化方法_Android

1. 对图片本身进行操作 尽量不要使用 setImageBitmap.setImageResource. BitmapFactory.decodeResource 来设置一张大图,因为这些方法在完成 decode 后,最终都是通过 Java 层的 createBitmap 来完成的,需要消耗更多内存.因此,改用先通过 BitmapFactory.decodeStream 方法,创建出一个 bitmap,再将其设为 ImageView 的 source,decodeStream 最大的秘密在于其直

Android 中对于图片的内存优化方法

1. 对图片本身进行操作 尽量不要使用 setImageBitmap.setImageResource. BitmapFactory.decodeResource 来设置一张大图,因为这些方法在完成 decode 后,最终都是通过 Java 层的 createBitmap 来完成的,需要消耗更多内存.因此,改用先通过 BitmapFactory.decodeStream 方法,创建出一个 bitmap,再将其设为 ImageView 的 source,decodeStream 最大的秘密在于其直

Android中传递图片的2种方法_Android

方法一: 基本思路是先把bitmap转化为byte数组,用Intent传递数组,在将数组转化为bitmap   bitmap转化为byte数组的方法:   复制代码 代码如下: private byte[] Bitmap2Bytes(Bitmap bm){           ByteArrayOutputStream baos = new ByteArrayOutputStream();             bm.compress(Bitmap.CompressFormat.PNG, 10