public class ExifInterface
extends Object
java.lang.Object | |
↳ | android.media.ExifInterface |
这是一个在JPEG文件或RAW图像文件中读写Exif标签的类。
支持的格式有:JPEG,DNG,CR2,NEF,NRW,ARW,RW2,ORF和RAF。
JPEG图像文件支持属性突变。
Public constructors |
|
---|---|
ExifInterface(String filename) 从指定的图像文件中读取Exif标签。 |
|
ExifInterface(FileDescriptor fileDescriptor) 从指定的图像文件描述符中读取Exif标签。 |
|
ExifInterface(InputStream inputStream) 从指定的图像输入流中读取Exif标签。 |
Public methods |
|
---|---|
double |
getAltitude(double defaultValue) 以米为单位返回高度。 |
String |
getAttribute(String tag) 如果图像文件中没有这样的标签,则返回指定标签或 |
double |
getAttributeDouble(String tag, double defaultValue) 返回指定为有理数或包含双格式值的标记的double值。 |
int |
getAttributeInt(String tag, int defaultValue) 返回指定标签的整数值。 |
boolean |
getLatLong(float[] output) 将经度和纬度值存储在浮点数组中。 |
byte[] |
getThumbnail() 返回图像文件内的缩略图,如果没有缩略图,则返回 |
long[] |
getThumbnailRange() 返回图像文件中缩略图的偏移量和长度,如果没有缩略图,则 |
boolean |
hasThumbnail() 如果图像文件具有缩略图,则返回true。 |
void |
saveAttributes() 将标签数据保存到原始图像文件中。 |
void |
setAttribute(String tag, String value) 设置指定标签的值。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
String TAG_APERTURE
此常数在API级别24中已弃用。
改为使用TAG_F_NUMBER
类型是双倍的。
常量值:“FNumber”
String TAG_BRIGHTNESS_VALUE
类型是合理的。
常量值:“BrightnessValue”
String TAG_COMPONENTS_CONFIGURATION
类型是字符串。
常量值:“ComponentsConfiguration”
String TAG_COMPRESSED_BITS_PER_PIXEL
类型是合理的。
常量值:“CompressedBitsPerPixel”
String TAG_DATETIME_DIGITIZED
类型是字符串。
常量值:“DateTimeDigitized”
String TAG_DATETIME_ORIGINAL
类型是字符串。
常量值:“DateTimeOriginal”
String TAG_DEVICE_SETTING_DESCRIPTION
类型是字符串。
常量值:“DeviceSettingDescription”
String TAG_DIGITAL_ZOOM_RATIO
类型是双倍的。
常数值:“DigitalZoomRatio”
String TAG_EXPOSURE_BIAS_VALUE
类型是双倍的。
常量值:“ExposureBiasValue”
String TAG_EXPOSURE_PROGRAM
类型是int。
常量值:“ExposureProgram”
String TAG_FLASHPIX_VERSION
类型是字符串。
常量值:“FlashpixVersion”
String TAG_FOCAL_LENGTH_IN_35MM_FILM
类型是int。
常数值:“FocalLengthIn35mmFilm”
String TAG_FOCAL_PLANE_RESOLUTION_UNIT
类型是int。
常量值:“FocalPlaneResolutionUnit”
String TAG_FOCAL_PLANE_X_RESOLUTION
类型是合理的。
常量值:“FocalPlaneXResolution”
String TAG_FOCAL_PLANE_Y_RESOLUTION
类型是合理的。
常量值:“FocalPlaneYResolution”
String TAG_GPS_ALTITUDE
基于TAG_GPS_ALTITUDE_REF中的参考的高度(以米为单位)。 类型是合理的。
常数值:“GPSAltitude”
String TAG_GPS_ALTITUDE_REF
如果海拔高于海平面,则为0。 1如果海拔高度低于海平面。 类型是int。
常数值:“GPSAltitudeRef”
String TAG_GPS_AREA_INFORMATION
类型是字符串。
常数值:“GPSAreaInformation”
String TAG_GPS_DEST_BEARING_REF
类型是字符串。
常量值:“GPSDestBearingRef”
String TAG_GPS_DEST_DISTANCE
类型是合理的。
常数值:“GPSDestDistance”
String TAG_GPS_DEST_DISTANCE_REF
类型是字符串。
常数值:“GPSDestDistanceRef”
String TAG_GPS_DEST_LATITUDE
类型是合理的。
常量值:“GPSDestLatitude”
String TAG_GPS_DEST_LATITUDE_REF
类型是字符串。
常量值:“GPSDestLatitudeRef”
String TAG_GPS_DEST_LONGITUDE
类型是合理的。
常数值:“GPSDestLongitude”
String TAG_GPS_DEST_LONGITUDE_REF
类型是字符串。
常量值:“GPSDestLongitudeRef”
String TAG_GPS_IMG_DIRECTION
类型是合理的。
常量值:“GPSImgDirection”
String TAG_GPS_IMG_DIRECTION_REF
类型是字符串。
常量值:“GPSImgDirectionRef”
String TAG_GPS_LATITUDE
类型是合理的。 格式为“num1 / denom1,num2 / denom2,num3 / denom3”。
常数值:“GPSLatitude”
String TAG_GPS_LONGITUDE
类型是合理的。 格式为“num1 / denom1,num2 / denom2,num3 / denom3”。
常数值:“GPSLongitude”
String TAG_GPS_LONGITUDE_REF
类型是字符串。
常数值:“GPSLongitudeRef”
String TAG_GPS_PROCESSING_METHOD
类型是字符串。 用于定位的GPS处理方法的名称。
常数值:“GPSProcessingMethod”
String TAG_GPS_TIMESTAMP
类型是字符串。 格式为“hh:mm:ss”。
常数值:“GPSTimeStamp”
String TAG_IMAGE_DESCRIPTION
类型是字符串。
常量值:“ImageDescription”
String TAG_INTEROPERABILITY_INDEX
类型是字符串。
常量值:“InteroperabilityIndex”
String TAG_ISO
此常数在API级别24中已弃用。
改为使用TAG_ISO_SPEED_RATINGS
类型是int。
常数值:“ISOSpeedRatings”
String TAG_ISO_SPEED_RATINGS
类型是int。
常数值:“ISOSpeedRatings”
String TAG_JPEG_INTERCHANGE_FORMAT
类型是int。
常量值:“JPEGInterchangeFormat”
String TAG_JPEG_INTERCHANGE_FORMAT_LENGTH
类型是int。
常量值:“JPEGInterchangeFormatLength”
String TAG_MAX_APERTURE_VALUE
类型是合理的。
常数值:“MaxApertureValue”
String TAG_PHOTOMETRIC_INTERPRETATION
类型是int。
常数值:“PhotometricInterpretation”
String TAG_PIXEL_X_DIMENSION
类型是int。
常量值:“PixelXDimension”
String TAG_PIXEL_Y_DIMENSION
类型是int。
常量值:“PixelYDimension”
String TAG_PLANAR_CONFIGURATION
类型是int。
常数值:“PlanarConfiguration”
String TAG_PRIMARY_CHROMATICITIES
类型是合理的。
常量值:“PrimaryChromaticities”
String TAG_REFERENCE_BLACK_WHITE
类型是合理的。
常量值:“ReferenceBlackWhite”
String TAG_RELATED_SOUND_FILE
类型是字符串。
常量值:“RelatedSoundFile”
String TAG_SAMPLES_PER_PIXEL
类型是int。
常量值:“SamplesPerPixel”
String TAG_SCENE_CAPTURE_TYPE
类型是int。
常量值:“SceneCaptureType”
String TAG_SHUTTER_SPEED_VALUE
类型是合理的。
常量值:“ShutterSpeedValue”
String TAG_SPATIAL_FREQUENCY_RESPONSE
类型是字符串。
常量值:“SpatialFrequencyResponse”
String TAG_SPECTRAL_SENSITIVITY
类型是字符串。
常数值:“SpectralSensitivity”
String TAG_STRIP_BYTE_COUNTS
类型是int。
常量值:“StripByteCounts”
String TAG_SUBJECT_DISTANCE
类型是双倍的。
常量值:“SubjectDistance”
String TAG_SUBJECT_DISTANCE_RANGE
类型是int。
常量值:“SubjectDistanceRange”
String TAG_SUBSEC_TIME_DIG
此常数在API级别24中已弃用。
改为使用TAG_SUBSEC_TIME_DIGITIZED
类型是字符串。
常量值:“SubSecTimeDigitized”
String TAG_SUBSEC_TIME_DIGITIZED
类型是字符串。
常量值:“SubSecTimeDigitized”
String TAG_SUBSEC_TIME_ORIG
此常数在API级别24中已弃用。
改为使用TAG_SUBSEC_TIME_ORIGINAL
类型是字符串。
常量值:“SubSecTimeOriginal”
String TAG_SUBSEC_TIME_ORIGINAL
类型是字符串。
常量值:“SubSecTimeOriginal”
String TAG_THUMBNAIL_IMAGE_LENGTH
类型是int。
常量值:“ThumbnailImageLength”
String TAG_THUMBNAIL_IMAGE_WIDTH
类型是int。
常量值:“ThumbnailImageWidth”
String TAG_TRANSFER_FUNCTION
类型是int。
常量值:“TransferFunction”
String TAG_Y_CB_CR_COEFFICIENTS
类型是合理的。
常量值:“YCbCrCoefficients”
String TAG_Y_CB_CR_POSITIONING
类型是int。
常量值:“YCbCrPositioning”
String TAG_Y_CB_CR_SUB_SAMPLING
类型是int。
常量值:“YCbCrSubSampling”
ExifInterface (String filename)
从指定的图像文件中读取Exif标签。
Parameters | |
---|---|
filename |
String
|
Throws | |
---|---|
IOException |
ExifInterface (FileDescriptor fileDescriptor)
从指定的图像文件描述符中读取Exif标签。 属性突变仅支持可写和可搜索的文件描述符。 此构造函数不会倒回给定文件描述符的偏移量。 开发人员在使用后应关闭文件描述符。
Parameters | |
---|---|
fileDescriptor |
FileDescriptor
|
Throws | |
---|---|
IOException |
ExifInterface (InputStream inputStream)
从指定的图像输入流中读取Exif标签。 输入流不支持属性突变。 给定的输入流将继续其当前位置。 开发人员在使用后应关闭输入流。
Parameters | |
---|---|
inputStream |
InputStream
|
Throws | |
---|---|
IOException |
double getAltitude (double defaultValue)
以米为单位返回高度。 如果exif标签不存在,则返回defaultValue 。
Parameters | |
---|---|
defaultValue |
double : the value to return if the tag is not available. |
Returns | |
---|---|
double |
String getAttribute (String tag)
如果图像文件中没有这样的标签,则返回指定标签或 null
的值。
Parameters | |
---|---|
tag |
String : the name of the tag. |
Returns | |
---|---|
String |
double getAttributeDouble (String tag, double defaultValue)
返回指定为有理数或包含双格式值的标记的double值。 如果图像文件中没有这样的标签,或者该值不能被解析为double,则返回defaultValue 。
Parameters | |
---|---|
tag |
String : the name of the tag. |
defaultValue |
double : the value to return if the tag is not available. |
Returns | |
---|---|
double |
int getAttributeInt (String tag, int defaultValue)
返回指定标签的整数值。 如果图像文件中没有这样的标签,或者该值不能被解析为整数,则返回defaultValue 。
Parameters | |
---|---|
tag |
String : the name of the tag. |
defaultValue |
int : the value to return if the tag is not available. |
Returns | |
---|---|
int |
boolean getLatLong (float[] output)
将经度和纬度值存储在浮点数组中。 第一个元素是纬度,第二个元素是经度。 如果Exif标签不可用,则返回false。
Parameters | |
---|---|
output |
float
|
Returns | |
---|---|
boolean |
byte[] getThumbnail ()
返回图像文件内的缩略图,如果没有缩略图,则返回null
。 返回的数据采用JPEG格式,可以使用decodeByteArray(byte[], int, int)
进行解码
Returns | |
---|---|
byte[] |
long[] getThumbnailRange ()
返回图像文件中缩略图的偏移量和长度,如果没有缩略图,则 null
。
Returns | |
---|---|
long[] |
two-element array, the offset in the first value, and length in the second, or null if no thumbnail was found. |
void saveAttributes ()
将标签数据保存到原始图像文件中。 这很昂贵,因为它涉及将一个文件中的所有数据复制到另一个文件并删除旧文件并重命名另一个文件。 最好使用setAttribute(String, String)
将所有属性设置为写入并进行一次调用,而不是针对每个属性调用多次。
Throws | |
---|---|
IOException |
void setAttribute (String tag, String value)
设置指定标签的值。
Parameters | |
---|---|
tag |
String : the name of the tag. |
value |
String : the value of the tag. |