com.drew.imaging.jpeg

Class JpegSegmentReader

public class JpegSegmentReader extends Object

Performs read functions of Jpeg files, returning specific file segments. TODO add a findAvailableSegments() method TODO add more segment identifiers TODO add a getSegmentDescription() method, returning for example 'App1 application data segment, commonly containing Exif data'

Author: Drew Noakes http://drewnoakes.com

Field Summary
static byteSEGMENT_APP0
APP0 Jpeg segment identifier -- Jfif data.
static byteSEGMENT_APP1
APP1 Jpeg segment identifier -- where Exif data is kept.
static byteSEGMENT_APP2
APP2 Jpeg segment identifier.
static byteSEGMENT_APP3
APP3 Jpeg segment identifier.
static byteSEGMENT_APP4
APP4 Jpeg segment identifier.
static byteSEGMENT_APP5
APP5 Jpeg segment identifier.
static byteSEGMENT_APP6
APP6 Jpeg segment identifier.
static byteSEGMENT_APP7
APP7 Jpeg segment identifier.
static byteSEGMENT_APP8
APP8 Jpeg segment identifier.
static byteSEGMENT_APP9
APP9 Jpeg segment identifier.
static byteSEGMENT_APPA
APPA Jpeg segment identifier -- can hold Unicode comments.
static byteSEGMENT_APPB
APPB Jpeg segment identifier.
static byteSEGMENT_APPC
APPC Jpeg segment identifier.
static byteSEGMENT_APPD
APPD Jpeg segment identifier -- IPTC data in here.
static byteSEGMENT_APPE
APPE Jpeg segment identifier.
static byteSEGMENT_APPF
APPF Jpeg segment identifier.
static byteSEGMENT_COM
Jpeg comment segment identifier.
static byteSEGMENT_DHT
Define Huffman Table segment identifier.
static byteSEGMENT_DQT
Define Quantization Table segment identifier.
static byteSEGMENT_SOF0
Start-of-Frame Zero segment identifier.
static byteSEGMENT_SOI
Start Of Image segment identifier.
Constructor Summary
JpegSegmentReader(File file)
Creates a JpegSegmentReader for a specific file.
JpegSegmentReader(byte[] fileContents)
Creates a JpegSegmentReader for a byte array.
JpegSegmentReader(InputStream in)
JpegSegmentReader(JpegSegmentData segmentData)
Method Summary
intgetSegmentCount(byte segmentMarker)
JpegSegmentDatagetSegmentData()
byte[]readSegment(byte segmentMarker)
Reads the first instance of a given Jpeg segment, returning the contents as a byte array.
byte[]readSegment(byte segmentMarker, int occurrence)
Reads the first instance of a given Jpeg segment, returning the contents as a byte array.

Field Detail

SEGMENT_APP0

public static final byte SEGMENT_APP0
APP0 Jpeg segment identifier -- Jfif data.

SEGMENT_APP1

public static final byte SEGMENT_APP1
APP1 Jpeg segment identifier -- where Exif data is kept.

SEGMENT_APP2

public static final byte SEGMENT_APP2
APP2 Jpeg segment identifier.

SEGMENT_APP3

public static final byte SEGMENT_APP3
APP3 Jpeg segment identifier.

SEGMENT_APP4

public static final byte SEGMENT_APP4
APP4 Jpeg segment identifier.

SEGMENT_APP5

public static final byte SEGMENT_APP5
APP5 Jpeg segment identifier.

SEGMENT_APP6

public static final byte SEGMENT_APP6
APP6 Jpeg segment identifier.

SEGMENT_APP7

public static final byte SEGMENT_APP7
APP7 Jpeg segment identifier.

SEGMENT_APP8

public static final byte SEGMENT_APP8
APP8 Jpeg segment identifier.

SEGMENT_APP9

public static final byte SEGMENT_APP9
APP9 Jpeg segment identifier.

SEGMENT_APPA

public static final byte SEGMENT_APPA
APPA Jpeg segment identifier -- can hold Unicode comments.

SEGMENT_APPB

public static final byte SEGMENT_APPB
APPB Jpeg segment identifier.

SEGMENT_APPC

public static final byte SEGMENT_APPC
APPC Jpeg segment identifier.

SEGMENT_APPD

public static final byte SEGMENT_APPD
APPD Jpeg segment identifier -- IPTC data in here.

SEGMENT_APPE

public static final byte SEGMENT_APPE
APPE Jpeg segment identifier.

SEGMENT_APPF

public static final byte SEGMENT_APPF
APPF Jpeg segment identifier.

SEGMENT_COM

public static final byte SEGMENT_COM
Jpeg comment segment identifier.

SEGMENT_DHT

public static final byte SEGMENT_DHT
Define Huffman Table segment identifier.

SEGMENT_DQT

public static final byte SEGMENT_DQT
Define Quantization Table segment identifier.

SEGMENT_SOF0

public static final byte SEGMENT_SOF0
Start-of-Frame Zero segment identifier.

SEGMENT_SOI

public static final byte SEGMENT_SOI
Start Of Image segment identifier.

Constructor Detail

JpegSegmentReader

public JpegSegmentReader(File file)
Creates a JpegSegmentReader for a specific file.

Parameters: file the Jpeg file to read segments from

JpegSegmentReader

public JpegSegmentReader(byte[] fileContents)
Creates a JpegSegmentReader for a byte array.

Parameters: fileContents the byte array containing Jpeg data

JpegSegmentReader

public JpegSegmentReader(InputStream in)

JpegSegmentReader

public JpegSegmentReader(JpegSegmentData segmentData)

Method Detail

getSegmentCount

public final int getSegmentCount(byte segmentMarker)

getSegmentData

public final JpegSegmentData getSegmentData()

readSegment

public byte[] readSegment(byte segmentMarker)
Reads the first instance of a given Jpeg segment, returning the contents as a byte array.

Parameters: segmentMarker the byte identifier for the desired segment

Returns: the byte array if found, else null

Throws: JpegProcessingException for any problems processing the Jpeg data, including inner IOExceptions

readSegment

public byte[] readSegment(byte segmentMarker, int occurrence)
Reads the first instance of a given Jpeg segment, returning the contents as a byte array.

Parameters: segmentMarker the byte identifier for the desired segment occurrence the occurrence of the specified segment within the jpeg file

Returns: the byte array if found, else null

Copyright © 2006 Drew Noakes. All Rights Reserved.