org.apache.sanselan.formats.jpeg
Class JpegImageParser

java.lang.Object
  extended by org.apache.sanselan.common.BinaryFileFunctions
      extended by org.apache.sanselan.common.BinaryFileParser
          extended by org.apache.sanselan.ImageParser
              extended by org.apache.sanselan.formats.jpeg.JpegImageParser
All Implemented Interfaces:
BinaryConstants, JpegConstants, TiffDirectoryConstants, TiffFieldTypeConstants, TiffTagConstants, SanselanConstants

public class JpegImageParser
extends ImageParser
implements JpegConstants, TiffTagConstants


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.sanselan.formats.tiff.constants.TiffDirectoryConstants
TiffDirectoryConstants.ExifDirectoryType
 
Field Summary
static java.lang.String[] AcceptedExtensions
           
static boolean permissive
           
 
Fields inherited from class org.apache.sanselan.common.BinaryFileFunctions
debug
 
Fields inherited from interface org.apache.sanselan.formats.jpeg.JpegConstants
CONST_8BIM, EOI, EXIF_IDENTIFIER_CODE, icc_profile_label, JFIF0_SIGNATURE, JFIF0_SIGNATURE_ALTERNATIVE, JFIFMarker, JPEG_APP0, JPEG_APP0_Marker, JPEG_APP1_Marker, JPEG_APP13_Marker, JPEG_APP14_Marker, JPEG_APP15_Marker, JPEG_APP2_Marker, MARKERS, MAX_SEGMENT_SIZE, PHOTOSHOP_IDENTIFICATION_STRING, SOF0Marker, SOF10Marker, SOF11Marker, SOF12Marker, SOF13Marker, SOF14Marker, SOF15Marker, SOF1Marker, SOF2Marker, SOF3Marker, SOF4Marker, SOF5Marker, SOF6Marker, SOF7Marker, SOF8Marker, SOF9Marker, SOI, SOS_Marker, XMP_IDENTIFIER
 
