Class JPEGSegmentImageInputStream
java.lang.Object
javax.imageio.stream.ImageInputStreamImpl
com.twelvemonkeys.imageio.plugins.jpeg.JPEGSegmentImageInputStream
- All Implemented Interfaces:
Closeable, DataInput, AutoCloseable, ImageInputStream
ImageInputStream 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 ClassesModifier and TypeClassDescription(package private) static final classWorkaround 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 final class(package private) static final classWorkaround 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 class(package private) static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final JPEGSegmentImageInputStream.ComponentIdSetprivate intprivate final List<JPEGSegmentImageInputStream.Segment> private final ImageInputStreamprivate final JPEGSegmentWarningListenerFields inherited from class ImageInputStreamImpl
bitOffset, byteOrder, flushedPos, streamPos -
Constructor Summary
ConstructorsConstructorDescriptionJPEGSegmentImageInputStream(ImageInputStream stream, JPEGSegmentWarningListener warningListener) -
Method Summary
Modifier and TypeMethodDescription(package private) static StringasAsciiString(byte[] data, int offset, int length) (package private) static StringasNullTerminatedAsciiString(byte[] data, int offset) protected voidfinalize()Deprecated.(package private) static booleanisAppSegmentMarker(int marker) private static booleanisAppSegmentWithId(String segmentId, ImageInputStream stream) (package private) static booleanisSOFMarker(int marker) private voidprocessWarningOccured(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, ImageInputStream stream) private voidprivate voidMethods inherited from class 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 Details
-
stream
-
warningListener
-
componentIds
-
segments
-
currentSegment
private int currentSegment -
segment
-
-
Constructor Details
-
JPEGSegmentImageInputStream
JPEGSegmentImageInputStream(ImageInputStream stream, JPEGSegmentWarningListener warningListener) -
JPEGSegmentImageInputStream
JPEGSegmentImageInputStream(ImageInputStream stream)
-
-
Method Details
-
processWarningOccured
-
fetchSegment
- Throws:
IOException
-
readReplaceDuplicateSOSComponentSelectors
- Throws:
IOException
-
readReplaceDuplicateSOFnComponentIds
- Throws:
IOException
-
readSegment
private static byte[] readSegment(int marker, int length, ImageInputStream stream) throws IOException - Throws:
IOException
-
isAppSegmentWithId
private static boolean isAppSegmentWithId(String segmentId, ImageInputStream stream) throws IOException - Throws:
IOException
-
asNullTerminatedAsciiString
-
asAsciiString
-
streamInit
- Throws:
IOException
-
isAppSegmentMarker
static boolean isAppSegmentMarker(int marker) -
isSOFMarker
static boolean isSOFMarker(int marker) -
repositionAsNecessary
- Throws:
IOException
-
read
- Specified by:
readin interfaceImageInputStream- Specified by:
readin classImageInputStreamImpl- Throws:
IOException
-
read
- Specified by:
readin interfaceImageInputStream- Specified by:
readin classImageInputStreamImpl- Throws:
IOException
-
finalize
-