public synchronized boolean isLittleEndian() { return delegate().isLittleEndian(); }
/** * 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 synchronized void initializeReader() throws IOException, FormatException { File lockFile = lockFile(); if (readerFile.exists() && lockFile.exists()) { // note: we double checked readerFile exists just in case. lockFile.delete(); } reader = new OmeroPixelsPyramidReader(); delegate = new BfPixelBuffer(readerFile.getAbsolutePath(), reader); byteOrder = delegate.isLittleEndian()? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN; }
/** * Returns whether or not the pixels set is little endian. * @param pixels The pixels set to handle * @return See above. */ private boolean isLittleEndian(Pixels pixels) { try { //TODO: review after work on OmeroPyramidWriter PixelBuffer pf = pixelsService._getPixelBuffer(pixels, false); if (pf instanceof BfPixelsWrapper) { return ((BfPixelsWrapper) pf).isLittleEndian(); } if (pf instanceof BfPyramidPixelBuffer) { return ((BfPyramidPixelBuffer) pf).isLittleEndian(); } if (pf instanceof BfPixelBuffer) { return ((BfPixelBuffer) pf).isLittleEndian(); } } catch (Exception e) { log.debug("Error instantiating pixel buffer", e); } return false; }
public PixelData getRow(Integer y, Integer z, Integer c, Integer t) throws IOException, DimensionsOutOfBoundsException { final BfPixelsWrapper reader = reader(); PixelData d; byte[] buffer = new byte[reader.getRowSize()]; reader.getRow(y,z,c,t,buffer); d = new PixelData(reader.getPixelsType(), ByteBuffer.wrap(buffer)); d.setOrder(isLittleEndian()? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN); return d; }
public PixelData getCol(Integer x, Integer z, Integer c, Integer t) throws IOException, DimensionsOutOfBoundsException { final BfPixelsWrapper reader = reader(); PixelData d; byte[] buffer = new byte[reader.getColSize()]; reader.getCol(x,z,c,t,buffer); d = new PixelData(reader.getPixelsType(), ByteBuffer.wrap(buffer)); d.setOrder(isLittleEndian()? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN); return d; }
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; }
public PixelData getTimepoint(Integer t) throws IOException, DimensionsOutOfBoundsException { final BfPixelsWrapper reader = reader(); PixelData d; int size = RomioPixelBuffer.safeLongToInteger( reader.getTimepointSize()); byte[] buffer = new byte[size]; reader.getTimepoint(t,buffer); d = new PixelData(reader.getPixelsType(), ByteBuffer.wrap(buffer)); d.setOrder(isLittleEndian()? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN); return d; }
public PixelData getPlane(Integer z, Integer c, Integer t) throws IOException, DimensionsOutOfBoundsException { final BfPixelsWrapper reader = reader(); PixelData d; int size = RomioPixelBuffer.safeLongToInteger(reader.getPlaneSize()); byte[] buffer = new byte[size]; reader.getPlane(z,c,t,buffer); d = new PixelData(reader.getPixelsType(), ByteBuffer.wrap(buffer)); d.setOrder(isLittleEndian()? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN); return d; }
public PixelData getHypercube(List<Integer> offset, List<Integer> size, List<Integer> step) throws IOException, DimensionsOutOfBoundsException { final BfPixelsWrapper reader = reader(); PixelData d; int hypercubeSize = RomioPixelBuffer.safeLongToInteger( getHypercubeSize(offset,size,step)); byte[] buffer = new byte[hypercubeSize]; reader.getHypercube(offset,size,step,buffer); d = new PixelData(reader.getPixelsType(), ByteBuffer.wrap(buffer)); d.setOrder(isLittleEndian()? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN); return d; }
public PixelData getTile(Integer z, Integer c, Integer t, Integer x, Integer y, Integer w, Integer h) throws IOException { final BfPixelsWrapper reader = reader(); byte[] buffer = new byte[ w * h * FormatTools.getBytesPerPixel(reader.getPixelsType())]; try { // Call getTile on reader() rather than on this // so as not to swap the bytes twice. reader().getTile(z, c, t, x, y, w, h, buffer); PixelData d = new PixelData( reader.getPixelsType(), ByteBuffer.wrap(buffer)); d.setOrder(isLittleEndian()? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN); return d; } catch (FormatException e) { throw new RuntimeException(e); } }
originalFilePath, series, minMaxStore); pixelsPyramid.setByteOrder( bfPixelBuffer.isLittleEndian()? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN); source = bfPixelBuffer;