public byte[] getStackDirect(Integer c, Integer t, byte[] buffer) throws IOException, DimensionsOutOfBoundsException { try { final BfPixelsWrapper reader = reader(); reader.getStack(c,t,buffer); reader.swapIfRequired(buffer); } catch (FormatException e) { throw new RuntimeException(e); } return buffer; }
public byte[] getTimepoint(Integer t, byte[] buffer) throws IOException, DimensionsOutOfBoundsException { checkBounds(null, null, null, null, t); if (buffer.length != getTimepointSize()) throw new RuntimeException("Buffer size incorrect."); int size = RomioPixelBuffer.safeLongToInteger(getStackSize()); byte[] stack = new byte[size]; int sizeC = getSizeC(); for(int c = 0; c < sizeC; c++) { getStack(c, t, stack); System.arraycopy(stack, 0, buffer, c*size, size); } return buffer; }
public void getStack_async(AMD_RawPixelsStore_getStack __cb, int c, int t, Current __current) throws ServerError { try { int size = RomioPixelBuffer.safeLongToInteger( reader.getStackSize()); byte[] stack = new byte[size]; reader.getStack(c,t,stack); reader.swapIfRequired(stack); __cb.ice_response(stack); } catch (Exception e) { __cb.ice_exception(e); } }
public PixelData getStack(Integer c, Integer t) throws IOException, DimensionsOutOfBoundsException { final BfPixelsWrapper reader = reader(); PixelData d; int size = RomioPixelBuffer.safeLongToInteger(reader.getStackSize()); byte[] buffer = new byte[size]; reader.getStack(c,t,buffer); d = new PixelData(reader.getPixelsType(), ByteBuffer.wrap(buffer)); d.setOrder(isLittleEndian()? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN); return d; }