|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.harvard.hul.ois.jhove.ModuleBase
edu.harvard.hul.ois.jhove.module.JpegModule
public class JpegModule
Module for identification and validation of JPEG files. General notes: There is no such thing as a "JPEG file format." There are several commonly used file formats which encapsulate JPEG data and conform to the JPEG stream format. There are also many formats which can encapsulate JPEG data within some larger wrapper; this module does not attempt to recognize them. Only JPEG file formats which are JPEG streams are treated here. A JPEG stream which isn't one of the known file formats will be regarded as well-formed, but not valid. To be valid, a file must conform to one of the following: JFIF, SPIFF, and JPEG/Exif. Other formats may be added in the future. This module uses the JPEG-L method of detecting a marker following a data stream, checking for a 0 high bit rather than an entire 0 byte. So long at no JPEG markers are defined with a value from 0 through 7F, this is valid for all JPEG files. * @author Gary McGath
Field Summary | |
---|---|
protected java.util.List<java.lang.String> |
_appSegsList
|
protected java.util.List<ArithConditioning> |
_arithCondTables
|
protected int |
_capability0
|
protected int |
_capability1
|
protected Checksummer |
_ckSummer
|
protected java.util.List<java.lang.String> |
_commentsList
|
protected java.util.Set |
_compressSet
|
protected ChecksumInputStream |
_cstream
|
protected java.io.DataInputStream |
_dstream
|
protected boolean |
_exifProfileOK
|
protected Property |
_exifProp
|
protected java.util.List<boolean[]> |
_expList
|
protected java.util.List<Property> |
_imageList
|
protected Property |
_imageProp
|
protected java.util.List<java.lang.String> |
_jpegExtsList
|
protected Property |
_metadata
|
protected NisoImageMetadata |
_niso
|
protected int |
_numScans
|
protected int |
_numSegments
|
protected java.util.List<Property> |
_primaryImageList
|
protected java.util.List<Property> |
_propList
|
protected java.util.List<QuantizationTable> |
_quantTables
|
protected boolean |
_reportedJFIF
|
protected boolean |
_reportedSigMatch
|
protected int |
_restartInterval
|
protected boolean |
_seenExif
|
protected boolean |
_seenJFIF
|
protected boolean |
_seenJPEGL
|
protected boolean |
_seenSOF
|
protected boolean |
_seenSPIFF
|
protected SpiffDir |
_spiffDir
|
protected java.util.List<SRS> |
_srsList
|
protected Tiling |
_tiling
|
protected int |
_units
|
protected int |
_xDensity
|
protected Property |
_xmpProp
|
protected int |
_yDensity
|
protected java.lang.String |
exifProfileName
|
protected java.lang.String |
jfifProfileName
PRIVATE INSTANCE FIELDS. |
protected java.lang.String |
jpeglProfileName
|
protected java.text.NumberFormat |
minorFmt
|
protected static int[] |
sigByte
|
protected java.lang.String |
spiffProfileName
|
Fields inherited from class edu.harvard.hul.ois.jhove.ModuleBase |
---|
_app, _bigEndian, _checksumFinished, _countStream, _coverage, _crc32, _date, _defaultParams, _features, _format, _init, _isRandomAccess, _je, _logger, _md5, _mimeType, _name, _nByte, _note, _param, _release, _repInfoNote, _rights, _sha1, _signature, _specification, _validityNote, _vendor, _verbosity, _wellFormedNote |
Fields inherited from interface edu.harvard.hul.ois.jhove.Module |
---|
MAXIMUM_VERBOSITY, MINIMUM_VERBOSITY |
Constructor Summary | |
---|---|
JpegModule()
Instantiate a JpegModule object. |
Method Summary | |
---|---|
protected Property |
buildCapProp(RepInfo info)
|
protected Property |
buildExpandProp(RepInfo info)
|
protected Property |
buildTilingProp(RepInfo info)
|
void |
checkSignatures(java.io.File file,
java.io.InputStream stream,
RepInfo info)
Check if the digital object conforms to this Module's internal signature information. |
protected static boolean |
equalArray(int[] a,
int[] b)
|
protected void |
extractExifNisoData(NisoImageMetadata exifData)
|
protected void |
initNiso()
Initializes the constant portions of the niso metadata. |
protected void |
initParse()
Initializes the state of the module for parsing. |
int |
parse(java.io.InputStream stream,
RepInfo info,
int parseIndex)
Parse the content of a purported JPEG stream digital object and store the results in RepInfo. |
protected void |
readAPP0(RepInfo info)
|
protected void |
readAPP1(RepInfo info)
|
protected void |
readAPP8(RepInfo info)
|
protected void |
readComment(RepInfo info)
|
protected void |
readDAC(RepInfo info)
|
protected void |
readDHP(RepInfo info)
|
protected void |
readDQT(RepInfo info)
|
protected void |
readDRI(RepInfo info)
|
protected void |
readDTI(RepInfo info)
|
protected void |
readDTT(RepInfo info)
|
protected void |
readEXP(RepInfo info)
|
protected boolean |
readHeader(RepInfo info)
|
protected void |
readJPEGExtension(int dbyt,
RepInfo info)
|
protected void |
readSOF(int dbyt,
RepInfo info)
|
protected void |
readSRS(RepInfo info)
|
long |
readUnsignedInt(java.io.DataInputStream stream)
One-argument version of readUnsignedInt . |
int |
readUnsignedShort(java.io.DataInputStream stream)
One-argument version of readUnsignedShort . |
protected void |
readVer(RepInfo info)
|
protected Property |
readXMP(byte[] buf)
|
protected void |
reportAppExt(int dbyt,
RepInfo info)
|
protected boolean |
skipSegment(RepInfo info)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected java.lang.String jfifProfileName
protected java.lang.String spiffProfileName
protected java.lang.String exifProfileName
protected java.lang.String jpeglProfileName
protected java.text.NumberFormat minorFmt
protected Checksummer _ckSummer
protected ChecksumInputStream _cstream
protected java.io.DataInputStream _dstream
protected Property _metadata
protected Property _imageProp
protected Property _exifProp
protected Property _xmpProp
protected NisoImageMetadata _niso
protected java.util.List<Property> _propList
protected java.util.List<Property> _imageList
protected Tiling _tiling
protected java.util.List<QuantizationTable> _quantTables
protected java.util.List<ArithConditioning> _arithCondTables
protected java.util.List<SRS> _srsList
protected java.util.List<Property> _primaryImageList
protected int _numSegments
protected int _numScans
protected int _restartInterval
protected boolean _seenJFIF
protected boolean _seenSPIFF
protected boolean _seenJPEGL
protected boolean _reportedSigMatch
protected SpiffDir _spiffDir
protected boolean _seenExif
protected boolean _exifProfileOK
protected boolean _reportedJFIF
protected boolean _seenSOF
protected java.util.List<java.lang.String> _commentsList
protected java.util.List<java.lang.String> _jpegExtsList
protected java.util.List<java.lang.String> _appSegsList
protected java.util.List<boolean[]> _expList
protected java.util.Set _compressSet
protected int _capability0
protected int _capability1
protected static final int[] sigByte
protected int _units
protected int _xDensity
protected int _yDensity
Constructor Detail |
---|
public JpegModule()
Method Detail |
---|
public void checkSignatures(java.io.File file, java.io.InputStream stream, RepInfo info) throws java.io.IOException
checkSignatures
in interface Module
checkSignatures
in class ModuleBase
file
- A RandomAccessFile, positioned at its beginning,
which is generated from the object to be parsedstream
- An InputStream, positioned at its beginning,
which is generated from the object to be parsedinfo
- A fresh RepInfo object which will be modified
to reflect the results of the test
java.io.IOException
public int parse(java.io.InputStream stream, RepInfo info, int parseIndex) throws java.io.IOException
parse
in interface Module
parse
in class ModuleBase
stream
- An InputStream, positioned at its beginning,
which is generated from the object to be parsedinfo
- A fresh RepInfo object which will be modified
to reflect the results of the parsingparseIndex
- Must be 0 in first call to parse
. If
parse
returns a nonzero value, it must be
called again with parseIndex
equal to that return value.
java.io.IOException
public int readUnsignedShort(java.io.DataInputStream stream) throws java.io.IOException
readUnsignedShort
.
JPEG is always big-endian, so readUnsignedShort can
unambiguously drop its endian argument.
java.io.IOException
public long readUnsignedInt(java.io.DataInputStream stream) throws java.io.IOException
readUnsignedInt
.
JPEG is always big-endian, so readUnsignedInt can
unambiguously drop its endian argument.
java.io.IOException
protected void initParse()
initParse
in class ModuleBase
protected void initNiso()
protected boolean readHeader(RepInfo info)
protected void readAPP0(RepInfo info) throws java.io.IOException
java.io.IOException
protected void readAPP1(RepInfo info) throws java.io.IOException
java.io.IOException
protected void readAPP8(RepInfo info) throws java.io.IOException
java.io.IOException
protected void readVer(RepInfo info) throws java.io.IOException
java.io.IOException
protected void readDTI(RepInfo info) throws java.io.IOException
java.io.IOException
protected void readDTT(RepInfo info) throws java.io.IOException
java.io.IOException
protected void readSRS(RepInfo info) throws java.io.IOException
java.io.IOException
protected void reportAppExt(int dbyt, RepInfo info)
protected void readSOF(int dbyt, RepInfo info) throws java.io.IOException
java.io.IOException
protected void readDHP(RepInfo info) throws java.io.IOException
java.io.IOException
protected void readEXP(RepInfo info) throws java.io.IOException
java.io.IOException
protected void readDRI(RepInfo info) throws java.io.IOException
java.io.IOException
protected void readDQT(RepInfo info) throws java.io.IOException
java.io.IOException
protected void readDAC(RepInfo info) throws java.io.IOException
java.io.IOException
protected void readJPEGExtension(int dbyt, RepInfo info) throws java.io.IOException
java.io.IOException
protected void readComment(RepInfo info) throws java.io.IOException
java.io.IOException
protected Property buildCapProp(RepInfo info)
protected Property buildTilingProp(RepInfo info)
protected Property buildExpandProp(RepInfo info)
protected Property readXMP(byte[] buf)
protected void extractExifNisoData(NisoImageMetadata exifData)
protected boolean skipSegment(RepInfo info) throws java.io.IOException
java.io.IOException
protected static boolean equalArray(int[] a, int[] b)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |