Package com.drew.metadata.exif
Class ExifReader
- java.lang.Object
-
- com.drew.metadata.exif.ExifReader
-
- All Implemented Interfaces:
JpegSegmentMetadataReader
public class ExifReader extends java.lang.Object implements JpegSegmentMetadataReader
Decodes Exif binary data, populating aMetadata
object with tag values inExifSubIFDDirectory
,ExifThumbnailDirectory
,ExifInteropDirectory
,GpsDirectory
and one of the many camera makernote directories.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
JPEG_SEGMENT_PREAMBLE
Exif data stored in JPEG files' APP1 segment are preceded by this six character preamble "Exif\0\0".
-
Constructor Summary
Constructors Constructor Description ExifReader()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
extract(RandomAccessReader reader, Metadata metadata)
Reads TIFF formatted Exif data from start of the specifiedRandomAccessReader
.void
extract(RandomAccessReader reader, Metadata metadata, int readerOffset)
Reads TIFF formatted Exif data a specified offset within aRandomAccessReader
.void
extract(RandomAccessReader reader, Metadata metadata, int readerOffset, Directory parentDirectory)
Reads TIFF formatted Exif data at a specified offset within aRandomAccessReader
.java.lang.Iterable<JpegSegmentType>
getSegmentTypes()
Gets the set of JPEG segment types that this reader is interested in.void
readJpegSegments(java.lang.Iterable<byte[]> segments, Metadata metadata, JpegSegmentType segmentType)
Extracts metadata from all instances of a particular JPEG segment type.static boolean
startsWithJpegExifPreamble(byte[] bytes)
Indicates whether 'bytes' starts with 'JpegSegmentPreamble'.
-
-
-
Field Detail
-
JPEG_SEGMENT_PREAMBLE
public static final java.lang.String JPEG_SEGMENT_PREAMBLE
Exif data stored in JPEG files' APP1 segment are preceded by this six character preamble "Exif\0\0".- See Also:
- Constant Field Values
-
-
Method Detail
-
getSegmentTypes
public java.lang.Iterable<JpegSegmentType> getSegmentTypes()
Description copied from interface:JpegSegmentMetadataReader
Gets the set of JPEG segment types that this reader is interested in.- Specified by:
getSegmentTypes
in interfaceJpegSegmentMetadataReader
-
readJpegSegments
public void readJpegSegments(java.lang.Iterable<byte[]> segments, Metadata metadata, JpegSegmentType segmentType)
Description copied from interface:JpegSegmentMetadataReader
Extracts metadata from all instances of a particular JPEG segment type.- Specified by:
readJpegSegments
in interfaceJpegSegmentMetadataReader
- Parameters:
segments
- A sequence of byte arrays from which the metadata should be extracted. These are in the order encountered in the original file.metadata
- TheMetadata
object into which extracted values should be merged.segmentType
- TheJpegSegmentType
being read.
-
startsWithJpegExifPreamble
public static boolean startsWithJpegExifPreamble(byte[] bytes)
Indicates whether 'bytes' starts with 'JpegSegmentPreamble'.
-
extract
public void extract(RandomAccessReader reader, Metadata metadata)
Reads TIFF formatted Exif data from start of the specifiedRandomAccessReader
.
-
extract
public void extract(RandomAccessReader reader, Metadata metadata, int readerOffset)
Reads TIFF formatted Exif data a specified offset within aRandomAccessReader
.
-
extract
public void extract(RandomAccessReader reader, Metadata metadata, int readerOffset, Directory parentDirectory)
Reads TIFF formatted Exif data at a specified offset within aRandomAccessReader
.
-
-