Fields inherited from interface org.apache.sanselan.formats.tiff.constants.TiffTagConstants
ALL_TIFF_TAGS, TIFF_TAG_ARTIST, TIFF_TAG_BITS_PER_SAMPLE, TIFF_TAG_CELL_LENGTH, TIFF_TAG_CELL_WIDTH, TIFF_TAG_COLOR_MAP, TIFF_TAG_COMPRESSION, TIFF_TAG_COPYRIGHT, TIFF_TAG_DATE_TIME, TIFF_TAG_DOCUMENT_NAME, TIFF_TAG_DOT_RANGE, TIFF_TAG_EXTRA_SAMPLES, TIFF_TAG_FILL_ORDER, TIFF_TAG_FREE_BYTE_COUNTS, TIFF_TAG_FREE_OFFSETS, TIFF_TAG_GRAY_RESPONSE_CURVE, TIFF_TAG_GRAY_RESPONSE_UNIT, TIFF_TAG_HALFTONE_HINTS, TIFF_TAG_HOST_COMPUTER, TIFF_TAG_IMAGE_DESCRIPTION, TIFF_TAG_IMAGE_LENGTH, TIFF_TAG_IMAGE_WIDTH, TIFF_TAG_INK_NAMES, TIFF_TAG_INK_SET, TIFF_TAG_JPEG_ACTABLES, TIFF_TAG_JPEG_DCTABLES, TIFF_TAG_JPEG_INTERCHANGE_FORMAT, TIFF_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH, TIFF_TAG_JPEG_LOSSLESS_PREDICTORS, TIFF_TAG_JPEG_POINT_TRANSFORMS, TIFF_TAG_JPEG_PROC, TIFF_TAG_JPEG_QTABLES, TIFF_TAG_JPEG_RESTART_INTERVAL, TIFF_TAG_MAKE, TIFF_TAG_MAX_SAMPLE_VALUE, TIFF_TAG_MIN_SAMPLE_VALUE, TIFF_TAG_MODEL, TIFF_TAG_NEW_SUBFILE_TYPE, TIFF_TAG_NUMBER_OF_INKS, TIFF_TAG_ORIENTATION, TIFF_TAG_PAGE_NAME, TIFF_TAG_PAGE_NUMBER, TIFF_TAG_PHOTOMETRIC_INTERPRETATION, TIFF_TAG_PLANAR_CONFIGURATION, TIFF_TAG_PREDICTOR, TIFF_TAG_PRIMARY_CHROMATICITIES, TIFF_TAG_REFERENCE_BLACK_WHITE, TIFF_TAG_RESOLUTION_UNIT, TIFF_TAG_ROWS_PER_STRIP, TIFF_TAG_SAMPLE_FORMAT, TIFF_TAG_SAMPLES_PER_PIXEL, TIFF_TAG_SMAX_SAMPLE_VALUE, TIFF_TAG_SMIN_SAMPLE_VALUE, TIFF_TAG_SOFTWARE, TIFF_TAG_STRIP_BYTE_COUNTS, TIFF_TAG_STRIP_OFFSETS, TIFF_TAG_SUBFILE_TYPE, TIFF_TAG_T4_OPTIONS, TIFF_TAG_T6_OPTIONS, TIFF_TAG_TARGET_PRINTER, TIFF_TAG_THRESHHOLDING, TIFF_TAG_TILE_BYTE_COUNTS, TIFF_TAG_TILE_LENGTH, TIFF_TAG_TILE_OFFSETS, TIFF_TAG_TILE_WIDTH, TIFF_TAG_TRANSFER_FUNCTION, TIFF_TAG_TRANSFER_RANGE, TIFF_TAG_UNKNOWN, TIFF_TAG_WHITE_POINT, TIFF_TAG_XMP, TIFF_TAG_XPOSITION, TIFF_TAG_XRESOLUTION, TIFF_TAG_YCBCR_COEFFICIENTS, TIFF_TAG_YCBCR_POSITIONING, TIFF_TAG_YCBCR_SUB_SAMPLING, TIFF_TAG_YPOSITION, TIFF_TAG_YRESOLUTION
 
Fields inherited from interface org.apache.sanselan.formats.tiff.constants.TiffDirectoryConstants
DIRECTORY_TYPE_DIR_0, DIRECTORY_TYPE_DIR_1, DIRECTORY_TYPE_DIR_2, DIRECTORY_TYPE_DIR_3, DIRECTORY_TYPE_DIR_4, DIRECTORY_TYPE_EXIF, DIRECTORY_TYPE_GPS, DIRECTORY_TYPE_INTEROPERABILITY, DIRECTORY_TYPE_MAKER_NOTES, DIRECTORY_TYPE_ROOT, DIRECTORY_TYPE_SUB, DIRECTORY_TYPE_SUB0, DIRECTORY_TYPE_SUB1, DIRECTORY_TYPE_SUB2, DIRECTORY_TYPE_THUMBNAIL, DIRECTORY_TYPE_UNKNOWN, EXIF_DIRECTORIES, EXIF_DIRECTORY_EXIF_IFD, EXIF_DIRECTORY_GPS, EXIF_DIRECTORY_IFD0, EXIF_DIRECTORY_IFD1, EXIF_DIRECTORY_IFD2, EXIF_DIRECTORY_IFD3, EXIF_DIRECTORY_INTEROP_IFD, EXIF_DIRECTORY_MAKER_NOTES, EXIF_DIRECTORY_SUB_IFD, EXIF_DIRECTORY_SUB_IFD1, EXIF_DIRECTORY_SUB_IFD2, EXIF_DIRECTORY_UNKNOWN, TIFF_DIRECTORY_IFD0, TIFF_DIRECTORY_IFD1, TIFF_DIRECTORY_IFD2, TIFF_DIRECTORY_IFD3, TIFF_DIRECTORY_ROOT
 
