com.drew.imaging.jpeg

Class JpegSegmentReader


public class JpegSegmentReader
extends java.lang.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 byte
SEGMENT_APP0
APP0 Jpeg segment identifier -- Jfif data.
static byte
SEGMENT_APP1
APP1 Jpeg segment identifier -- where Exif data is kept.
static byte
SEGMENT_APP2
APP2 Jpeg segment identifier.
static byte
SEGMENT_APP3
APP3 Jpeg segment identifier.
static byte
SEGMENT_APP4
APP4 Jpeg segment identifier.
static byte
SEGMENT_APP5
APP5 Jpeg segment identifier.
static byte
SEGMENT_APP6
APP6 Jpeg segment identifier.
static byte
SEGMENT_APP7
APP7 Jpeg segment identifier.
static byte
SEGMENT_APP8
APP8 Jpeg segment identifier.
static byte
SEGMENT_APP9
APP9 Jpeg segment identifier.
static byte
SEGMENT_APPA
APPA Jpeg segment identifier -- can hold Unicode comments.
static byte
SEGMENT_APPB
APPB Jpeg segment identifier.
static byte
SEGMENT_APPC
APPC Jpeg segment identifier.
static byte
SEGMENT_APPD
APPD Jpeg segment identifier -- IPTC data in here.
static byte
SEGMENT_APPE
APPE Jpeg segment identifier.
static byte
SEGMENT_APPF
APPF Jpeg segment identifier.
static byte
SEGMENT_COM
Jpeg comment segment identifier.
static byte
SEGMENT_DHT
Define Huffman Table segment identifier.
static byte
SEGMENT_DQT
Define Quantization Table segment identifier.
static byte
SEGMENT_SOF0
Start-of-Frame Zero segment identifier.
static byte
SEGMENT_SOI
Start Of Image segment identifier.

Constructor Summary

JpegSegmentReader(File file)
Creates a JpegSegmentReader for a specific file.
JpegSegmentReader(InputStream in)
JpegSegmentReader(byte[] fileContents)
Creates a JpegSegmentReader for a byte array.
JpegSegmentReader(JpegSegmentData segmentData)

Method Summary

int
getSegmentCount(byte segmentMarker)
JpegSegmentData
getSegmentData()
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 Details

SEGMENT_APP0

public static final byte SEGMENT_APP0
APP0 Jpeg segment identifier -- Jfif data.
Field Value:
-32

SEGMENT_APP1

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

SEGMENT_APP2

public static final byte SEGMENT_APP2
APP2 Jpeg segment identifier.
Field Value:
-30

SEGMENT_APP3

public static final byte SEGMENT_APP3
APP3 Jpeg segment identifier.
Field Value:
-29

SEGMENT_APP4

public static final byte SEGMENT_APP4
APP4 Jpeg segment identifier.
Field Value:
-28

SEGMENT_APP5

public static final byte SEGMENT_APP5
APP5 Jpeg segment identifier.
Field Value:
-27

SEGMENT_APP6

public static final byte SEGMENT_APP6
APP6 Jpeg segment identifier.
Field Value:
-26

SEGMENT_APP7

public static final byte SEGMENT_APP7
APP7 Jpeg segment identifier.
Field Value:
-25

SEGMENT_APP8

public static final byte SEGMENT_APP8
APP8 Jpeg segment identifier.
Field Value:
-24

SEGMENT_APP9

public static final byte SEGMENT_APP9
APP9 Jpeg segment identifier.
Field Value:
-23

SEGMENT_APPA

public static final byte SEGMENT_APPA
APPA Jpeg segment identifier -- can hold Unicode comments.
Field Value:
-22

SEGMENT_APPB

public static final byte SEGMENT_APPB
APPB Jpeg segment identifier.
Field Value:
-21

SEGMENT_APPC

public static final byte SEGMENT_APPC
APPC Jpeg segment identifier.
Field Value:
-20

SEGMENT_APPD

public static final byte SEGMENT_APPD
APPD Jpeg segment identifier -- IPTC data in here.
Field Value:
-19

SEGMENT_APPE

public static final byte SEGMENT_APPE
APPE Jpeg segment identifier.
Field Value:
-18

SEGMENT_APPF

public static final byte SEGMENT_APPF
APPF Jpeg segment identifier.
Field Value:
-17

SEGMENT_COM

public static final byte SEGMENT_COM
Jpeg comment segment identifier.
Field Value:
-2

SEGMENT_DHT

public static final byte SEGMENT_DHT
Define Huffman Table segment identifier.
Field Value:
-60

SEGMENT_DQT

public static final byte SEGMENT_DQT
Define Quantization Table segment identifier.
Field Value:
-37

SEGMENT_SOF0

public static final byte SEGMENT_SOF0
Start-of-Frame Zero segment identifier.
Field Value:
-64

SEGMENT_SOI

public static final byte SEGMENT_SOI
Start Of Image segment identifier.
Field Value:
-40

Constructor Details

JpegSegmentReader

public JpegSegmentReader(File file)
            throws JpegProcessingException
Creates a JpegSegmentReader for a specific file.
Parameters:
file - the Jpeg file to read segments from

JpegSegmentReader

public JpegSegmentReader(InputStream in)
            throws JpegProcessingException

JpegSegmentReader

public JpegSegmentReader(byte[] fileContents)
            throws JpegProcessingException
Creates a JpegSegmentReader for a byte array.
Parameters:
fileContents - the byte array containing Jpeg data

JpegSegmentReader

public JpegSegmentReader(JpegSegmentData segmentData)

Method Details

getSegmentCount

public final int getSegmentCount(byte segmentMarker)

getSegmentData

public final JpegSegmentData getSegmentData()

readSegment

public byte[] readSegment(byte segmentMarker)
            throws JpegProcessingException
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.