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 class
Workaround 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 class
Workaround 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.ComponentIdSet
private int
private final List
<JPEGSegmentImageInputStream.Segment> private final ImageInputStream
private final JPEGSegmentWarningListener
Fields inherited from class javax.imageio.stream.ImageInputStreamImpl
bitOffset, byteOrder, flushedPos, streamPos
-
Constructor Summary
ConstructorsConstructorDescriptionJPEGSegmentImageInputStream
(ImageInputStream stream, JPEGSegmentWarningListener warningListener) -
Method Summary
Modifier and TypeMethodDescription(package private) static String
asAsciiString
(byte[] data, int offset, int length) (package private) static String
asNullTerminatedAsciiString
(byte[] data, int offset) protected void
finalize()
Deprecated.(package private) static boolean
isAppSegmentMarker
(int marker) private static boolean
isAppSegmentWithId
(String segmentId, ImageInputStream stream) (package private) static boolean
isSOFMarker
(int marker) private void
processWarningOccured
(String warning) int
read()
int
read
(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 void
private void
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 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:
read
in interfaceImageInputStream
- Specified by:
read
in classImageInputStreamImpl
- Throws:
IOException
-
read
- Specified by:
read
in interfaceImageInputStream
- Specified by:
read
in classImageInputStreamImpl
- Throws:
IOException
-
finalize
Deprecated.- Overrides:
finalize
in classImageInputStreamImpl
-