📜  什么是 Android 中的 ExifInterface?(1)

📅  最后修改于: 2023-12-03 15:36:07.757000             🧑  作者: Mango

什么是 Android 中的 ExifInterface?

ExifInterface是一个Android中的类,用于读取和写入JPEG和部分RAW文件的EXIF元数据。

通过ExifInterface,开发者可以访问嵌入在JPEG图像(和某些RAW图像)中的元数据。元数据包括诸如拍摄的日期和时间,厂商信息,照相机型号,图像方向等信息。这些元数据可以用于创建更好的相册应用程序、照片编辑应用程序等。

ExifInterface的常用方法
  1. 读取图片的Exif信息
ExifInterface exif = new ExifInterface(filePath);
String make = exif.getAttribute(ExifInterface.TAG_MAKE); // 获取生产厂商
String model = exif.getAttribute(ExifInterface.TAG_MODEL); // 获取相机型号
String dateTime = exif.getAttribute(ExifInterface.TAG_DATETIME); // 获取拍摄日期时间
int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED); // 获取图片方向
  1. 写入图片的Exif信息
ExifInterface exif = new ExifInterface(filePath);
exif.setAttribute(ExifInterface.TAG_MAKE, "manufacturer");
exif.setAttribute(ExifInterface.TAG_MODEL, "model");
exif.setAttribute(ExifInterface.TAG_DATETIME, "dateTime");
exif.setAttribute(ExifInterface.TAG_ORIENTATION, String.valueOf(ExifInterface.ORIENTATION_ROTATE_90)); // 修改图片方向为逆时针旋转90度
exif.saveAttributes();

需要注意的是,ExifInterface只能用于读取和写入本地文件系统中的文件,不能用于读取网络上的文件。在Android 10及以上版本中,需要在AndroidManifest.xml中声明 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 权限。

总结

ExifInterface是Android中读取和写入JPEG图像元数据的常用类,它可以让开发者获取图像的拍摄日期、方向、型号等信息,开发者可以使用ExifInterface来创建更好的相册、照片编辑等应用程序。