1.2.5 内部元数据

    EXIF表示可交换的图像格式(Exchangeable Image File Format),他是在图像文件保存元数据的一种标准方式。许多数字摄像头和桌面应用程序都支持使用EXIF数据。由于EXIF数据实际上市文件的一部分,因此当文件从一个位置传送到另一个位置时,不应该将它丢失。例如,当将一个文件从Android设备的SD卡复制到一台家庭计算机时,此数据应该保存完好。如果在一个应用程序(例如iPhoto)中打开软件,那么该数据将会呈现。

    一般而言,EXIF数据是一个非常技术化的;标准中的大多数标记与所捕获图像本身的数据相关,如ExposureTime和ShutterSpeedValue。

    然而,有一些标记可以考虑填写和修改。其中一些标记如下:

    UserComment:由用户生成的备注

    ImageDescription:标题

    Artist:图像的创建者或接受者

    Copyright:图像的版权持有人

    Software:用于创建图像的软件

    幸运的是,Android为我们提供了一种读取和写入EXIF数据的好方法。该方法的主要类是ExifInterface。

     以下代码显示如何使用ExifInterface从一个图像文件读取特定的EXIF数据:

1             ExifInterface ei=new ExifInterface(imageFilePath);
2             String imageDescription=ei.getAttribute("ImageDescription");
3             if(imageDescription!=null){
4                 Log.v("Exif", imageDescription);
5             }

    以下代码显示如何使用ExifInterface将EXIF数据保存到图像文件中:

1             ExifInterface ei=new ExifInterface(imageFilePath);
2             ei.setAttribute("ImageDescription", "Something New");

    ExifInterface包含一组定义了典型数据集的常量,它们会由Camera应用程序自动的包含在捕获的图像中。

    EXIF规范的最新版本是2010年4月发布的2.3版本。可以再以下网址中在线获取它:

    www.cipa.jp/english/hyoujunka/kikaku/pdf/DC-008-2010_E.pdf.