org.w3c.tools.jpeg
Class JpegHeaders

java.lang.Object
  |
  +--org.w3c.tools.jpeg.JpegHeaders

public class JpegHeaders
extends java.lang.Object
implements Jpeg


Field Summary
protected  byte[][] appcomments
           
protected  int bitsPerPixel
           
protected  java.lang.String[] comments
           
protected  int compression
           
protected  Exif exif
           
protected  int height
           
protected  java.io.InputStream in
           
protected  java.io.File jpegfile
           
protected  int numComponents
           
protected  java.util.Vector[] vacom
           
protected  java.util.Vector vcom
           
protected  int width
           
 
Fields inherited from interface org.w3c.tools.jpeg.Jpeg
M_APP0, M_APP1, M_APP10, M_APP11, M_APP12, M_APP13, M_APP14, M_APP15, M_APP2, M_APP3, M_APP4, M_APP5, M_APP6, M_APP7, M_APP8, M_APP9, M_COM, M_EOI, M_MAX_COM_LENGTH, M_SOF0, M_SOF1, M_SOF10, M_SOF11, M_SOF13, M_SOF14, M_SOF15, M_SOF2, M_SOF3, M_SOF5, M_SOF6, M_SOF7, M_SOF9, M_SOI, M_SOS
 
Constructor Summary
JpegHeaders(java.io.File jpegfile)
          get the headers out of a file, ignoring EXIF
JpegHeaders(java.io.File jpegfile, Exif exif)
          get the headers out of a file, including EXIF
JpegHeaders(java.io.InputStream in)
          get the headers out of a stream, ignoring EXIF
JpegHeaders(java.io.InputStream in, Exif exif)
          get the headers out of a stream, including EXIF
 
Method Summary
protected  int firstMarker()
           
 java.lang.String[] getAppComments()
          Deprecated. use getStringAppComments instead
 byte[][] getByteArrayAPPComment()
           
 java.lang.String[] getComments()
          Get the comments extracted from the jpeg stream
 java.lang.String[] getStringAppComments()
          An old default, it gets only the M_APP12
 java.lang.String[] getStringAPPComments(int marker)
          Get the application specific values extracted from the jpeg stream
 java.lang.String getXMP()
          A get XMP in APP1
static void main(java.lang.String[] args)
           
protected  int nextMarker()
           
protected  void parseJpeg(java.io.File jpegfile, Exif exif)
           
protected  byte[] processComment()
           
protected  int read2bytes()
           
protected  int read2bytes(java.io.StringReader sr)
           
protected  void readImageInfo()
          read the image info then the section
protected  int scanHeaders()
           
protected  void skipVariable()
          skip the body after a marker
protected  void updateExif()
          Update the EXIF to include the intrinsic values
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

jpegfile

protected java.io.File jpegfile

in

protected java.io.InputStream in

vcom

protected java.util.Vector vcom

vacom

protected java.util.Vector[] vacom

comments

protected java.lang.String[] comments

appcomments

protected byte[][] appcomments

exif

protected Exif exif

compression

protected int compression

bitsPerPixel

protected int bitsPerPixel

height

protected int height

width

protected int width

numComponents

protected int numComponents
Constructor Detail

JpegHeaders

public JpegHeaders(java.io.File jpegfile)
            throws java.io.FileNotFoundException,
                   JpegException,
                   java.io.IOException
get the headers out of a file, ignoring EXIF

JpegHeaders

public JpegHeaders(java.io.File jpegfile,
                   Exif exif)
            throws java.io.FileNotFoundException,
                   JpegException,
                   java.io.IOException
get the headers out of a file, including EXIF

JpegHeaders

public JpegHeaders(java.io.InputStream in)
            throws JpegException,
                   java.io.IOException
get the headers out of a stream, ignoring EXIF

JpegHeaders

public JpegHeaders(java.io.InputStream in,
                   Exif exif)
            throws JpegException,
                   java.io.IOException
get the headers out of a stream, including EXIF
Method Detail

getComments

public java.lang.String[] getComments()
Get the comments extracted from the jpeg stream
Returns:
an array of Strings

getStringAPPComments

public java.lang.String[] getStringAPPComments(int marker)
Get the application specific values extracted from the jpeg stream
Returns:
an array of Strings

getStringAppComments

public java.lang.String[] getStringAppComments()
An old default, it gets only the M_APP12

getXMP

public java.lang.String getXMP()
                        throws java.io.IOException,
                               JpegException
A get XMP in APP1

getByteArrayAPPComment

public byte[][] getByteArrayAPPComment()

getAppComments

public java.lang.String[] getAppComments()
Deprecated. use getStringAppComments instead

The old way of extracting comments in M_APP12 markers

scanHeaders

protected int scanHeaders()
                   throws java.io.IOException,
                          JpegException

updateExif

protected void updateExif()
Update the EXIF to include the intrinsic values

processComment

protected byte[] processComment()
                         throws java.io.IOException,
                                JpegException

read2bytes

protected int read2bytes()
                  throws java.io.IOException,
                         JpegException

read2bytes

protected int read2bytes(java.io.StringReader sr)
                  throws java.io.IOException,
                         JpegException

skipVariable

protected void skipVariable()
                     throws java.io.IOException,
                            JpegException
skip the body after a marker

readImageInfo

protected void readImageInfo()
                      throws java.io.IOException,
                             JpegException
read the image info then the section

firstMarker

protected int firstMarker()
                   throws java.io.IOException,
                          JpegException

nextMarker

protected int nextMarker()
                  throws java.io.IOException

parseJpeg

protected void parseJpeg(java.io.File jpegfile,
                         Exif exif)
                  throws java.io.FileNotFoundException,
                         JpegException,
                         java.io.IOException

main

public static void main(java.lang.String[] args)