Package com.adobe.internal.io.stream
Class CroppedImageInputByteStream
- java.lang.Object
-
- com.adobe.internal.io.stream.CroppedImageInputByteStream
-
- All Implemented Interfaces:
InputByteStream
public class CroppedImageInputByteStream extends java.lang.Object implements InputByteStream
This class is used to crop an image input stream to specified bounds. This particularly is helpful for those images which are very huge. Because we never load the complete image in memory at any moment. There are some methods which are either not supported or not follow the contract ofInputByteStream. So, clients are recommended to read the javadocs of individual API's of this class before using them.
-
-
Field Summary
-
Fields inherited from interface com.adobe.internal.io.stream.InputByteStream
EOF
-
-
Constructor Summary
Constructors Constructor Description CroppedImageInputByteStream(int bpc, int noc, java.io.InputStream decodedImage, int width, int height, int x1, int y1, int x2, int y2)Constructor to create an instance of this InputByteStream which reads subimage of dimension (x2-x1)*(y2-y1), of specified bits per component and number of components, from passedInputStream
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description longbytesAvailable()Only for internal engineering use.voidclose()Closes this InputByteStream and releases any system resources associated with the stream.booleaneof()Only for internal engineering use.longgetPosition()Only for internal engineering use.longlength()Only for internal engineering use.intread()Only for internal engineering use.intread(byte[] bytes)Only for internal engineering use.intread(byte[] bytes, int position, int length)Only for internal engineering use.InputByteStreamseek(long position)Not supportedInputByteStreamslice()Returns itself.InputByteStreamslice(long begin, long length)Not supportedjava.io.InputStreamtoInputStream()Returns an instance ofInputStreamwhich uses this stream only as back-end.intunget()Not supported
-
-
-
Constructor Detail
-
CroppedImageInputByteStream
public CroppedImageInputByteStream(int bpc, int noc, java.io.InputStream decodedImage, int width, int height, int x1, int y1, int x2, int y2) throws java.io.IOExceptionConstructor to create an instance of this InputByteStream which reads subimage of dimension (x2-x1)*(y2-y1), of specified bits per component and number of components, from passedInputStream- Parameters:
bpc- bits per component of imagenoc- number of componentsdecodedImage- image input streamwidth- image widthheight- image heightx1- lefty1- bottomx2- righty2- top- Throws:
java.io.IOException
-
-
Method Detail
-
slice
public InputByteStream slice(long begin, long length) throws java.io.IOException
Not supported- Specified by:
slicein interfaceInputByteStream- Parameters:
begin- Offset within the currentInputByteStreamto start the slice.length- The length of the slice.- Returns:
- A slice of the original
InputByteStream. - Throws:
java.io.IOException
-
slice
public InputByteStream slice() throws java.io.IOException
Returns itself.- Specified by:
slicein interfaceInputByteStream- Returns:
- A slice of the original
InputByteStream. - Throws:
java.io.IOException
-
read
public int read() throws java.io.IOExceptionDescription copied from interface:InputByteStreamOnly for internal engineering use. This api can change without notice. Read the byte at the current position. If the current position is at or beyond the end of the underlying data return a-1. If not beyond the end of the underlying data the current position is incremented by 1.- Specified by:
readin interfaceInputByteStream- Returns:
- The byte at the current position or
-1if at or beyond EOF. - Throws:
java.io.IOException
-
read
public int read(byte[] bytes, int position, int length) throws java.io.IOExceptionDescription copied from interface:InputByteStreamOnly for internal engineering use. This api can change without notice. Read an array of bytes starting at the current position. The position is incremented by the length of the array that has been read.- Specified by:
readin interfaceInputByteStream- Parameters:
bytes- The destination array.position- The offset in the byte array to put the first byte read.length- The number of bytes to read.- Throws:
java.io.IOException
-
read
public int read(byte[] bytes) throws java.io.IOExceptionDescription copied from interface:InputByteStreamOnly for internal engineering use. This api can change without notice. Read an array of bytes starting at the current position. The position is incremented by the length of the array that has been read.- Specified by:
readin interfaceInputByteStream- Parameters:
bytes- The destination array.- Throws:
java.io.IOException
-
unget
public int unget() throws java.io.IOExceptionNot supported- Specified by:
ungetin interfaceInputByteStream- Throws:
java.io.IOException
-
seek
public InputByteStream seek(long position) throws java.io.IOException
Not supported- Specified by:
seekin interfaceInputByteStream- Parameters:
position- Where to set the current position.- Returns:
- This object.
- Throws:
java.io.IOException
-
getPosition
public long getPosition() throws java.io.IOExceptionDescription copied from interface:InputByteStreamOnly for internal engineering use. This api can change without notice. Get the current position.- Specified by:
getPositionin interfaceInputByteStream- Returns:
- The current position.
- Throws:
java.io.IOException
-
length
public long length() throws java.io.IOExceptionDescription copied from interface:InputByteStreamOnly for internal engineering use. This api can change without notice. The maximum number of bytes that can be read from thisInputByteStream.- Specified by:
lengthin interfaceInputByteStream- Returns:
- Total number of bytes available in this
InputByteStream. - Throws:
java.io.IOException
-
bytesAvailable
public long bytesAvailable() throws java.io.IOExceptionDescription copied from interface:InputByteStreamOnly for internal engineering use. This api can change without notice. The number of bytes available to be read from the current position.- Specified by:
bytesAvailablein interfaceInputByteStream- Returns:
- Number of bytes available from the current position in this
InputByteStream. - Throws:
java.io.IOException
-
eof
public boolean eof() throws java.io.IOExceptionDescription copied from interface:InputByteStreamOnly for internal engineering use. This api can change without notice. Is the current position of thisInputByteStreamat or beyond the end of the underlying data.- Specified by:
eofin interfaceInputByteStream- Returns:
- True if the current position is beyond the end of the underlying data, false otherwise.
- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOExceptionDescription copied from interface:InputByteStreamCloses this InputByteStream and releases any system resources associated with the stream. After this method is called then any further calls to this instance are errors.- Specified by:
closein interfaceInputByteStream- Throws:
java.io.IOException
-
toInputStream
public java.io.InputStream toInputStream() throws java.io.IOExceptionReturns an instance ofInputStreamwhich uses this stream only as back-end. So, closing one of them will close the other also.- Specified by:
toInputStreamin interfaceInputByteStream- Returns:
- an InputStream that refers to the same underlying data
- Throws:
java.io.IOException
-
-