public class BfPyramidPixelBuffer extends java.lang.Object implements PixelBuffer
PixelBuffer
implementation which uses Bio-Formats to
read pixels data directly from original files.Modifier and Type | Field and Description |
---|---|
static java.lang.String |
PYR_LOCK_EXT |
protected OmeroPixelsPyramidReader |
reader
Bio-Formats implementation the delegate uses to read the backing TIFF.
|
protected OmeroPixelsPyramidWriter |
writer
Bio-Formats implementation used to write to the backing TIFF.
|
Modifier | Constructor and Description |
---|---|
|
BfPyramidPixelBuffer(ome.model.core.Pixels pixels,
java.lang.String filePath,
boolean write)
We may want a constructor that takes the id of an imported file
or that takes a File object?
There should ultimately be some sort of check here that the
file is in a/the repository.
|
|
BfPyramidPixelBuffer(TileSizes sizes,
ome.model.core.Pixels pixels,
java.lang.String filePath,
boolean write)
Full constructor taking a
TileSizes implementation which defines
how large the pyramid tiles will be. |
protected |
BfPyramidPixelBuffer(TileSizes sizes,
ome.model.core.Pixels pixels,
java.lang.String filePath,
boolean write,
boolean init) |
Modifier and Type | Method and Description |
---|---|
protected void |
acquireLock() |
byte[] |
calculateMessageDigest()
Calculates a SHA-1 message digest for the entire pixel buffer.
|
void |
checkBounds(java.lang.Integer x,
java.lang.Integer y,
java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t)
Checks to ensure that no one particular axis has an offset out of bounds.
|
void |
close()
Closes the buffer, cleaning up file state.
|
protected void |
closeRaf() |
protected void |
closeWriter()
This method should never exit without releasing the lock.
|
java.nio.ByteOrder |
getByteOrder()
Returns the current pixel byte order.
|
int |
getByteWidth()
Returns the byte width for the pixel buffer.
|
ome.util.PixelData |
getCol(java.lang.Integer x,
java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t)
Retrieves a particular column from this pixel buffer.
|
byte[] |
getColDirect(java.lang.Integer x,
java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t,
byte[] buffer)
Retrieves a particular column from this pixel buffer.
|
java.lang.Integer |
getColSize()
Retrieves the in memory size of a column of pixels in this pixel buffer.
|
ome.util.PixelData |
getHypercube(java.util.List<java.lang.Integer> offset,
java.util.List<java.lang.Integer> size,
java.util.List<java.lang.Integer> step)
Retrieves a hypercube from this pixel buffer.
|
byte[] |
getHypercubeDirect(java.util.List<java.lang.Integer> offset,
java.util.List<java.lang.Integer> size,
java.util.List<java.lang.Integer> step,
byte[] buffer)
Retrieves a hypercube from the given pixels directly.
|
java.lang.Long |
getHypercubeSize(java.util.List<java.lang.Integer> offset,
java.util.List<java.lang.Integer> size,
java.util.List<java.lang.Integer> step)
Retrieves a the size of a hypercube from this pixel buffer.
|
long |
getId()
Retrieves the identifier of this pixel buffer
|
java.lang.String |
getPath()
Retrieves the full path to this pixel buffer on disk
|
ome.util.PixelData |
getPlane(java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t)
Retrieves a particular 2D image plane from this pixel buffer.
|
byte[] |
getPlaneDirect(java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t,
byte[] buffer)
Retrieves a particular 2D image plane from this pixel buffer.
|
java.lang.Long |
getPlaneOffset(java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t)
Retrieves the offset for a particular 2D image plane in this pixel
buffer.
|
ome.util.PixelData |
getPlaneRegion(java.lang.Integer x,
java.lang.Integer y,
java.lang.Integer width,
java.lang.Integer height,
java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t,
java.lang.Integer stride)
Retrieves a particular region of a 2D image plane from this pixel buffer.
|
byte[] |
getPlaneRegionDirect(java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t,
java.lang.Integer count,
java.lang.Integer offset,
byte[] buffer)
Retrieves a region from a given plane directly.
|
java.lang.Long |
getPlaneSize()
Retrieves the in memory size of a 2D image plane in this pixel buffer.
|
ome.util.PixelData |
getRegion(java.lang.Integer size,
java.lang.Long offset)
Retrieves a region from this pixel buffer.
|
byte[] |
getRegionDirect(java.lang.Integer size,
java.lang.Long offset,
byte[] buffer)
Retrieves a region from this pixel buffer directly.
|
java.util.List<java.util.List<java.lang.Integer>> |
getResolutionDescriptions()
Return a list of lists each of which has sizeX, sizeY for the resolution
level matching the index of the outer index.
|
int |
getResolutionLevel()
Retrieves the active resolution level.
|
int |
getResolutionLevels()
Retrieves the number of resolution levels that the backing
pixels pyramid contains.
|
ome.util.PixelData |
getRow(java.lang.Integer y,
java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t)
Retrieves a particular row or scanline from this pixel buffer.
|
byte[] |
getRowDirect(java.lang.Integer y,
java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t,
byte[] buffer)
Retrieves a particular row or scanline from this pixel buffer.
|
java.lang.Long |
getRowOffset(java.lang.Integer y,
java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t)
Retrieves the offset for a particular row or scanline in this pixel
buffer.
|
java.lang.Integer |
getRowSize()
Retrieves the in memory size of a row or scanline of pixels in this
pixel buffer.
|
int |
getSizeC()
Retrieves the size in C of this pixel buffer
|
int |
getSizeT()
Retrieves the size in T of this pixel buffer
|
int |
getSizeX()
Retrieves the size in X of this pixel buffer
|
int |
getSizeY()
Retrieves the size in Y of this pixel buffer
|
int |
getSizeZ()
Retrieves the size in Z of this pixel buffer
|
ome.util.PixelData |
getStack(java.lang.Integer c,
java.lang.Integer t)
Retrieves the the entire number of optical sections for a single
wavelength or channel at a particular timepoint in this pixel buffer.
|
byte[] |
getStackDirect(java.lang.Integer c,
java.lang.Integer t,
byte[] buffer)
Retrieves the the entire number of optical sections for a single
wavelength or channel at a particular timepoint in this pixel buffer.
|
java.lang.Long |
getStackOffset(java.lang.Integer c,
java.lang.Integer t)
Retrieves the offset for the entire number of optical sections
for a single wavelength or channel at a particular timepoint in
this pixel buffer.
|
java.lang.Long |
getStackSize()
Retrieves the in memory size of the entire number of optical sections
for a single wavelength or channel at a particular timepoint in
this pixel buffer.
|
ome.util.PixelData |
getTile(java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t,
java.lang.Integer x,
java.lang.Integer y,
java.lang.Integer w,
java.lang.Integer h)
Retrieves a tile from this pixel buffer.
|
byte[] |
getTileDirect(java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t,
java.lang.Integer x,
java.lang.Integer y,
java.lang.Integer w,
java.lang.Integer h,
byte[] buffer)
Retrieves a tile from this pixel buffer.
|
java.awt.Dimension |
getTileSize()
Retrieves the tile size for the pixel store.
|
ome.util.PixelData |
getTimepoint(java.lang.Integer t)
Retrieves the entire number of optical sections for all
wavelengths or channels at a particular timepoint in this pixel buffer.
|
byte[] |
getTimepointDirect(java.lang.Integer t,
byte[] buffer)
Retrieves the entire number of optical sections for all
wavelengths or channels at a particular timepoint in this pixel buffer.
|
java.lang.Long |
getTimepointOffset(java.lang.Integer t)
Retrieves the in memory size of the entire number of optical sections for
all wavelengths or channels at a particular timepoint in this
pixel buffer.
|
java.lang.Long |
getTimepointSize()
Retrieves the in memory size of the entire number of optical sections for
all wavelengths or channels at a particular timepoint in this
pixel buffer.
|
java.lang.Long |
getTotalSize()
Retrieves the in memory size of the entire pixel buffer.
|
protected void |
init(java.lang.String filePath,
boolean write) |
protected void |
initializeReader()
If the pyramid file exists (which the constructor guarantees) then we
assume that even if a lock file is present, that it's no longer valid.
|
protected void |
initializeWriter(java.lang.String output,
java.lang.String compression,
boolean bigTiff,
int tileWidth,
int tileLength)
Initializes the writer.
|
boolean |
isFloat()
Returns whether or not the pixel buffer has floating point pixels.
|
boolean |
isLittleEndian() |
protected boolean |
isLockedByOthers() |
boolean |
isSigned()
Returns whether or not the pixel buffer has signed pixels.
|
boolean |
isWrite()
Whether or not this instance is in writing-mode.
|
void |
setByteOrder(java.nio.ByteOrder byteOrder)
Sets the pixel byte order.
|
void |
setPlane(byte[] buffer,
java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t)
Sets a particular 2D image plane in this pixel buffer.
|
void |
setPlane(java.nio.ByteBuffer buffer,
java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t)
Sets a particular 2D image plane in this pixel buffer.
|
void |
setRegion(java.lang.Integer size,
java.lang.Long offset,
byte[] buffer)
Sets a region in this pixel buffer.
|
void |
setRegion(java.lang.Integer size,
java.lang.Long offset,
java.nio.ByteBuffer buffer)
Sets a region in this pixel buffer.
|
void |
setResolutionLevel(int resolutionLevel)
Sets the active resolution level.
|
void |
setRow(java.nio.ByteBuffer buffer,
java.lang.Integer y,
java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t)
Sets a particular row or scanline in this pixel buffer.
|
void |
setStack(byte[] buffer,
java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t)
Sets the entire number of optical sections for a single
wavelength or channel at a particular timepoint in this pixel buffer.
|
void |
setStack(java.nio.ByteBuffer buffer,
java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t)
Sets the entire number of optical sections for a single
wavelength or channel at a particular timepoint in this pixel buffer.
|
void |
setTile(byte[] buffer,
java.lang.Integer z,
java.lang.Integer c,
java.lang.Integer t,
java.lang.Integer x,
java.lang.Integer y,
java.lang.Integer w,
java.lang.Integer h)
Sets a tile in this pixel buffer.
|
void |
setTimepoint(byte[] buffer,
java.lang.Integer t)
Sets the entire number of optical sections for all
wavelengths or channels at a particular timepoint in this pixel buffer.
|
void |
setTimepoint(java.nio.ByteBuffer buffer,
java.lang.Integer t)
Sets the entire number of optical sections for all
wavelengths or channels at a particular timepoint in this pixel buffer.
|
protected OmeroPixelsPyramidWriter writer
protected OmeroPixelsPyramidReader reader
public static final java.lang.String PYR_LOCK_EXT
public BfPyramidPixelBuffer(ome.model.core.Pixels pixels, java.lang.String filePath, boolean write) throws java.io.IOException, loci.formats.FormatException
java.io.IOException
loci.formats.FormatException
public BfPyramidPixelBuffer(TileSizes sizes, ome.model.core.Pixels pixels, java.lang.String filePath, boolean write) throws java.io.IOException, loci.formats.FormatException
TileSizes
implementation which defines
how large the pyramid tiles will be.sizes
- pixels
- filePath
- write
- java.io.IOException
loci.formats.FormatException
protected BfPyramidPixelBuffer(TileSizes sizes, ome.model.core.Pixels pixels, java.lang.String filePath, boolean write, boolean init) throws java.io.IOException, loci.formats.FormatException
java.io.IOException
loci.formats.FormatException
protected void init(java.lang.String filePath, boolean write) throws java.io.IOException, loci.formats.FormatException
java.io.IOException
loci.formats.FormatException
protected void initializeReader() throws java.io.IOException, loci.formats.FormatException
java.io.IOException
loci.formats.FormatException
protected void initializeWriter(java.lang.String output, java.lang.String compression, boolean bigTiff, int tileWidth, int tileLength) throws loci.formats.FormatException
BfPyramidPixelBuffer
instances
may try to also call this method in which case acquireLock()
will throw a LockTimeout
.output
- The file where to write the compressed data.compression
- The compression to use.bigTiff
- Pass true
to set the bigTiff
flag, false
otherwise.java.lang.Exception
- Thrown if an error occurred.loci.formats.FormatException
protected void acquireLock()
protected void closeRaf()
protected boolean isLockedByOthers()
protected void closeWriter() throws java.io.IOException
java.io.IOException
public boolean isWrite()
public void setTile(byte[] buffer, java.lang.Integer z, java.lang.Integer c, java.lang.Integer t, java.lang.Integer x, java.lang.Integer y, java.lang.Integer w, java.lang.Integer h) throws java.io.IOException, java.nio.BufferOverflowException
PixelBuffer
setTile
in interface PixelBuffer
buffer
- A byte array of the data.z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.x
- Top left corner of the tile, X offset.y
- Top left corner of the tile, Y offset.w
- Width of the tile.h
- Height of the tile.java.io.IOException
- if there is a problem writing to the pixel buffer.java.nio.BufferOverflowException
- if an attempt is made to write off the
end of the file.public java.nio.ByteOrder getByteOrder()
public void setByteOrder(java.nio.ByteOrder byteOrder)
byteOrder
- The pixel byte order to set.public byte[] calculateMessageDigest() throws java.io.IOException
PixelBuffer
calculateMessageDigest
in interface PixelBuffer
java.io.IOException
- if there is a problem reading from the pixel buffer.public void checkBounds(java.lang.Integer x, java.lang.Integer y, java.lang.Integer z, java.lang.Integer c, java.lang.Integer t) throws DimensionsOutOfBoundsException
PixelBuffer
null
may be passed as the argument to any one of the offsets
to ignore it for the purposes of bounds checking.checkBounds
in interface PixelBuffer
x
- offset across the X-axis of the pixel buffer to check.y
- offset across the Y-axis of the pixel buffer to check.z
- offset across the Z-axis of the pixel buffer to check.c
- offset across the C-axis of the pixel buffer to check.t
- offset across the T-axis of the pixel buffer to check.DimensionsOutOfBoundsException
- if y
,
z
, c
or t
is out of bounds.public void close() throws java.io.IOException
PixelBuffer
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in interface PixelBuffer
java.io.IOException
- if an I/O error occurs.public int getByteWidth()
PixelBuffer
getByteWidth
in interface PixelBuffer
public ome.util.PixelData getCol(java.lang.Integer x, java.lang.Integer z, java.lang.Integer c, java.lang.Integer t) throws java.io.IOException, DimensionsOutOfBoundsException
PixelBuffer
getCol
in interface PixelBuffer
x
- offset across the X-axis of the pixel buffer.z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.order
set
correctly but not that the backing buffer will have been byte
swapped.java.io.IOException
- if there is a problem reading from the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.PixelBuffer.getColDirect(Integer, Integer, Integer, Integer, byte[])
public byte[] getColDirect(java.lang.Integer x, java.lang.Integer z, java.lang.Integer c, java.lang.Integer t, byte[] buffer) throws java.io.IOException, DimensionsOutOfBoundsException
PixelBuffer
getColDirect
in interface PixelBuffer
x
- offset across the X-axis of the pixel buffer.z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.buffer
- pre-allocated buffer of the row's size.buffer
containing the data which comprises this
column. It is guaranteed that this buffer will have been byte swapped.java.io.IOException
- if there is a problem reading from the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.PixelBuffer.getCol(Integer, Integer, Integer, Integer)
public java.lang.Integer getColSize()
PixelBuffer
getColSize
in interface PixelBuffer
public ome.util.PixelData getHypercube(java.util.List<java.lang.Integer> offset, java.util.List<java.lang.Integer> size, java.util.List<java.lang.Integer> step) throws java.io.IOException, DimensionsOutOfBoundsException
PixelBuffer
getHypercube
in interface PixelBuffer
offset
- The offset of each dimension of the pixel buffer.size
- The number of pixels to retrieve along each dimension .step
- The step size across each dimension .java.io.IOException
- if there is a problem reading from the pixel buffer.DimensionsOutOfBoundsException
public byte[] getHypercubeDirect(java.util.List<java.lang.Integer> offset, java.util.List<java.lang.Integer> size, java.util.List<java.lang.Integer> step, byte[] buffer) throws java.io.IOException, DimensionsOutOfBoundsException
PixelBuffer
getHypercubeDirect
in interface PixelBuffer
offset
- The offset of each dimension of the pixel buffer.size
- The number of pixels to retrieve along each dimension .step
- The step size across each dimension .buffer
- pre-allocated buffer, count
in size.java.io.IOException
- if there is a problem reading from the pixel buffer.DimensionsOutOfBoundsException
public java.lang.Long getHypercubeSize(java.util.List<java.lang.Integer> offset, java.util.List<java.lang.Integer> size, java.util.List<java.lang.Integer> step) throws DimensionsOutOfBoundsException
PixelBuffer
getHypercubeSize
in interface PixelBuffer
offset
- The offset of each dimension of the pixel buffer.size
- The number of pixels to retrieve along each dimension .step
- The step size across each dimension .DimensionsOutOfBoundsException
public long getId()
PixelBuffer
getId
in interface PixelBuffer
public java.lang.String getPath()
PixelBuffer
getPath
in interface PixelBuffer
public ome.util.PixelData getPlane(java.lang.Integer z, java.lang.Integer c, java.lang.Integer t) throws java.io.IOException, DimensionsOutOfBoundsException
PixelBuffer
getPlane
in interface PixelBuffer
z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.order
set
correctly but not that the backing buffer will have been byte
swapped.java.io.IOException
- if there is a problem reading from the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.public byte[] getPlaneDirect(java.lang.Integer z, java.lang.Integer c, java.lang.Integer t, byte[] buffer) throws java.io.IOException, DimensionsOutOfBoundsException
PixelBuffer
getPlaneDirect
in interface PixelBuffer
z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.buffer
- pre-allocated buffer of the plane's size.buffer
containing the data which comprises this 2D
image plane. It is guaranteed that this buffer will have been byte
swapped.java.io.IOException
- if there is a problem reading from the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.public java.lang.Long getPlaneOffset(java.lang.Integer z, java.lang.Integer c, java.lang.Integer t) throws DimensionsOutOfBoundsException
PixelBuffer
getPlaneOffset
in interface PixelBuffer
z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.public ome.util.PixelData getPlaneRegion(java.lang.Integer x, java.lang.Integer y, java.lang.Integer width, java.lang.Integer height, java.lang.Integer z, java.lang.Integer c, java.lang.Integer t, java.lang.Integer stride) throws java.io.IOException, DimensionsOutOfBoundsException
PixelBuffer
getPlaneRegion
in interface PixelBuffer
x
- offset across the X-axis of the pixel buffer.y
- offset across the Y-axis of the pixel buffer.width
- The number of pixels to retrieve along the X-axis.height
- The number of pixels to retrieve along the Y-axis.z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.stride
- The step size.order
set
correctly but not that the backing buffer will have been byte
swapped.java.io.IOException
- if there is a problem reading from the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.public byte[] getPlaneRegionDirect(java.lang.Integer z, java.lang.Integer c, java.lang.Integer t, java.lang.Integer count, java.lang.Integer offset, byte[] buffer) throws java.io.IOException, DimensionsOutOfBoundsException
PixelBuffer
getPlaneRegionDirect
in interface PixelBuffer
z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.count
- the number of pixels to retrieve.offset
- the offset at which to retrieve count
pixels.buffer
- pre-allocated buffer, count
in size.java.io.IOException
- if there is a problem reading from the pixel buffer.DimensionsOutOfBoundsException
PixelBuffer.getRegionDirect(Integer, Long, byte[])
public java.lang.Long getPlaneSize()
PixelBuffer
getPlaneSize
in interface PixelBuffer
public ome.util.PixelData getRegion(java.lang.Integer size, java.lang.Long offset) throws java.io.IOException
PixelBuffer
getRegion
in interface PixelBuffer
size
- byte width of the region to retrieve.offset
- offset within the pixel buffer.order
set correctly but not that the
backing buffer will have been byte swapped. The buffer is essentially
directly from disk.java.io.IOException
- if there is a problem reading from the pixel buffer.PixelBuffer.getRegionDirect(Integer, Long, byte[])
public byte[] getRegionDirect(java.lang.Integer size, java.lang.Long offset, byte[] buffer) throws java.io.IOException
PixelBuffer
getRegionDirect
in interface PixelBuffer
size
- byte width of the region to retrieve.offset
- offset within the pixel buffer.buffer
- pre-allocated buffer of the row's size.buffer
containing the data which comprises this
region. It is guaranteed that this buffer will have been byte
swapped. The buffer is essentially directly from disk.java.io.IOException
- if there is a problem reading from the pixel buffer.PixelBuffer.getRegion(Integer, Long)
public ome.util.PixelData getRow(java.lang.Integer y, java.lang.Integer z, java.lang.Integer c, java.lang.Integer t) throws java.io.IOException, DimensionsOutOfBoundsException
PixelBuffer
getRow
in interface PixelBuffer
y
- offset across the Y-axis of the pixel buffer.z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.order
set
correctly but not that the backing buffer will have been byte
swapped.java.io.IOException
- if there is a problem reading from the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.PixelBuffer.getRowDirect(Integer, Integer, Integer, Integer, byte[])
public byte[] getRowDirect(java.lang.Integer y, java.lang.Integer z, java.lang.Integer c, java.lang.Integer t, byte[] buffer) throws java.io.IOException, DimensionsOutOfBoundsException
PixelBuffer
getRowDirect
in interface PixelBuffer
y
- offset across the Y-axis of the pixel buffer.z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.buffer
- pre-allocated buffer of the row's size.buffer
containing the data which comprises this row
or scanline. It is guaranteed that this buffer will have been byte
swapped.java.io.IOException
- if there is a problem reading from the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.PixelBuffer.getRow(Integer, Integer, Integer, Integer)
public java.lang.Long getRowOffset(java.lang.Integer y, java.lang.Integer z, java.lang.Integer c, java.lang.Integer t) throws DimensionsOutOfBoundsException
PixelBuffer
getRowOffset
in interface PixelBuffer
y
- offset across the Y-axis of the pixel buffer.z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.public java.lang.Integer getRowSize()
PixelBuffer
getRowSize
in interface PixelBuffer
public int getSizeC()
PixelBuffer
getSizeC
in interface PixelBuffer
public int getSizeT()
PixelBuffer
getSizeT
in interface PixelBuffer
public int getSizeX()
PixelBuffer
getSizeX
in interface PixelBuffer
public int getSizeY()
PixelBuffer
getSizeY
in interface PixelBuffer
public int getSizeZ()
PixelBuffer
getSizeZ
in interface PixelBuffer
public ome.util.PixelData getStack(java.lang.Integer c, java.lang.Integer t) throws java.io.IOException, DimensionsOutOfBoundsException
PixelBuffer
getStack
in interface PixelBuffer
c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.order
set
correctly but not that the backing buffer will have been byte
swapped.java.io.IOException
- if there is a problem reading from the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.public byte[] getStackDirect(java.lang.Integer c, java.lang.Integer t, byte[] buffer) throws java.io.IOException, DimensionsOutOfBoundsException
PixelBuffer
getStackDirect
in interface PixelBuffer
c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.buffer
- pre-allocated buffer of the stack's size.buffer
containing the data which comprises this
stack. It is guaranteed that this buffer will have been byte swapped.java.io.IOException
- if there is a problem reading from the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.public java.lang.Long getStackOffset(java.lang.Integer c, java.lang.Integer t) throws DimensionsOutOfBoundsException
PixelBuffer
getStackOffset
in interface PixelBuffer
c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.public java.lang.Long getStackSize()
PixelBuffer
getStackSize
in interface PixelBuffer
public ome.util.PixelData getTile(java.lang.Integer z, java.lang.Integer c, java.lang.Integer t, java.lang.Integer x, java.lang.Integer y, java.lang.Integer w, java.lang.Integer h) throws java.io.IOException
PixelBuffer
getTile
in interface PixelBuffer
z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.x
- Top left corner of the tile, X offset.y
- Top left corner of the tile, Y offset.w
- Width of the tile.h
- Height of the tile.java.io.IOException
- if there is a problem reading from the pixel buffer.PixelBuffer.getTileDirect(Integer, Integer, Integer, Integer, Integer, Integer, Integer, byte[])
public byte[] getTileDirect(java.lang.Integer z, java.lang.Integer c, java.lang.Integer t, java.lang.Integer x, java.lang.Integer y, java.lang.Integer w, java.lang.Integer h, byte[] buffer) throws java.io.IOException
PixelBuffer
getTileDirect
in interface PixelBuffer
z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.x
- Top left corner of the tile, X offset.y
- Top left corner of the tile, Y offset.w
- Width of the tile.h
- Height of the tile.buffer
- Pre-allocated buffer of the tile's size.buffer
containing the data which comprises this
region. It is guaranteed that this buffer will have been byte
swapped. The buffer is essentially directly from disk.java.io.IOException
- if there is a problem reading from the pixel buffer.PixelBuffer.getTile(Integer, Integer, Integer, Integer, Integer, Integer, Integer)
public ome.util.PixelData getTimepoint(java.lang.Integer t) throws java.io.IOException, DimensionsOutOfBoundsException
PixelBuffer
getTimepoint
in interface PixelBuffer
t
- offset across the T-axis of the pixel buffer.order
set
correctly but not that the backing buffer will have been byte
swapped.java.io.IOException
- if there is a problem reading from the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.public byte[] getTimepointDirect(java.lang.Integer t, byte[] buffer) throws java.io.IOException, DimensionsOutOfBoundsException
PixelBuffer
getTimepointDirect
in interface PixelBuffer
t
- offset across the T-axis of the pixel buffer.buffer
- pre-allocated buffer of the timepoint's size.buffer
containing the data which comprises this
timepoint. It is guaranteed that this buffer will have been byte swapped.java.io.IOException
- if there is a problem reading from the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.public java.lang.Long getTimepointOffset(java.lang.Integer t) throws DimensionsOutOfBoundsException
PixelBuffer
getTimepointOffset
in interface PixelBuffer
t
- offset across the T-axis of the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.public java.lang.Long getTimepointSize()
PixelBuffer
getTimepointSize
in interface PixelBuffer
public java.lang.Long getTotalSize()
PixelBuffer
getTotalSize
in interface PixelBuffer
public boolean isFloat()
PixelBuffer
isFloat
in interface PixelBuffer
true
if the pixel buffer as floating point,
false
otherwisepublic boolean isSigned()
PixelBuffer
isSigned
in interface PixelBuffer
public boolean isLittleEndian()
public void setPlane(java.nio.ByteBuffer buffer, java.lang.Integer z, java.lang.Integer c, java.lang.Integer t) throws java.io.IOException, DimensionsOutOfBoundsException, java.nio.BufferOverflowException
PixelBuffer
setPlane
in interface PixelBuffer
buffer
- a byte array of the data comprising this 2D image plane.z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.java.io.IOException
- if there is a problem writing to the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.java.nio.BufferOverflowException
- if
buffer.length > {@link #getPlaneSize()}
.public void setPlane(byte[] buffer, java.lang.Integer z, java.lang.Integer c, java.lang.Integer t) throws java.io.IOException, DimensionsOutOfBoundsException, java.nio.BufferOverflowException
PixelBuffer
setPlane
in interface PixelBuffer
buffer
- a byte buffer of the data comprising this 2D image plane.z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.java.io.IOException
- if there is a problem writing to the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.java.nio.BufferOverflowException
- if
buffer.length > {@link #getPlaneSize()}
.public void setRegion(java.lang.Integer size, java.lang.Long offset, byte[] buffer) throws java.io.IOException, java.nio.BufferOverflowException
PixelBuffer
setRegion
in interface PixelBuffer
size
- byte width of the region to set.offset
- offset within the pixel buffer.buffer
- a byte array of the data.java.io.IOException
- if there is a problem writing to the pixel buffer.java.nio.BufferOverflowException
- if buffer.length > size
.public void setRegion(java.lang.Integer size, java.lang.Long offset, java.nio.ByteBuffer buffer) throws java.io.IOException, java.nio.BufferOverflowException
PixelBuffer
setRegion
in interface PixelBuffer
size
- byte width of the region to set.offset
- offset within the pixel buffer.buffer
- a byte buffer of the data.java.io.IOException
- if there is a problem writing to the pixel buffer.java.nio.BufferOverflowException
- if buffer.length > size
.public void setRow(java.nio.ByteBuffer buffer, java.lang.Integer y, java.lang.Integer z, java.lang.Integer c, java.lang.Integer t) throws java.io.IOException, DimensionsOutOfBoundsException, java.nio.BufferOverflowException
PixelBuffer
setRow
in interface PixelBuffer
buffer
- a byte buffer of the data comprising this row or scanline.y
- offset across the Y-axis of the pixel buffer.z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.java.io.IOException
- if there is a problem reading from the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.java.nio.BufferOverflowException
- if
buffer.length > {@link #getRowSize()}
.public void setStack(java.nio.ByteBuffer buffer, java.lang.Integer z, java.lang.Integer c, java.lang.Integer t) throws java.io.IOException, DimensionsOutOfBoundsException, java.nio.BufferOverflowException
PixelBuffer
setStack
in interface PixelBuffer
buffer
- a byte buffer of the data comprising this stack.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.java.io.IOException
- if there is a problem writing to the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.java.nio.BufferOverflowException
- if
buffer.length > {@link #getStackSize()}
.public void setStack(byte[] buffer, java.lang.Integer z, java.lang.Integer c, java.lang.Integer t) throws java.io.IOException, DimensionsOutOfBoundsException, java.nio.BufferOverflowException
PixelBuffer
setStack
in interface PixelBuffer
buffer
- a byte array of the data comprising this stack.z
- offset across the Z-axis of the pixel buffer.c
- offset across the C-axis of the pixel buffer.t
- offset across the T-axis of the pixel buffer.java.io.IOException
- if there is a problem writing to the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.java.nio.BufferOverflowException
- if
buffer.length > {@link #getStackSize()}
.public void setTimepoint(java.nio.ByteBuffer buffer, java.lang.Integer t) throws java.io.IOException, DimensionsOutOfBoundsException, java.nio.BufferOverflowException
PixelBuffer
setTimepoint
in interface PixelBuffer
buffer
- a byte buffer of the data comprising this timepoint.t
- offset across the T-axis of the pixel buffer.java.io.IOException
- if there is a problem writing to the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.java.nio.BufferOverflowException
- if
buffer.length > {@link #getTimepointSize()}
.public void setTimepoint(byte[] buffer, java.lang.Integer t) throws java.io.IOException, DimensionsOutOfBoundsException, java.nio.BufferOverflowException
PixelBuffer
setTimepoint
in interface PixelBuffer
buffer
- a byte array of the data comprising this timepoint.t
- offset across the T-axis of the pixel buffer.java.io.IOException
- if there is a problem writing to the pixel buffer.DimensionsOutOfBoundsException
- if offsets are out of bounds
after checking with PixelBuffer.checkBounds(Integer, Integer, Integer, Integer, Integer)
.java.nio.BufferOverflowException
- if
buffer.length > {@link #getTimepointSize()}
.public int getResolutionLevel()
PixelBuffer
getResolutionLevel
in interface PixelBuffer
PixelBuffer.getResolutionLevels()
. Resolution level 0 is the smallest
resolution and resolution level getResolutionLevels() - 1
is the largest resolution. This is the inverse of how Bio-Formats indexes
resolutions.public int getResolutionLevels()
PixelBuffer
getResolutionLevels
in interface PixelBuffer
public java.util.List<java.util.List<java.lang.Integer>> getResolutionDescriptions()
PixelBuffer
getResolutionDescriptions
in interface PixelBuffer
public java.awt.Dimension getTileSize()
PixelBuffer
getTileSize
in interface PixelBuffer
null
if the pixel
buffer is not tiled.public void setResolutionLevel(int resolutionLevel)
PixelBuffer
setResolutionLevel
in interface PixelBuffer
resolutionLevel
- The resolution level to be used by
the pixel buffer. The level should be non-negative and less
than PixelBuffer.getResolutionLevels()
. Resolution level 0 is the smallest
resolution and resolution level getResolutionLevels() - 1
is the largest resolution. This is the inverse of how Bio-Formats indexes
resolutions.