Fields inherited from interface org.apache.sanselan.formats.tiff.constants.TiffFieldTypeConstants
FIELD_TYPE_ANY, FIELD_TYPE_ASCII, FIELD_TYPE_BYTE, FIELD_TYPE_DESCRIPTION_ANY, FIELD_TYPE_DESCRIPTION_ASCII, FIELD_TYPE_DESCRIPTION_BYTE, FIELD_TYPE_DESCRIPTION_BYTE_OR_SHORT, FIELD_TYPE_DESCRIPTION_LONG, FIELD_TYPE_DESCRIPTION_LONG_OR_SHORT, FIELD_TYPE_DESCRIPTION_RATIONAL, FIELD_TYPE_DESCRIPTION_SHORT, FIELD_TYPE_DESCRIPTION_SHORT_OR_LONG, FIELD_TYPE_DESCRIPTION_UNKNOWN, FIELD_TYPE_DOUBLE, FIELD_TYPE_FLOAT, FIELD_TYPE_LONG, FIELD_TYPE_RATIONAL, FIELD_TYPE_SBYTE, FIELD_TYPE_SHORT, FIELD_TYPE_SLONG, FIELD_TYPE_SRATIONAL, FIELD_TYPE_SSHORT, FIELD_TYPE_UNDEFINED, FIELD_TYPE_UNKNOWN, FIELD_TYPES
 
Fields inherited from interface org.apache.sanselan.SanselanConstants
BUFFERED_IMAGE_FACTORY, PARAM_KEY_COMPRESSION, PARAM_KEY_FILENAME, PARAM_KEY_FORMAT, PARAM_KEY_READ_THUMBNAILS, PARAM_KEY_STRICT, PARAM_KEY_VERBOSE, PARAM_KEY_XMP_XML
 
Fields inherited from interface org.apache.sanselan.common.BinaryConstants
BYTE_ORDER_BIG_ENDIAN, BYTE_ORDER_INTEL, BYTE_ORDER_LEAST_SIGNIFICANT_BYTE, BYTE_ORDER_LITTLE_ENDIAN, BYTE_ORDER_LSB, BYTE_ORDER_MOST_SIGNIFICANT_BYTE, BYTE_ORDER_MOTOROLA, BYTE_ORDER_MSB, BYTE_ORDER_NETWORK
 
Constructor Summary
JpegImageParser()
           
 
Method Summary
 boolean dumpImageFile(java.io.PrintWriter pw, ByteSource byteSource)
           
 byte[] embedICCProfile(byte[] image, byte[] profile)
           
 boolean embedICCProfile(java.io.File src, java.io.File dst, byte[] profile)
           
protected  java.lang.String[] getAcceptedExtensions()
           
protected  ImageFormat[] getAcceptedTypes()
           
 java.awt.image.BufferedImage getBufferedImage(ByteSource byteSource, java.util.Map params)
           
 java.lang.String getDefaultExtension()
           
 TiffImageMetadata getExifMetadata(ByteSource byteSource, java.util.Map params)
           
 byte[] getExifRawData(ByteSource byteSource)
           
 byte[] getICCProfileBytes(ByteSource byteSource, java.util.Map params)
           
 ImageInfo getImageInfo(ByteSource byteSource, java.util.Map params)
           
 java.awt.Dimension getImageSize(ByteSource byteSource, java.util.Map params)
           
 IImageMetadata getMetadata(ByteSource byteSource, java.util.Map params)
           
 java.lang.String getName()
           
 JpegPhotoshopMetadata getPhotoshopMetadata(ByteSource byteSource, java.util.Map params)
           
 java.lang.String getXmpXml(ByteSource byteSource, java.util.Map params)
          Extracts embedded XML metadata as XML string.
 boolean hasExifSegment(ByteSource byteSource)
           
 boolean hasIptcSegment(ByteSource byteSource)
           
 boolean hasXmpSegment(ByteSource byteSource)
           
