Class PackBits
java.lang.Object
org.apache.sis.internal.storage.inflater.PixelChannel
org.apache.sis.internal.storage.inflater.CompressionChannel
org.apache.sis.internal.storage.inflater.PackBits
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Channel
,ReadableByteChannel
Inflater for values encoded with the "PackBits" compression.
This compression is described in section 9 of TIFF 6 specification.
- Since:
- 1.1
- Version:
- 1.3
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate byte
Byte to copy many times.private int
Number of times to copy theduplicated
byte.private int
Number of bytes to copy literally from the input.Fields inherited from class org.apache.sis.internal.storage.inflater.CompressionChannel
input, listeners
-
Constructor Summary
ConstructorsConstructorDescriptionPackBits
(ChannelDataInput input, StoreListeners listeners) Creates a new channel which will decompress data from the given input. -
Method Summary
Modifier and TypeMethodDescriptionint
read
(ByteBuffer target) Decompresses some bytes from the input into the given destination buffer.void
setInputRegion
(long start, long byteCount) Prepares this inflater for reading a new tile or a new band of a tile.Methods inherited from class org.apache.sis.internal.storage.inflater.CompressionChannel
close, createDataInput, finished, isOpen, repeat, resources
-
Field Details
-
literalCount
private int literalCountNumber of bytes to copy literally from the input. Only one ofliteralCount
andduplicatedCount
can be non-zero. -
duplicatedCount
private int duplicatedCountNumber of times to copy theduplicated
byte. Only one ofliteralCount
andduplicatedCount
can be non-zero. -
duplicated
private byte duplicatedByte to copy many times. The number of copies is given byduplicatedCount
.
-
-
Constructor Details
-
PackBits
Creates a new channel which will decompress data from the given input. ThesetInputRegion(long, long)
method must be invoked after construction before a reading process can start.- Parameters:
input
- the source of data to decompress.listeners
- object where to report warnings.
-
-
Method Details
-
setInputRegion
Prepares this inflater for reading a new tile or a new band of a tile.- Overrides:
setInputRegion
in classCompressionChannel
- Parameters:
start
- stream position where to start reading.byteCount
- number of bytes to read from the input.- Throws:
IOException
- if the stream cannot be seek to the given start position.
-
read
Decompresses some bytes from the input into the given destination buffer.- Parameters:
target
- the buffer into which bytes are to be transferred.- Returns:
- the number of bytes read, or -1 if end-of-stream.
- Throws:
IOException
- if some other I/O error occurs.
-