ExifInterface
public
class
ExifInterface
extends Object
java.lang.Object | |
↳ | android.media.ExifInterface |
This is a class for reading and writing Exif tags in various image file formats.
Note: This class has known issues on some versions of Android. It is recommended to use the AndroidX ExifInterface Library since it offers a superset of the functionality of this class and is more easily updateable. In addition to the functionality of this class, it supports parsing extra metadata such as exposure and data compression information as well as setting extra metadata such as GPS and datetime information.
Supported for reading: JPEG, PNG, WebP, HEIF, DNG, CR2, NEF, NRW, ARW, RW2, ORF, PEF, SRW, RAF, AVIF.
Supported for writing: JPEG, PNG, WebP.
Note: JPEG and HEIF files may contain XMP data either inside the Exif data chunk or outside of it. This class will search both locations for XMP data, but if XMP data exist both inside and outside Exif, will favor the XMP data inside Exif over the one outside.
Summary
Public constructors | |
---|---|
ExifInterface(File file)
Reads Exif tags from the specified image file. |
|
ExifInterface(FileDescriptor fileDescriptor)
Reads Exif tags from the specified image file descriptor. |
|
ExifInterface(InputStream inputStream)
Reads Exif tags from the specified image input stream. |
|
ExifInterface(InputStream inputStream, int streamType)
Reads Exif tags from the specified image input stream based on the stream type. |
|
ExifInterface(String filename)
Reads Exif tags from the specified image file. |
Public methods | |
---|---|
double
|
getAltitude(double defaultValue)
Return the altitude in meters. |
String
|
getAttribute(String tag)
Returns the value of the specified tag or |
byte[]
|
getAttributeBytes(String tag)
Returns the raw bytes for the value of the requested tag inside the image
file, or |
double
|
getAttributeDouble(String tag, double defaultValue)
Returns the double value of the tag that is specified as rational or contains a double-formatted value. |
int
|
getAttributeInt(String tag, int defaultValue)
Returns the integer value of the specified tag. |
long[]
|
getAttributeRange(String tag)
Returns the offset and length of the requested tag inside the image file,
or |
long
|
getDateTime()
Returns parsed |
long
|
getDateTimeDigitized()
Returns parsed |
long
|
getDateTimeOriginal()
Returns parsed |
long
|
getGpsDateTime()
Returns number of milliseconds since Jan. |
boolean
|
getLatLong(float[] output)
Stores the latitude and longitude value in a float array. |
byte[]
|
getThumbnail()
Returns the JPEG compressed thumbnail inside the image file, or |
Bitmap
|
getThumbnailBitmap()
Creates and returns a Bitmap object of the thumbnail image based on the byte array and the
thumbnail compression value, or |
byte[]
|
getThumbnailBytes()
Returns the thumbnail bytes inside the image file, regardless of the compression type of the thumbnail image. |
long[]
|
getThumbnailRange()
Returns the offset and length of thumbnail inside the image file, or
|
boolean
|
hasAttribute(String tag)
Returns true if the image file has the given attribute defined. |
boolean
|
hasThumbnail()
Returns true if the image file has a thumbnail. |
static
boolean
|
isSupportedMimeType(String mimeType)
Returns whether ExifInterface currently supports reading data from the specified mime type or not. |
boolean
|
isThumbnailCompressed()
Returns true if thumbnail image is JPEG Compressed, or false if either thumbnail image does not exist or thumbnail image is uncompressed. |
void
|
saveAttributes()
Save the tag data into the original image file. |
void
|
setAttribute(String tag, String value)
Set the value of the specified tag. |
Inherited methods | |
---|---|
Constants
ORIENTATION_FLIP_HORIZONTAL
public static final int ORIENTATION_FLIP_HORIZONTAL
Constant Value: 2 (0x00000002)
ORIENTATION_FLIP_VERTICAL
public static final int ORIENTATION_FLIP_VERTICAL
Constant Value: 4 (0x00000004)
ORIENTATION_NORMAL
public static final int ORIENTATION_NORMAL
Constant Value: 1 (0x00000001)
ORIENTATION_ROTATE_180
public static final int ORIENTATION_ROTATE_180
Constant Value: 3 (0x00000003)
ORIENTATION_ROTATE_270
public static final int ORIENTATION_ROTATE_270
Constant Value: 8 (0x00000008)
ORIENTATION_ROTATE_90
public static final int ORIENTATION_ROTATE_90
Constant Value: 6 (0x00000006)
ORIENTATION_TRANSPOSE
public static final int ORIENTATION_TRANSPOSE
Constant Value: 5 (0x00000005)
ORIENTATION_TRANSVERSE
public static final int ORIENTATION_TRANSVERSE
Constant Value: 7 (0x00000007)
ORIENTATION_UNDEFINED
public static final int ORIENTATION_UNDEFINED
Constant Value: 0 (0x00000000)
STREAM_TYPE_EXIF_DATA_ONLY
public static final int STREAM_TYPE_EXIF_DATA_ONLY
Constant used to indicate that the input stream contains only Exif data.
The format of the Exif-only data must follow the below structure: Exif Identifier Code ("Exif\0\0") + TIFF header + IFD data See JEITA CP-3451C Section 4.5.2 and 4.5.4 specifications for more details.
Constant Value: 1 (0x00000001)
STREAM_TYPE_FULL_IMAGE_DATA
public static final int STREAM_TYPE_FULL_IMAGE_DATA
Constant used to indicate that the input stream contains the full image data.
The format of the image data should follow one of the image formats supported by this class.
Constant Value: 0 (0x00000000)
TAG_APERTURE
public static final String TAG_APERTURE
This constant was deprecated
in API level 24.
use TAG_F_NUMBER
instead
Type is double.
Constant Value: "FNumber"
TAG_APERTURE_VALUE
public static final String TAG_APERTURE_VALUE
Type is rational.
Constant Value: "ApertureValue"
TAG_ARTIST
public static final String TAG_ARTIST
Type is String.
Constant Value: "Artist"
TAG_BITS_PER_SAMPLE
public static final String TAG_BITS_PER_SAMPLE
Type is int.
Constant Value: "BitsPerSample"
TAG_BRIGHTNESS_VALUE
public static final String TAG_BRIGHTNESS_VALUE
Type is rational.
Constant Value: "BrightnessValue"
TAG_CFA_PATTERN
public static final String TAG_CFA_PATTERN
Type is String.
Constant Value: "CFAPattern"
TAG_COLOR_SPACE
public static final String TAG_COLOR_SPACE
Type is int.
Constant Value: "ColorSpace"
TAG_COMPONENTS_CONFIGURATION
public static final String TAG_COMPONENTS_CONFIGURATION
Type is String.
Constant Value: "ComponentsConfiguration"
TAG_COMPRESSED_BITS_PER_PIXEL
public static final String TAG_COMPRESSED_BITS_PER_PIXEL
Type is rational.
Constant Value: "CompressedBitsPerPixel"
TAG_COMPRESSION
public static final String TAG_COMPRESSION
Type is int.
Constant Value: "Compression"
TAG_CONTRAST
public static final String TAG_CONTRAST
Type is int.
Constant Value: "Contrast"
TAG_COPYRIGHT
public static final String TAG_COPYRIGHT
Type is String.
Constant Value: "Copyright"
TAG_CUSTOM_RENDERED
public static final String TAG_CUSTOM_RENDERED
Type is int.
Constant Value: "CustomRendered"
TAG_DATETIME
public static final String TAG_DATETIME
Type is String.
Constant Value: "DateTime"
TAG_DATETIME_DIGITIZED
public static final String TAG_DATETIME_DIGITIZED
Type is String.
Constant Value: "DateTimeDigitized"
TAG_DATETIME_ORIGINAL
public static final String TAG_DATETIME_ORIGINAL
Type is String.
Constant Value: "DateTimeOriginal"
TAG_DEFAULT_CROP_SIZE
public static final String TAG_DEFAULT_CROP_SIZE
Type is int. DNG Specification 1.4.0.0. Section 4
Constant Value: "DefaultCropSize"
TAG_DEVICE_SETTING_DESCRIPTION
public static final String TAG_DEVICE_SETTING_DESCRIPTION
Type is String.
Constant Value: "DeviceSettingDescription"
TAG_DIGITAL_ZOOM_RATIO
public static final String TAG_DIGITAL_ZOOM_RATIO
Type is double.
Constant Value: "DigitalZoomRatio"
TAG_DNG_VERSION
public static final String TAG_DNG_VERSION
Type is int. DNG Specification 1.4.0.0. Section 4
Constant Value: "DNGVersion"
TAG_EXIF_VERSION
public static final String TAG_EXIF_VERSION
Type is String.
Constant Value: "ExifVersion"
TAG_EXPOSURE_BIAS_VALUE
public static final String TAG_EXPOSURE_BIAS_VALUE
Type is double.
Constant Value: "ExposureBiasValue"
TAG_EXPOSURE_INDEX
public static final String TAG_EXPOSURE_INDEX
Type is rational.
Constant Value: "ExposureIndex"
TAG_EXPOSURE_MODE
public static final String TAG_EXPOSURE_MODE
Type is int.
Constant Value: "ExposureMode"
TAG_EXPOSURE_PROGRAM
public static final String TAG_EXPOSURE_PROGRAM
Type is int.
Constant Value: "ExposureProgram"
TAG_EXPOSURE_TIME
public static final String TAG_EXPOSURE_TIME
Type is double.
Constant Value: "ExposureTime"
TAG_FILE_SOURCE
public static final String TAG_FILE_SOURCE
Type is String.
Constant Value: "FileSource"
TAG_FLASH
public static final String TAG_FLASH
Type is int.
Constant Value: "Flash"
TAG_FLASHPIX_VERSION
public static final String TAG_FLASHPIX_VERSION
Type is String.
Constant Value: "FlashpixVersion"
TAG_FLASH_ENERGY
public static final String TAG_FLASH_ENERGY
Type is rational.
Constant Value: "FlashEnergy"
TAG_FOCAL_LENGTH
public static final String TAG_FOCAL_LENGTH
Type is rational.
Constant Value: "FocalLength"
TAG_FOCAL_LENGTH_IN_35MM_FILM
public static final String TAG_FOCAL_LENGTH_IN_35MM_FILM
Type is int.
Constant Value: "FocalLengthIn35mmFilm"
TAG_FOCAL_PLANE_RESOLUTION_UNIT
public static final String TAG_FOCAL_PLANE_RESOLUTION_UNIT
Type is int.
Constant Value: "FocalPlaneResolutionUnit"
TAG_FOCAL_PLANE_X_RESOLUTION
public static final String TAG_FOCAL_PLANE_X_RESOLUTION
Type is rational.
Constant Value: "FocalPlaneXResolution"
TAG_FOCAL_PLANE_Y_RESOLUTION
public static final String TAG_FOCAL_PLANE_Y_RESOLUTION
Type is rational.
Constant Value: "FocalPlaneYResolution"
TAG_F_NUMBER
public static final String TAG_F_NUMBER
Type is double.
Constant Value: "FNumber"
TAG_GAIN_CONTROL
public static final String TAG_GAIN_CONTROL
Type is int.
Constant Value: "GainControl"
TAG_GPS_ALTITUDE
public static final String TAG_GPS_ALTITUDE
The altitude (in meters) based on the reference in TAG_GPS_ALTITUDE_REF. Type is rational.
Constant Value: "GPSAltitude"
TAG_GPS_ALTITUDE_REF
public static final String TAG_GPS_ALTITUDE_REF
0 if the altitude is above sea level. 1 if the altitude is below sea level. Type is int.
Constant Value: "GPSAltitudeRef"
TAG_GPS_AREA_INFORMATION
public static final String TAG_GPS_AREA_INFORMATION
Type is String.
Constant Value: "GPSAreaInformation"
TAG_GPS_DATESTAMP
public static final String TAG_GPS_DATESTAMP
Type is String.
Constant Value: "GPSDateStamp"
TAG_GPS_DEST_BEARING
public static final String TAG_GPS_DEST_BEARING
Type is rational.
Constant Value: "GPSDestBearing"
TAG_GPS_DEST_BEARING_REF
public static final String TAG_GPS_DEST_BEARING_REF
Type is String.
Constant Value: "GPSDestBearingRef"
TAG_GPS_DEST_DISTANCE
public static final String TAG_GPS_DEST_DISTANCE
Type is rational.
Constant Value: "GPSDestDistance"
TAG_GPS_DEST_DISTANCE_REF
public static final String TAG_GPS_DEST_DISTANCE_REF
Type is String.
Constant Value: "GPSDestDistanceRef"
TAG_GPS_DEST_LATITUDE
public static final String TAG_GPS_DEST_LATITUDE
Type is rational.
Constant Value: "GPSDestLatitude"
TAG_GPS_DEST_LATITUDE_REF
public static final String TAG_GPS_DEST_LATITUDE_REF
Type is String.
Constant Value: "GPSDestLatitudeRef"
TAG_GPS_DEST_LONGITUDE
public static final String TAG_GPS_DEST_LONGITUDE
Type is rational.
Constant Value: "GPSDestLongitude"
TAG_GPS_DEST_LONGITUDE_REF
public static final String TAG_GPS_DEST_LONGITUDE_REF
Type is String.
Constant Value: "GPSDestLongitudeRef"
TAG_GPS_DIFFERENTIAL
public static final String TAG_GPS_DIFFERENTIAL
Type is int.
Constant Value: "GPSDifferential"
TAG_GPS_DOP
public static final String TAG_GPS_DOP
Type is rational.
Constant Value: "GPSDOP"
TAG_GPS_IMG_DIRECTION
public static final String TAG_GPS_IMG_DIRECTION
Type is rational.
Constant Value: "GPSImgDirection"
TAG_GPS_IMG_DIRECTION_REF
public static final String TAG_GPS_IMG_DIRECTION_REF
Type is String.
Constant Value: "GPSImgDirectionRef"
TAG_GPS_LATITUDE
public static final String TAG_GPS_LATITUDE
Type is rational. Format is "num1/denom1,num2/denom2,num3/denom3".
Constant Value: "GPSLatitude"
TAG_GPS_LATITUDE_REF
public static final String TAG_GPS_LATITUDE_REF
Type is String.
Constant Value: "GPSLatitudeRef"
TAG_GPS_LONGITUDE
public static final String TAG_GPS_LONGITUDE
Type is rational. Format is "num1/denom1,num2/denom2,num3/denom3".
Constant Value: "GPSLongitude"
TAG_GPS_LONGITUDE_REF
public static final String TAG_GPS_LONGITUDE_REF
Type is String.
Constant Value: "GPSLongitudeRef"
TAG_GPS_MAP_DATUM
public static final String TAG_GPS_MAP_DATUM
Type is String.
Constant Value: "GPSMapDatum"
TAG_GPS_MEASURE_MODE
public static final String TAG_GPS_MEASURE_MODE
Type is String.
Constant Value: "GPSMeasureMode"
TAG_GPS_PROCESSING_METHOD
public static final String TAG_GPS_PROCESSING_METHOD
Type is String. Name of GPS processing method used for location finding.
Constant Value: "GPSProcessingMethod"
TAG_GPS_SATELLITES
public static final String TAG_GPS_SATELLITES
Type is String.
Constant Value: "GPSSatellites"
TAG_GPS_SPEED
public static final String TAG_GPS_SPEED
Type is rational.
Constant Value: "GPSSpeed"
TAG_GPS_SPEED_REF
public static final String TAG_GPS_SPEED_REF
Type is String.
Constant Value: "GPSSpeedRef"
TAG_GPS_STATUS
public static final String TAG_GPS_STATUS
Type is String.
Constant Value: "GPSStatus"
TAG_GPS_TIMESTAMP
public static final String TAG_GPS_TIMESTAMP
Type is String. Format is "hh:mm:ss".
Constant Value: "GPSTimeStamp"
TAG_GPS_TRACK
public static final String TAG_GPS_TRACK
Type is rational.
Constant Value: "GPSTrack"
TAG_GPS_TRACK_REF
public static final String TAG_GPS_TRACK_REF
Type is String.
Constant Value: "GPSTrackRef"
TAG_GPS_VERSION_ID
public static final String TAG_GPS_VERSION_ID
Type is String.
Constant Value: "GPSVersionID"
TAG_IMAGE_DESCRIPTION
public static final String TAG_IMAGE_DESCRIPTION
Type is String.
Constant Value: "ImageDescription"
TAG_IMAGE_LENGTH
public static final String TAG_IMAGE_LENGTH
Type is int.
Constant Value: "ImageLength"
TAG_IMAGE_UNIQUE_ID
public static final String TAG_IMAGE_UNIQUE_ID
Type is String.
Constant Value: "ImageUniqueID"
TAG_IMAGE_WIDTH
public static final String TAG_IMAGE_WIDTH
Type is int.
Constant Value: "ImageWidth"
TAG_INTEROPERABILITY_INDEX
public static final String TAG_INTEROPERABILITY_INDEX
Type is String.
Constant Value: "InteroperabilityIndex"
TAG_ISO
public static final String TAG_ISO
This constant was deprecated
in API level 24.
use TAG_ISO_SPEED_RATINGS
instead
Type is int.
Constant Value: "ISOSpeedRatings"
TAG_ISO_SPEED_RATINGS
public static final String TAG_ISO_SPEED_RATINGS
Type is int.
Constant Value: "ISOSpeedRatings"
TAG_JPEG_INTERCHANGE_FORMAT
public static final String TAG_JPEG_INTERCHANGE_FORMAT
Type is int.
Constant Value: "JPEGInterchangeFormat"
TAG_JPEG_INTERCHANGE_FORMAT_LENGTH
public static final String TAG_JPEG_INTERCHANGE_FORMAT_LENGTH
Type is int.
Constant Value: "JPEGInterchangeFormatLength"
TAG_LIGHT_SOURCE
public static final String TAG_LIGHT_SOURCE
Type is int.
Constant Value: "LightSource"
TAG_MAKE
public static final String TAG_MAKE
Type is String.
Constant Value: "Make"
TAG_MAKER_NOTE
public static final String TAG_MAKER_NOTE
Type is String.
Constant Value: "MakerNote"
TAG_MAX_APERTURE_VALUE
public static final String TAG_MAX_APERTURE_VALUE
Type is rational.
Constant Value: "MaxApertureValue"
TAG_METERING_MODE
public static final String TAG_METERING_MODE
Type is int.
Constant Value: "MeteringMode"
TAG_MODEL
public static final String TAG_MODEL
Type is String.
Constant Value: "Model"
TAG_NEW_SUBFILE_TYPE
public static final String TAG_NEW_SUBFILE_TYPE
Type is int.
Constant Value: "NewSubfileType"
TAG_OECF
public static final String TAG_OECF
Type is String.
Constant Value: "OECF"
TAG_OFFSET_TIME
public static final String TAG_OFFSET_TIME
A tag used to record the offset from UTC (the time difference from Universal Time Coordinated including daylight saving time) of the time of DateTime tag. The format when recording the offset is "±HH:MM". The part of "±" shall be recorded as "+" or "-". When the offsets are unknown, all the character spaces except colons (":") should be filled with blank characters, or else the Interoperability field should be filled with blank characters. The character string length is 7 Bytes including NULL for termination. When the field is left blank, it is treated as unknown.
- Tag = 36880
- Type = String
- Length = 7
- Default = None
Constant Value: "OffsetTime"
TAG_OFFSET_TIME_DIGITIZED
public static final String TAG_OFFSET_TIME_DIGITIZED
A tag used to record the offset from UTC (the time difference from Universal Time Coordinated including daylight saving time) of the time of DateTimeDigitized tag. The format when recording the offset is "±HH:MM". The part of "±" shall be recorded as "+" or "-". When the offsets are unknown, all the character spaces except colons (":") should be filled with blank characters, or else the Interoperability field should be filled with blank characters. The character string length is 7 Bytes including NULL for termination. When the field is left blank, it is treated as unknown.
- Tag = 36882
- Type = String
- Length = 7
- Default = None
Constant Value: "OffsetTimeDigitized"
TAG_OFFSET_TIME_ORIGINAL
public static final String TAG_OFFSET_TIME_ORIGINAL
A tag used to record the offset from UTC (the time difference from Universal Time Coordinated including daylight saving time) of the time of DateTimeOriginal tag. The format when recording the offset is "±HH:MM". The part of "±" shall be recorded as "+" or "-". When the offsets are unknown, all the character spaces except colons (":") should be filled with blank characters, or else the Interoperability field should be filled with blank characters. The character string length is 7 Bytes including NULL for termination. When the field is left blank, it is treated as unknown.
- Tag = 36881
- Type = String
- Length = 7
- Default = None
Constant Value: "OffsetTimeOriginal"
TAG_ORF_ASPECT_FRAME
public static final String TAG_ORF_ASPECT_FRAME
Type is int. See Olympus Image Processing tags in http://www.exiv2.org/tags-olympus.html.
Constant Value: "AspectFrame"
TAG_ORF_PREVIEW_IMAGE_LENGTH
public static final String TAG_ORF_PREVIEW_IMAGE_LENGTH
Type is int. See Olympus Camera Settings tags in http://www.exiv2.org/tags-olympus.html.
Constant Value: "PreviewImageLength"
TAG_ORF_PREVIEW_IMAGE_START
public static final String TAG_ORF_PREVIEW_IMAGE_START
Type is int. See Olympus Camera Settings tags in http://www.exiv2.org/tags-olympus.html.
Constant Value: "PreviewImageStart"
TAG_ORF_THUMBNAIL_IMAGE
public static final String TAG_ORF_THUMBNAIL_IMAGE
Type is undefined. See Olympus MakerNote tags in http://www.exiv2.org/tags-olympus.html.
Constant Value: "ThumbnailImage"
TAG_ORIENTATION
public static final String TAG_ORIENTATION
Type is int.
Constant Value: "Orientation"
TAG_PHOTOMETRIC_INTERPRETATION
public static final String TAG_PHOTOMETRIC_INTERPRETATION
Type is int.
Constant Value: "PhotometricInterpretation"
TAG_PIXEL_X_DIMENSION
public static final String TAG_PIXEL_X_DIMENSION
Type is int.
Constant Value: "PixelXDimension"
TAG_PIXEL_Y_DIMENSION
public static final String TAG_PIXEL_Y_DIMENSION
Type is int.
Constant Value: "PixelYDimension"
TAG_PLANAR_CONFIGURATION
public static final String TAG_PLANAR_CONFIGURATION
Type is int.
Constant Value: "PlanarConfiguration"
TAG_PRIMARY_CHROMATICITIES
public static final String TAG_PRIMARY_CHROMATICITIES
Type is rational.
Constant Value: "PrimaryChromaticities"
TAG_REFERENCE_BLACK_WHITE
public static final String TAG_REFERENCE_BLACK_WHITE
Type is rational.
Constant Value: "ReferenceBlackWhite"
TAG_RELATED_SOUND_FILE
public static final String TAG_RELATED_SOUND_FILE
Type is String.
Constant Value: "RelatedSoundFile"
TAG_RESOLUTION_UNIT
public static final String TAG_RESOLUTION_UNIT
Type is int.
Constant Value: "ResolutionUnit"
TAG_ROWS_PER_STRIP
public static final String TAG_ROWS_PER_STRIP
Type is int.
Constant Value: "RowsPerStrip"
TAG_RW2_ISO
public static final String TAG_RW2_ISO
Type is int. See PanasonicRaw tags in http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/PanasonicRaw.html
Constant Value: "ISO"
TAG_RW2_JPG_FROM_RAW
public static final String TAG_RW2_JPG_FROM_RAW
Type is undefined. See PanasonicRaw tags in http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/PanasonicRaw.html
Constant Value: "JpgFromRaw"
TAG_RW2_SENSOR_BOTTOM_BORDER
public static final String TAG_RW2_SENSOR_BOTTOM_BORDER
Type is int. See PanasonicRaw tags in http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/PanasonicRaw.html
Constant Value: "SensorBottomBorder"
TAG_RW2_SENSOR_LEFT_BORDER
public static final String TAG_RW2_SENSOR_LEFT_BORDER
Type is int. See PanasonicRaw tags in http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/PanasonicRaw.html
Constant Value: "SensorLeftBorder"
TAG_RW2_SENSOR_RIGHT_BORDER
public static final String TAG_RW2_SENSOR_RIGHT_BORDER
Type is int. See PanasonicRaw tags in http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/PanasonicRaw.html
Constant Value: "SensorRightBorder"
TAG_RW2_SENSOR_TOP_BORDER
public static final String TAG_RW2_SENSOR_TOP_BORDER
Type is int. See PanasonicRaw tags in http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/PanasonicRaw.html
Constant Value: "SensorTopBorder"
TAG_SAMPLES_PER_PIXEL
public static final String TAG_SAMPLES_PER_PIXEL
Type is int.
Constant Value: "SamplesPerPixel"
TAG_SATURATION
public static final String TAG_SATURATION
Type is int.
Constant Value: "Saturation"
TAG_SCENE_CAPTURE_TYPE
public static final String TAG_SCENE_CAPTURE_TYPE
Type is int.
Constant Value: "SceneCaptureType"
TAG_SCENE_TYPE
public static final String TAG_SCENE_TYPE
Type is String.
Constant Value: "SceneType"
TAG_SENSING_METHOD
public static final String TAG_SENSING_METHOD
Type is int.
Constant Value: "SensingMethod"
TAG_SHARPNESS
public static final String TAG_SHARPNESS
Type is int.
Constant Value: "Sharpness"
TAG_SHUTTER_SPEED_VALUE
public static final String TAG_SHUTTER_SPEED_VALUE
Type is rational.
Constant Value: "ShutterSpeedValue"
TAG_SOFTWARE
public static final String TAG_SOFTWARE
Type is String.
Constant Value: "Software"
TAG_SPATIAL_FREQUENCY_RESPONSE
public static final String TAG_SPATIAL_FREQUENCY_RESPONSE
Type is String.
Constant Value: "SpatialFrequencyResponse"
TAG_SPECTRAL_SENSITIVITY
public static final String TAG_SPECTRAL_SENSITIVITY
Type is String.
Constant Value: "SpectralSensitivity"
TAG_STRIP_BYTE_COUNTS
public static final String TAG_STRIP_BYTE_COUNTS
Type is int.
Constant Value: "StripByteCounts"
TAG_STRIP_OFFSETS
public static final String TAG_STRIP_OFFSETS
Type is int.
Constant Value: "StripOffsets"
TAG_SUBFILE_TYPE
public static final String TAG_SUBFILE_TYPE
Type is int.
Constant Value: "SubfileType"
TAG_SUBJECT_AREA
public static final String TAG_SUBJECT_AREA
Type is int.
Constant Value: "SubjectArea"
TAG_SUBJECT_DISTANCE
public static final String TAG_SUBJECT_DISTANCE
Type is double.
Constant Value: "SubjectDistance"
TAG_SUBJECT_DISTANCE_RANGE
public static final String TAG_SUBJECT_DISTANCE_RANGE
Type is int.
Constant Value: "SubjectDistanceRange"
TAG_SUBJECT_LOCATION
public static final String TAG_SUBJECT_LOCATION
Type is int.
Constant Value: "SubjectLocation"
TAG_SUBSEC_TIME
public static final String TAG_SUBSEC_TIME
Type is String.
Constant Value: "SubSecTime"
TAG_SUBSEC_TIME_DIG
public static final String TAG_SUBSEC_TIME_DIG
This constant was deprecated
in API level 24.
use TAG_SUBSEC_TIME_DIGITIZED
instead
Type is String.
Constant Value: "SubSecTimeDigitized"
TAG_SUBSEC_TIME_DIGITIZED
public static final String TAG_SUBSEC_TIME_DIGITIZED
Type is String.
Constant Value: "SubSecTimeDigitized"
TAG_SUBSEC_TIME_ORIG
public static final String TAG_SUBSEC_TIME_ORIG
This constant was deprecated
in API level 24.
use TAG_SUBSEC_TIME_ORIGINAL
instead
Type is String.
Constant Value: "SubSecTimeOriginal"
TAG_SUBSEC_TIME_ORIGINAL
public static final String TAG_SUBSEC_TIME_ORIGINAL
Type is String.
Constant Value: "SubSecTimeOriginal"
TAG_THUMBNAIL_IMAGE_LENGTH
public static final String TAG_THUMBNAIL_IMAGE_LENGTH
Type is int.
Constant Value: "ThumbnailImageLength"
TAG_THUMBNAIL_IMAGE_WIDTH
public static final String TAG_THUMBNAIL_IMAGE_WIDTH
Type is int.
Constant Value: "ThumbnailImageWidth"
TAG_THUMBNAIL_ORIENTATION
public static final String TAG_THUMBNAIL_ORIENTATION
Type is int.
Constant Value: "ThumbnailOrientation"
TAG_TRANSFER_FUNCTION
public static final String TAG_TRANSFER_FUNCTION
Type is int.
Constant Value: "TransferFunction"
TAG_USER_COMMENT
public static final String TAG_USER_COMMENT
Type is String.
Constant Value: "UserComment"
TAG_WHITE_BALANCE
public static final String TAG_WHITE_BALANCE
Type is int.
Constant Value: "WhiteBalance"
TAG_WHITE_POINT
public static final String TAG_WHITE_POINT
Type is rational.
Constant Value: "WhitePoint"
TAG_XMP
public static final String TAG_XMP
Type is byte[]. See Extensible Metadata Platform (XMP) for details on contents.
Constant Value: "Xmp"
TAG_X_RESOLUTION
public static final String TAG_X_RESOLUTION
Type is rational.
Constant Value: "XResolution"
TAG_Y_CB_CR_COEFFICIENTS
public static final String TAG_Y_CB_CR_COEFFICIENTS
Type is rational.
Constant Value: "YCbCrCoefficients"
TAG_Y_CB_CR_POSITIONING
public static final String TAG_Y_CB_CR_POSITIONING
Type is int.
Constant Value: "YCbCrPositioning"
TAG_Y_CB_CR_SUB_SAMPLING
public static final String TAG_Y_CB_CR_SUB_SAMPLING
Type is int.
Constant Value: "YCbCrSubSampling"
TAG_Y_RESOLUTION
public static final String TAG_Y_RESOLUTION
Type is rational.
Constant Value: "YResolution"
WHITEBALANCE_AUTO
public static final int WHITEBALANCE_AUTO
Constant Value: 0 (0x00000000)
WHITEBALANCE_MANUAL
public static final int WHITEBALANCE_MANUAL
Constant Value: 1 (0x00000001)
Public constructors
ExifInterface
public ExifInterface (File file)
Reads Exif tags from the specified image file.
Parameters | |
---|---|
file |
File : the file of the image data
This value cannot be null . |
Throws | |
---|---|
NullPointerException |
if file is null |
IOException |
if an I/O error occurs while retrieving file descriptor via
FileInputStream.getFD() . |
ExifInterface
public ExifInterface (FileDescriptor fileDescriptor)
Reads Exif tags from the specified image file descriptor. Attribute mutation is supported for writable and seekable file descriptors only. This constructor will not rewind the offset of the given file descriptor. Developers should close the file descriptor after use.
Parameters | |
---|---|
fileDescriptor |
FileDescriptor : the file descriptor of the image data
This value cannot be null . |
Throws | |
---|---|
NullPointerException |
if file descriptor is null |
IOException |
if an error occurs while duplicating the file descriptor via
Os.dup(FileDescriptor) . |
ExifInterface
public ExifInterface (InputStream inputStream)
Reads Exif tags from the specified image input stream. Attribute mutation is not supported for input streams. The given input stream will proceed from its current position. Developers should close the input stream after use. This constructor is not intended to be used with an input stream that performs any networking operations.
Parameters | |
---|---|
inputStream |
InputStream : the input stream that contains the image data
This value cannot be null . |
Throws | |
---|---|
NullPointerException |
if the input stream is null |
IOException |
ExifInterface
public ExifInterface (InputStream inputStream, int streamType)
Reads Exif tags from the specified image input stream based on the stream type. Attribute mutation is not supported for input streams. The given input stream will proceed from its current position. Developers should close the input stream after use. This constructor is not intended to be used with an input stream that performs any networking operations.
Parameters | |
---|---|
inputStream |
InputStream : the input stream that contains the image data
This value cannot be null . |
streamType |
int : the type of input stream
Value is STREAM_TYPE_FULL_IMAGE_DATA , or STREAM_TYPE_EXIF_DATA_ONLY |
Throws | |
---|---|
NullPointerException |
if the input stream is null |
IOException |
if an I/O error occurs while retrieving file descriptor via
FileInputStream.getFD() . |
ExifInterface
public ExifInterface (String filename)
Reads Exif tags from the specified image file.
Parameters | |
---|---|
filename |
String : the name of the file of the image data
This value cannot be null . |
Throws | |
---|---|
NullPointerException |
if file name is null |
IOException |
if an I/O error occurs while retrieving file descriptor via
FileInputStream.getFD() . |
Public methods
getAltitude
public double getAltitude (double defaultValue)
Return the altitude in meters. If the exif tag does not exist, return defaultValue.
Parameters | |
---|---|
defaultValue |
double : the value to return if the tag is not available. |
Returns | |
---|---|
double |
getAttribute
public String getAttribute (String tag)
Returns the value of the specified tag or null
if there
is no such tag in the image file.
Parameters | |
---|---|
tag |
String : the name of the tag.
This value cannot be null . |
Returns | |
---|---|
String |
getAttributeBytes
public byte[] getAttributeBytes (String tag)
Returns the raw bytes for the value of the requested tag inside the image
file, or null
if the tag is not contained.
Parameters | |
---|---|
tag |
String : This value cannot be null . |
Returns | |
---|---|
byte[] |
raw bytes for the value of the requested tag, or null if
no tag was found. |
getAttributeDouble
public double getAttributeDouble (String tag, double defaultValue)
Returns the double value of the tag that is specified as rational or contains a double-formatted value. If there is no such tag in the image file or the value cannot be parsed as double, return defaultValue.
Parameters | |
---|---|
tag |
String : the name of the tag.
This value cannot be null . |
defaultValue |
double : the value to return if the tag is not available. |
Returns | |
---|---|
double |
getAttributeInt
public int getAttributeInt (String tag, int defaultValue)
Returns the integer value of the specified tag. If there is no such tag in the image file or the value cannot be parsed as integer, return defaultValue.
Parameters | |
---|---|
tag |
String : the name of the tag.
This value cannot be null . |
defaultValue |
int : the value to return if the tag is not available. |
Returns | |
---|---|
int |
getAttributeRange
public long[] getAttributeRange (String tag)
Returns the offset and length of the requested tag inside the image file,
or null
if the tag is not contained.
Parameters | |
---|---|
tag |
String : This value cannot be null . |
Returns | |
---|---|
long[] |
two-element array, the offset in the first value, and length in
the second, or null if no tag was found. |
Throws | |
---|---|
IllegalStateException |
if saveAttributes() has been
called since the underlying file was initially parsed, since
that means offsets may have changed. |
getDateTime
public long getDateTime ()
Returns parsed TAG_DATETIME
value, or -1 if unavailable or invalid.
Value is a non-negative timestamp measured as the number of
milliseconds since 1970-01-01T00:00:00Z.
Returns | |
---|---|
long |
Value is a non-negative timestamp measured as the number of milliseconds since 1970-01-01T00:00:00Z. |
getDateTimeDigitized
public long getDateTimeDigitized ()
Returns parsed TAG_DATETIME_DIGITIZED
value, or -1 if unavailable or invalid.
Value is a non-negative timestamp measured as the number of
milliseconds since 1970-01-01T00:00:00Z.
Returns | |
---|---|
long |
Value is a non-negative timestamp measured as the number of milliseconds since 1970-01-01T00:00:00Z. |
getDateTimeOriginal
public long getDateTimeOriginal ()
Returns parsed TAG_DATETIME_ORIGINAL
value, or -1 if unavailable or invalid.
Value is a non-negative timestamp measured as the number of
milliseconds since 1970-01-01T00:00:00Z.
Returns | |
---|---|
long |
Value is a non-negative timestamp measured as the number of milliseconds since 1970-01-01T00:00:00Z. |
getGpsDateTime
public long getGpsDateTime ()
Returns number of milliseconds since Jan. 1, 1970, midnight UTC. Returns -1 if the date time information if not available.
Returns | |
---|---|
long |
getLatLong
public boolean getLatLong (float[] output)
Stores the latitude and longitude value in a float array. The first element is the latitude, and the second element is the longitude. Returns false if the Exif tags are not available.
Parameters | |
---|---|
output |
float |
Returns | |
---|---|
boolean |
getThumbnail
public byte[] getThumbnail ()
Returns the JPEG compressed thumbnail inside the image file, or null
if there is no
JPEG compressed thumbnail.
The returned data can be decoded using
BitmapFactory.decodeByteArray(byte[], int, int)
Returns | |
---|---|
byte[] |
getThumbnailBitmap
public Bitmap getThumbnailBitmap ()
Creates and returns a Bitmap object of the thumbnail image based on the byte array and the
thumbnail compression value, or null
if the compression type is unsupported.
Returns | |
---|---|
Bitmap |
getThumbnailBytes
public byte[] getThumbnailBytes ()
Returns the thumbnail bytes inside the image file, regardless of the compression type of the thumbnail image.
Returns | |
---|---|
byte[] |
getThumbnailRange
public long[] getThumbnailRange ()
Returns the offset and length of thumbnail inside the image file, or
null
if either there is no thumbnail or the thumbnail bytes are stored
non-consecutively.
Returns | |
---|---|
long[] |
two-element array, the offset in the first value, and length in
the second, or null if no thumbnail was found or the thumbnail strips are
not placed consecutively. |
Throws | |
---|---|
IllegalStateException |
if saveAttributes() has been
called since the underlying file was initially parsed, since
that means offsets may have changed. |
hasAttribute
public boolean hasAttribute (String tag)
Returns true if the image file has the given attribute defined.
Parameters | |
---|---|
tag |
String : the name of the tag.
This value cannot be null . |
Returns | |
---|---|
boolean |
hasThumbnail
public boolean hasThumbnail ()
Returns true if the image file has a thumbnail.
Returns | |
---|---|
boolean |
isSupportedMimeType
public static boolean isSupportedMimeType (String mimeType)
Returns whether ExifInterface currently supports reading data from the specified mime type or not.
Parameters | |
---|---|
mimeType |
String : the string value of mime type
This value cannot be null . |
Returns | |
---|---|
boolean |
isThumbnailCompressed
public boolean isThumbnailCompressed ()
Returns true if thumbnail image is JPEG Compressed, or false if either thumbnail image does not exist or thumbnail image is uncompressed.
Returns | |
---|---|
boolean |
saveAttributes
public void saveAttributes ()
Save the tag data into the original image file. This is expensive because
it involves copying all the data from one file to another and deleting
the old file and renaming the other. It's best to use
setAttribute(java.lang.String, java.lang.String)
to set all attributes to write and
make a single call rather than multiple calls for each attribute.
This method is supported for JPEG, PNG, and WebP files.
Note: after calling this method, any attempts to obtain range information
from getAttributeRange(java.lang.String)
or getThumbnailRange()
will throw IllegalStateException
, since the offsets may have
changed in the newly written file.
For WebP format, the Exif data will be stored as an Extended File Format, and it may not be supported for older readers.
For PNG format, the Exif data will be stored as an "eXIf" chunk as per "Extensions to the PNG 1.2 Specification, Version 1.5.0".
Warning: Calling this method on a DNG-based instance of ExifInterface
may
result in the original image file being overwritten with invalid data on some versions of
Android 13 (API 33).
Throws | |
---|---|
IOException |
setAttribute
public void setAttribute (String tag, String value)
Set the value of the specified tag.
Parameters | |
---|---|
tag |
String : the name of the tag.
This value cannot be null . |
value |
String : the value of the tag.
This value may be null . |