static boolean isExifAPP1Segment(GenericSegment segment)
           
 java.util.ArrayList readSegments(ByteSource byteSource, int[] markers, boolean returnAfterFirst)
           
 java.util.ArrayList readSegments(ByteSource byteSource, int[] markers, boolean returnAfterFirst, boolean readEverything)
           
 
Methods inherited from class org.apache.sanselan.ImageParser
canAcceptExtension, canAcceptExtension, canAcceptType, dumpImageFile, dumpImageFile, dumpImageFile, getAllBufferedImages, getAllBufferedImages, getAllBufferedImages, getAllImageParsers, getBufferedImage, getBufferedImage, getBufferedImageFactory, getFormatCompliance, getFormatCompliance, getFormatCompliance, getICCProfileBytes, getICCProfileBytes, getICCProfileBytes, getICCProfileBytes, getImageInfo, getImageInfo, getImageInfo, getImageSize, getImageSize, getImageSize, getImageSize, getMetadata, getMetadata, getMetadata, getMetadata, getMetadata, isStrict, writeImage
 
Methods inherited from class org.apache.sanselan.common.BinaryFileParser
byteArrayHasPrefix, convertByteArrayToInt, convertByteArrayToInt, convertByteArrayToShort, convertByteArrayToShort, getByteOrder, int2ToByteArray, read2Bytes, read3Bytes, read4Bytes, setByteOrder, setByteOrder
 
Methods inherited from class org.apache.sanselan.common.BinaryFileFunctions
CharsToQuad, compareByteArrays, compareByteArrays, compareBytes, compareBytes, convertByteArrayToDouble, convertByteArrayToDouble, convertByteArrayToDoubleArray, convertByteArrayToFloat, convertByteArrayToFloat, convertByteArrayToFloatArray, convertByteArrayToInt, convertByteArrayToInt, convertByteArrayToIntArray, convertByteArrayToRational, convertByteArrayToRational, convertByteArrayToRationalArray, convertByteArrayToShort, convertByteArrayToShort, convertByteArrayToShortArray, convertDoubleArrayToByteArray, convertDoubleToByteArray, convertFloatArrayToByteArray, convertFloatToByteArray, convertIntArrayToByteArray, convertIntArrayToRationalArray, convertRationalArrayToByteArray, convertRationalToByteArray, convertShortArrayToByteArray, convertShortToByteArray, copyStreamToStream, debugByteArray, debugNumber, debugNumber, debugNumber, debugNumber, debugNumberArray, findNull, findNull, getBytearrayHead, getByteArrayTail, getDebug, getRAFBytes, getStreamBytes, head, int2ToByteArray, printByteBits, printCharQuad, printCharQuad, read2Bytes, read3Bytes, read4Bytes, readAndVerifyBytes, readAndVerifyBytes, readByte, readBytearray, readByteArray, readByteArray, readBytes, readRandomBytes, scanForByte, setDebug, skipBytes, skipBytes, slice, startsWith, tail, writeIntInToByteArray
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

AcceptedExtensions

public static final java.lang.String[] AcceptedExtensions

permissive

public static final boolean permissive
See Also:
Constant Field Values
Constructor Detail

JpegImageParser

public JpegImageParser()
Method Detail

getAcceptedTypes

protected ImageFormat[] getAcceptedTypes()
Specified by:
getAcceptedTypes in class ImageParser

getName

public java.lang.String getName()
Specified by:
getName in class ImageParser

getDefaultExtension

public java.lang.String getDefaultExtension()
Specified by:
getDefaultExtension in class ImageParser

getAcceptedExtensions

protected java.lang.String[] getAcceptedExtensions()
Specified by:
getAcceptedExtensions in class ImageParser

getBufferedImage

public final java.awt.image.BufferedImage getBufferedImage(ByteSource byteSource,
                                                           java.util.Map params)
                                                    throws ImageReadException,
                                                           java.io.IOException
Specified by:
getBufferedImage in class ImageParser
Throws:
ImageReadException
java.io.IOException

readSegments

