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.