/** * Implemented as specified by {@link PixelBuffer} I/F. * @see PixelBuffer#setRegion(Integer, Long, byte[]) */ public void setRegion(Integer size, Long offset, byte[] buffer) throws IOException { throwIfReadOnly(); ByteBuffer buf = MappedByteBuffer.wrap(buffer); buf.limit(size); setRegion(size, offset, buf); }
/** * Implemented as specified by {@link PixelBuffer} I/F. * @see PixelBuffer#setRow(ByteBuffer, Integer, Integer, Integer, Integer) */ public void setRow(ByteBuffer buffer, Integer y, Integer z, Integer c, Integer t) throws IOException, DimensionsOutOfBoundsException { throwIfReadOnly(); Long offset = getRowOffset(y, z, c, t); Integer size = getRowSize(); setRegion(size, offset, buffer); }
public void setTile(byte[] buffer, Integer z, Integer c, Integer t, Integer x, Integer y, Integer w, Integer h) throws IOException, BufferOverflowException { if (x != 0) { throw new UnsupportedOperationException( "ROMIO pixel buffer only supports 0 offseted tile writes."); } if (w != getSizeX()) { throw new UnsupportedOperationException( "ROMIO pixel buffer only supports full row writes."); } try { long offset = getPlaneOffset(z, c, t); offset += getByteWidth() * getSizeX() * y; setRegion(buffer.length, offset, buffer); } catch (DimensionsOutOfBoundsException e) { throw new RuntimeException(e); } }
/** * Implemented as specified by {@link PixelBuffer} I/F. * @see PixelBuffer#setPlane(ByteBuffer, Integer, Integer, Integer) */ public void setPlane(ByteBuffer buffer, Integer z, Integer c, Integer t) throws IOException, DimensionsOutOfBoundsException { throwIfReadOnly(); Long offset = getPlaneOffset(z, c, t); Integer size = safeLongToInteger(getPlaneSize()); if (buffer.limit() != size) { // Handle the size mismatch. if (buffer.limit() < size) throw new BufferUnderflowException(); throw new BufferOverflowException(); } setRegion(size, offset, buffer); }
/** * Implemented as specified by {@link PixelBuffer} I/F. * @see PixelBuffer#setStack(ByteBuffer, Integer, Integer, Integer) */ public void setStack(ByteBuffer buffer, Integer z, Integer c, Integer t) throws IOException, DimensionsOutOfBoundsException { throwIfReadOnly(); Long offset = getStackOffset(c, t); Integer size = safeLongToInteger(getStackSize()); if (buffer.limit() != size) { // Handle the size mismatch. if (buffer.limit() < size) throw new BufferUnderflowException(); throw new BufferOverflowException(); } setRegion(size, offset, buffer); }
/** * Implemented as specified by {@link PixelBuffer} I/F. * @see PixelBuffer#setTimepoint(ByteBuffer, Integer) */ public void setTimepoint(ByteBuffer buffer, Integer t) throws IOException, DimensionsOutOfBoundsException { throwIfReadOnly(); Long offset = getTimepointOffset(t); Integer size = safeLongToInteger(getTimepointSize()); if (buffer.limit() != size) { // Handle the size mismatch. if (buffer.limit() < size) throw new BufferUnderflowException(); throw new BufferOverflowException(); } setRegion(size, offset, buffer); }