public java.util.ArrayList readSegments(ByteSource byteSource,
                                        int[] markers,
                                        boolean returnAfterFirst,
                                        boolean readEverything)
                                 throws ImageReadException,
                                        java.io.IOException
Throws:
ImageReadException
java.io.IOException

readSegments

public java.util.ArrayList readSegments(ByteSource byteSource,
                                        int[] markers,
                                        boolean returnAfterFirst)
                                 throws ImageReadException,
                                        java.io.IOException
Throws:
ImageReadException
java.io.IOException

getICCProfileBytes

public byte[] getICCProfileBytes(ByteSource byteSource,
                                 java.util.Map params)
                          throws ImageReadException,
                                 java.io.IOException
Specified by:
getICCProfileBytes in class ImageParser
Throws:
ImageReadException
java.io.IOException

getMetadata

public IImageMetadata getMetadata(ByteSource byteSource,
                                  java.util.Map params)
                           throws ImageReadException,
                                  java.io.IOException
Specified by:
getMetadata in class ImageParser
Throws:
ImageReadException
java.io.IOException

isExifAPP1Segment

public static boolean isExifAPP1Segment(GenericSegment segment)

getExifMetadata

public TiffImageMetadata getExifMetadata(ByteSource byteSource,
                                         java.util.Map params)
                                  throws ImageReadException,
                                         java.io.IOException
Throws:
ImageReadException
java.io.IOException

getExifRawData

public byte[] getExifRawData(ByteSource byteSource)
                      throws ImageReadException,
                             java.io.IOException
Throws:
ImageReadException
java.io.IOException

hasExifSegment

public boolean hasExifSegment(ByteSource byteSource)
                       throws ImageReadException,
                              java.io.IOException
Throws:
ImageReadException
java.io.IOException

hasIptcSegment

public boolean hasIptcSegment(ByteSource byteSource)
                       throws ImageReadException,
                              java.io.IOException
Throws:
ImageReadException
java.io.IOException

hasXmpSegment

public boolean hasXmpSegment(ByteSource byteSource)
                      throws ImageReadException,
                             java.io.IOException
Throws:
ImageReadException
java.io.IOException

getXmpXml

public java.lang.String getXmpXml(ByteSource byteSource,
                                  java.util.Map params)
                           throws ImageReadException,
                                  java.io.IOException
Extracts embedded XML metadata as XML string.

Specified by:
getXmpXml in class ImageParser
Parameters:
file - File containing image data.
params - Map of optional parameters, defined in SanselanConstants.
Returns:
Xmp Xml as String, if present. Otherwise, returns null..
Throws:
ImageReadException
java.io.IOException

getPhotoshopMetadata

public JpegPhotoshopMetadata getPhotoshopMetadata(ByteSource byteSource,
                                                  java.util.Map params)
                                           throws ImageReadException,
                                                  java.io.IOException
Throws:
ImageReadException
java.io.IOException

getImageSize

public java.awt.Dimension getImageSize(ByteSource byteSource,
                                       java.util.Map params)
                                throws ImageReadException,
                                       java.io.IOException
Specified by:
getImageSize in class ImageParser
Throws:
ImageReadException
java.io.IOException

embedICCProfile

public byte[] embedICCProfile(byte[] image,
                              byte[] profile)

embedICCProfile

public boolean embedICCProfile(java.io.File src,
                               java.io.File dst,
                               byte[] profile)
Specified by:
embedICCProfile in class ImageParser

getImageInfo

public ImageInfo getImageInfo(ByteSource byteSource,
                              java.util.Map params)
                       throws ImageReadException,
                              java.io.IOException
Specified by:
getImageInfo in class ImageParser
Throws:
ImageReadException
java.io.IOException

dumpImageFile

public boolean dumpImageFile(java.io.PrintWriter pw,
                             ByteSource byteSource)
                      throws ImageReadException,
                             java.io.IOException
Overrides:
dumpImageFile in class ImageParser
Throws:
ImageReadException
java.io.IOException


Copyright © 2007-2009. All Rights Reserved.