Class JPEGSegmentImageInputStream
- java.lang.Object
-
- javax.imageio.stream.ImageInputStreamImpl
-
- com.twelvemonkeys.imageio.plugins.jpeg.JPEGSegmentImageInputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.DataInput,java.lang.AutoCloseable,javax.imageio.stream.ImageInputStream
final class JPEGSegmentImageInputStream extends javax.imageio.stream.ImageInputStreamImplImageInputStream implementation that filters out or rewrites certain JPEG segments.- Version:
- $Id: JPEGSegmentImageInputStream.java,v 1.0 30.01.12 16:15 haraldk Exp$
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classJPEGSegmentImageInputStream.AdobeAPP14ReplacementWorkaround for a known bug in com.sun.imageio.plugins.jpeg.AdobeMarkerSegment, leaving the buffer in an inconsistent state, if the length of the APP14/Adobe is not exactly 16 bytes.(package private) static classJPEGSegmentImageInputStream.ComponentIdSet(package private) static classJPEGSegmentImageInputStream.DownsampledDQTReplacementWorkaround for a known bug in com.sun.imageio.plugins.jpeg.DQTMarkerSegment, throwing exception, if the DQT precision is 16 bits (not 8 bits).(package private) static classJPEGSegmentImageInputStream.ReplacementSegment(package private) static classJPEGSegmentImageInputStream.Segment
-
Field Summary
Fields Modifier and Type Field Description private JPEGSegmentImageInputStream.ComponentIdSetcomponentIdsprivate intcurrentSegmentprivate JPEGSegmentImageInputStream.Segmentsegmentprivate java.util.List<JPEGSegmentImageInputStream.Segment>segmentsprivate javax.imageio.stream.ImageInputStreamstreamprivate JPEGSegmentWarningListenerwarningListener
-
Constructor Summary
Constructors Constructor Description JPEGSegmentImageInputStream(javax.imageio.stream.ImageInputStream stream)JPEGSegmentImageInputStream(javax.imageio.stream.ImageInputStream stream, JPEGSegmentWarningListener warningListener)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description (package private) static java.lang.StringasAsciiString(byte[] data, int offset, int length)(package private) static java.lang.StringasNullTerminatedAsciiString(byte[] data, int offset)private JPEGSegmentImageInputStream.SegmentfetchSegment()protected voidfinalize()Deprecated.(package private) static booleanisAppSegmentMarker(int marker)private static booleanisAppSegmentWithId(java.lang.String segmentId, javax.imageio.stream.ImageInputStream stream)(package private) static booleanisSOFMarker(int marker)private voidprocessWarningOccured(java.lang.String warning)intread()intread(byte[] b, int off, int len)private byte[]readReplaceDuplicateSOFnComponentIds(int marker, long length)private byte[]readReplaceDuplicateSOSComponentSelectors(long length)private static byte[]readSegment(int marker, int length, javax.imageio.stream.ImageInputStream stream)private voidrepositionAsNecessary()private voidstreamInit()-
Methods inherited from class javax.imageio.stream.ImageInputStreamImpl
checkClosed, close, flush, flushBefore, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, isCached, isCachedFile, isCachedMemory, length, mark, read, readBit, readBits, readBoolean, readByte, readBytes, readChar, readDouble, readFloat, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedInt, readUnsignedShort, readUTF, reset, seek, setBitOffset, setByteOrder, skipBytes, skipBytes
-
-
-
-
Field Detail
-
stream
private final javax.imageio.stream.ImageInputStream stream
-
warningListener
private final JPEGSegmentWarningListener warningListener
-
componentIds
private final JPEGSegmentImageInputStream.ComponentIdSet componentIds
-
segments
private final java.util.List<JPEGSegmentImageInputStream.Segment> segments
-
currentSegment
private int currentSegment
-
segment
private JPEGSegmentImageInputStream.Segment segment
-
-
Constructor Detail
-
JPEGSegmentImageInputStream
JPEGSegmentImageInputStream(javax.imageio.stream.ImageInputStream stream, JPEGSegmentWarningListener warningListener)
-
JPEGSegmentImageInputStream
JPEGSegmentImageInputStream(javax.imageio.stream.ImageInputStream stream)
-
-
Method Detail
-
processWarningOccured
private void processWarningOccured(java.lang.String warning)
-
fetchSegment
private JPEGSegmentImageInputStream.Segment fetchSegment() throws java.io.IOException
- Throws:
java.io.IOException
-
readReplaceDuplicateSOSComponentSelectors
private byte[] readReplaceDuplicateSOSComponentSelectors(long length) throws java.io.IOException- Throws:
java.io.IOException
-
readReplaceDuplicateSOFnComponentIds
private byte[] readReplaceDuplicateSOFnComponentIds(int marker, long length) throws java.io.IOException- Throws:
java.io.IOException
-
readSegment
private static byte[] readSegment(int marker, int length, javax.imageio.stream.ImageInputStream stream) throws java.io.IOException- Throws:
java.io.IOException
-
isAppSegmentWithId
private static boolean isAppSegmentWithId(java.lang.String segmentId, javax.imageio.stream.ImageInputStream stream) throws java.io.IOException- Throws:
java.io.IOException
-
asNullTerminatedAsciiString
static java.lang.String asNullTerminatedAsciiString(byte[] data, int offset)
-
asAsciiString
static java.lang.String asAsciiString(byte[] data, int offset, int length)
-
streamInit
private void streamInit() throws java.io.IOException- Throws:
java.io.IOException
-
isAppSegmentMarker
static boolean isAppSegmentMarker(int marker)
-
isSOFMarker
static boolean isSOFMarker(int marker)
-
repositionAsNecessary
private void repositionAsNecessary() throws java.io.IOException- Throws:
java.io.IOException
-
read
public int read() throws java.io.IOException- Specified by:
readin interfacejavax.imageio.stream.ImageInputStream- Specified by:
readin classjavax.imageio.stream.ImageInputStreamImpl- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException- Specified by:
readin interfacejavax.imageio.stream.ImageInputStream- Specified by:
readin classjavax.imageio.stream.ImageInputStreamImpl- Throws:
java.io.IOException
-
finalize
@Deprecated protected void finalize()
Deprecated.- Overrides:
finalizein classjavax.imageio.stream.ImageInputStreamImpl
-
-