Android APIs
public class

ExifInterface

extends Object
java.lang.Object
   ↳ android.media.ExifInterface

Class Overview

This is a class for reading and writing Exif tags in a JPEG file.

Summary

Constants
int ORIENTATION_FLIP_HORIZONTAL
int ORIENTATION_FLIP_VERTICAL
int ORIENTATION_NORMAL
int ORIENTATION_ROTATE_180
int ORIENTATION_ROTATE_270
int ORIENTATION_ROTATE_90
int ORIENTATION_TRANSPOSE
int ORIENTATION_TRANSVERSE
int ORIENTATION_UNDEFINED
String TAG_APERTURE Type is String.
String TAG_DATETIME Type is String.
String TAG_DATETIME_DIGITIZED Type is String.
String TAG_EXPOSURE_TIME Type is String.
String TAG_FLASH Type is int.
String TAG_FOCAL_LENGTH Type is rational.
String TAG_GPS_ALTITUDE The altitude (in meters) based on the reference in TAG_GPS_ALTITUDE_REF.
String TAG_GPS_ALTITUDE_REF 0 if the altitude is above sea level.
String TAG_GPS_DATESTAMP Type is String.
String TAG_GPS_LATITUDE String.
String TAG_GPS_LATITUDE_REF Type is String.
String TAG_GPS_LONGITUDE String.
String TAG_GPS_LONGITUDE_REF Type is String.
String TAG_GPS_PROCESSING_METHOD Type is String.
String TAG_GPS_TIMESTAMP Type is String.
String TAG_IMAGE_LENGTH Type is int.
String TAG_IMAGE_WIDTH Type is int.
String TAG_ISO Type is String.
String TAG_MAKE Type is String.
String TAG_MODEL Type is String.
String TAG_ORIENTATION Type is int.
String TAG_SUBSEC_TIME Type is int.
String TAG_SUBSEC_TIME_DIG Type is int.
String TAG_SUBSEC_TIME_ORIG Type is int.
String TAG_WHITE_BALANCE Type is int.
int WHITEBALANCE_AUTO
int WHITEBALANCE_MANUAL
Public Constructors
ExifInterface(String filename)
Reads Exif tags from the specified JPEG file.
Public Methods
double getAltitude(double defaultValue)
Return the altitude in meters.
String getAttribute(String tag)
Returns the value of the specified tag or null if there is no such tag in the JPEG file.
double getAttributeDouble(String tag, double defaultValue)
Returns the double value of the specified rational tag.
int getAttributeInt(String tag, int defaultValue)
Returns the integer value of the specified tag.
boolean getLatLong(float[] output)
Stores the latitude and longitude value in a float array.
byte[] getThumbnail()
Returns the thumbnail inside the JPEG file, or null if there is no thumbnail.
boolean hasThumbnail()
Returns true if the JPEG file has a thumbnail.
void saveAttributes()
Save the tag data into the JPEG file.
void setAttribute(String tag, String value)
Set the value of the specified tag.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int ORIENTATION_FLIP_HORIZONTAL

Added in API level 5

Constant Value: 2 (0x00000002)

public static final int ORIENTATION_FLIP_VERTICAL

Added in API level 5

Constant Value: 4 (0x00000004)

public static final int ORIENTATION_NORMAL

Added in API level 5

Constant Value: 1 (0x00000001)

public static final int ORIENTATION_ROTATE_180

Added in API level 5

Constant Value: 3 (0x00000003)

public static final int ORIENTATION_ROTATE_270

Added in API level 5

Constant Value: 8 (0x00000008)

public static final int ORIENTATION_ROTATE_90

Added in API level 5

Constant Value: 6 (0x00000006)

public static final int ORIENTATION_TRANSPOSE

Added in API level 5

Constant Value: 5 (0x00000005)

public static final int ORIENTATION_TRANSVERSE

Added in API level 5

Constant Value: 7 (0x00000007)

public static final int ORIENTATION_UNDEFINED

Added in API level 5

Constant Value: 0 (0x00000000)

public static final String TAG_APERTURE

Added in API level 11

Type is String.

Constant Value: "FNumber"

public static final String TAG_DATETIME

Added in API level 5

Type is String.

Constant Value: "DateTime"

public static final String TAG_DATETIME_DIGITIZED

Added in API level 23

Type is String.

Constant Value: "DateTimeDigitized"

public static final String TAG_EXPOSURE_TIME

Added in API level 11

Type is String.

Constant Value: "ExposureTime"

public static final String TAG_FLASH

Added in API level 5

Type is int.

Constant Value: "Flash"

public static final String TAG_FOCAL_LENGTH

Added in API level 8

Type is rational.

Constant Value: "FocalLength"

public static final String TAG_GPS_ALTITUDE

Added in API level 9

The altitude (in meters) based on the reference in TAG_GPS_ALTITUDE_REF. Type is rational.

Constant Value: "GPSAltitude"

public static final String TAG_GPS_ALTITUDE_REF

Added in API level 9

0 if the altitude is above sea level. 1 if the altitude is below sea level. Type is int.

Constant Value: "GPSAltitudeRef"

public static final String TAG_GPS_DATESTAMP

Added in API level 8

Type is String.

Constant Value: "GPSDateStamp"

public static final String TAG_GPS_LATITUDE

Added in API level 5

String. Format is "num1/denom1,num2/denom2,num3/denom3".

Constant Value: "GPSLatitude"

public static final String TAG_GPS_LATITUDE_REF

Added in API level 5

Type is String.

Constant Value: "GPSLatitudeRef"

public static final String TAG_GPS_LONGITUDE

Added in API level 5

String. Format is "num1/denom1,num2/denom2,num3/denom3".

Constant Value: "GPSLongitude"

public static final String TAG_GPS_LONGITUDE_REF

Added in API level 5

Type is String.

Constant Value: "GPSLongitudeRef"

public static final String TAG_GPS_PROCESSING_METHOD

Added in API level 8

Type is String. Name of GPS processing method used for location finding.

Constant Value: "GPSProcessingMethod"

public static final String TAG_GPS_TIMESTAMP

Added in API level 8

Type is String.

Constant Value: "GPSTimeStamp"

public static final String TAG_IMAGE_LENGTH

Added in API level 5

Type is int.

Constant Value: "ImageLength"

public static final String TAG_IMAGE_WIDTH

Added in API level 5

Type is int.

Constant Value: "ImageWidth"

public static final String TAG_ISO

Added in API level 11

Type is String.

Constant Value: "ISOSpeedRatings"

public static final String TAG_MAKE

Added in API level 5

Type is String.

Constant Value: "Make"

public static final String TAG_MODEL

Added in API level 5

Type is String.

Constant Value: "Model"

public static final String TAG_ORIENTATION

Added in API level 5

Type is int.

Constant Value: "Orientation"

public static final String TAG_SUBSEC_TIME

Added in API level 23

Type is int.

Constant Value: "SubSecTime"

public static final String TAG_SUBSEC_TIME_DIG

Added in API level 23

Type is int.

Constant Value: "SubSecTimeDigitized"

public static final String TAG_SUBSEC_TIME_ORIG

Added in API level 23

Type is int.

Constant Value: "SubSecTimeOriginal"

public static final String TAG_WHITE_BALANCE

Added in API level 5

Type is int.

Constant Value: "WhiteBalance"

public static final int WHITEBALANCE_AUTO

Added in API level 5

Constant Value: 0 (0x00000000)

public static final int WHITEBALANCE_MANUAL

Added in API level 5

Constant Value: 1 (0x00000001)

Public Constructors

public ExifInterface (String filename)

Added in API level 5

Reads Exif tags from the specified JPEG file.

Parameters
filename
Throws
IOException

Public Methods

public double getAltitude (double defaultValue)

Added in API level 9

Return the altitude in meters. If the exif tag does not exist, return defaultValue.

Parameters
defaultValue the value to return if the tag is not available.
Returns
double

public String getAttribute (String tag)

Added in API level 5

Returns the value of the specified tag or null if there is no such tag in the JPEG file.

Parameters
tag the name of the tag.
Returns
String

public double getAttributeDouble (String tag, double defaultValue)

Added in API level 8

Returns the double value of the specified rational tag. If there is no such tag in the JPEG file or the value cannot be parsed as double, return defaultValue.

Parameters
tag the name of the tag.
defaultValue the value to return if the tag is not available.
Returns
double

public int getAttributeInt (String tag, int defaultValue)

Added in API level 5

Returns the integer value of the specified tag. If there is no such tag in the JPEG file or the value cannot be parsed as integer, return defaultValue.

Parameters
tag the name of the tag.
defaultValue the value to return if the tag is not available.
Returns
int

public boolean getLatLong (float[] output)

Added in API level 5

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
Returns
boolean

public byte[] getThumbnail ()

Added in API level 5

Returns the thumbnail inside the JPEG file, or null if there is no thumbnail. The returned data is in JPEG format and can be decoded using decodeByteArray(byte[], int, int)

Returns
byte[]

public boolean hasThumbnail ()

Added in API level 5

Returns true if the JPEG file has a thumbnail.

Returns
boolean

public void saveAttributes ()

Added in API level 5

Save the tag data into the JPEG file. This is expensive because it involves copying all the JPG data from one file to another and deleting the old file and renaming the other. It's best to use setAttribute(String, String) to set all attributes to write and make a single call rather than multiple calls for each attribute.

Throws
IOException

public void setAttribute (String tag, String value)

Added in API level 5

Set the value of the specified tag.

Parameters
tag the name of the tag.
value the value of the tag.