@Override public void close(boolean fileOnly) throws IOException { super.close(fileOnly); reader.close(fileOnly); if (!fileOnly) { imageFile = null; paramFile = null; } }
@Override public void close(boolean fileOnly) throws IOException { super.close(fileOnly); reader.close(fileOnly); if (!fileOnly) { imageFile = null; paramFile = null; } }
@Override public void close(boolean fileOnly) throws IOException { super.close(fileOnly); if (tiff != null) tiff.close(fileOnly); if (!fileOnly) { xmlFile = cfgFile = envFile = null; tiff = null; meta = null; sequences = null; channels = null; framesAreTime = null; singleTiffMode = false; } }
@Override public void close(boolean fileOnly) throws IOException { super.close(fileOnly); if (tiff != null) tiff.close(fileOnly); if (!fileOnly) { xmlFile = cfgFile = envFile = null; tiff = null; meta = null; sequences = null; channels = null; framesAreTime = null; singleTiffMode = false; } }
@Override public void close(boolean fileOnly) throws IOException { super.close(fileOnly); if (!fileOnly) { tiffs = null; if (tiffReaders != null) { for (TiffReader r : tiffReaders) { if (r != null) r.close(); } } tiffReaders = null; tiffParser = null; datestamp = 0; xmlFile = null; lastPlane = 0; } }
@Override public void close(boolean fileOnly) throws IOException { super.close(fileOnly); if (!fileOnly) { tiffs = null; if (tiffReaders != null) { for (TiffReader r : tiffReaders) { if (r != null) r.close(); } } tiffReaders = null; tiffParser = null; datestamp = 0; xmlFile = null; lastPlane = 0; } }
@Test(dataProvider = "nonTiling") public void testSaveBytes(int tileSize, boolean littleEndian, boolean interleaved, int rgbChannels, int seriesCount, int sizeT, String compression, int pixelType, boolean bigTiff) throws Exception { if (percentageOfSaveBytesTests == 0) return; File tmp = File.createTempFile("OMETiffWriterTest", ".ome.tiff"); tmp.deleteOnExit(); Plane originalPlane = WriterUtilities.writeImage(tmp, tileSize, littleEndian, interleaved, rgbChannels, seriesCount, sizeT, compression, pixelType, bigTiff); TiffReader reader = new TiffReader(); reader.setId(tmp.getAbsolutePath()); WriterUtilities.checkImage(reader, originalPlane, interleaved, rgbChannels, seriesCount, sizeT, compression); tmp.delete(); reader.close(); }
@Test(dataProvider = "nonTiling") public void testSaveBytes(int tileSize, boolean littleEndian, boolean interleaved, int rgbChannels, int seriesCount, int sizeT, String compression, int pixelType, boolean bigTiff) throws Exception { if (percentageOfSaveBytesTests == 0) return; File tmp = File.createTempFile("tiffWriterTest", ".tiff"); tmp.deleteOnExit(); Plane originalPlane = WriterUtilities.writeImage(tmp, tileSize, littleEndian, interleaved, rgbChannels, seriesCount, sizeT, compression, pixelType, bigTiff); TiffReader reader = new TiffReader(); reader.setId(tmp.getAbsolutePath()); WriterUtilities.checkImage(reader, originalPlane, interleaved, rgbChannels, seriesCount, sizeT, compression); tmp.delete(); reader.close(); }
/** * @see loci.formats.IFormatReader#openBytes(int, byte[], int, int, int, int) */ @Override public byte[] openBytes(int no, byte[] buf, int x, int y, int w, int h) throws FormatException, IOException { FormatTools.checkPlaneParameters(this, no, buf.length, x, y, w, h); int n = no; for (int i=0; i<getSeries(); i++) { n += core.get(i).imageCount; } if (tiffReaders.length == 1) { return tiffReaders[0].openBytes(n, buf, x, y, w, h); } int plane = 0; if (tiffReaders[0].getImageCount() > 1) { n /= tiffReaders.length; plane = n % tiffReaders.length; } if (lastPlane != 0) { tiffReaders[lastPlane].close(); } lastPlane = n; tiffReaders[n].setId(tiffs.get(n)); return tiffReaders[n].openBytes(plane, buf, x, y, w, h); }
/** * @see loci.formats.IFormatReader#openBytes(int, byte[], int, int, int, int) */ @Override public byte[] openBytes(int no, byte[] buf, int x, int y, int w, int h) throws FormatException, IOException { FormatTools.checkPlaneParameters(this, no, buf.length, x, y, w, h); int n = no; for (int i=0; i<getSeries(); i++) { n += core.get(i).imageCount; } if (tiffReaders.length == 1) { return tiffReaders[0].openBytes(n, buf, x, y, w, h); } int plane = 0; if (tiffReaders[0].getImageCount() > 1) { n /= tiffReaders.length; plane = n % tiffReaders.length; } if (lastPlane != 0) { tiffReaders[lastPlane].close(); } lastPlane = n; tiffReaders[n].setId(tiffs.get(n)); return tiffReaders[n].openBytes(plane, buf, x, y, w, h); }
/** * Performs re-compression post processing on the pixel pyramid. * @throws IOException * @throws FormatException */ protected void postProcess() throws IOException, FormatException { TiffReader reader = new TiffReader(); try { reader.setId(currentId); // First we want to re-compress resolution level 0 (the source series, // with resolution levels exposed, are in reverse order). recompressSeries(reader, 1); // Second we want to re-compress resolution level 1 (the source series, // with resolution levels exposed, are in reverse order). recompressSeries(reader, 2); } finally { reader.close(); } }
private RandomAccessInputStream getCZTag(IFD ifd) throws FormatException, IOException { // get TIF_CZ_LSMINFO structure short[] s = ifd.getIFDShortArray(ZEISS_ID); if (s == null) { LOGGER.warn("Invalid Zeiss LSM file. Tag {} not found.", ZEISS_ID); TiffReader reader = new TiffReader(); reader.setId(getLSMFileFromSeries(getSeries())); core.set(getSeries(), reader.getCoreMetadataList().get(0)); reader.close(); return null; } byte[] cz = new byte[s.length]; for (int i=0; i<s.length; i++) { cz[i] = (byte) s[i]; } RandomAccessInputStream ras = new RandomAccessInputStream(cz); ras.order(isLittleEndian()); return ras; }
private RandomAccessInputStream getCZTag(IFD ifd) throws FormatException, IOException { // get TIF_CZ_LSMINFO structure short[] s = ifd.getIFDShortArray(ZEISS_ID); if (s == null) { LOGGER.warn("Invalid Zeiss LSM file. Tag {} not found.", ZEISS_ID); TiffReader reader = new TiffReader(); reader.setId(getLSMFileFromSeries(getSeries())); core.set(getSeries(), reader.getCoreMetadataList().get(0)); reader.close(); return null; } byte[] cz = new byte[s.length]; for (int i=0; i<s.length; i++) { cz[i] = (byte) s[i]; } RandomAccessInputStream ras = new RandomAccessInputStream(cz); ras.order(isLittleEndian()); return ras; }
@Test(dataProvider = "tiling") public void testSaveBytesTiling(int tileSize, boolean littleEndian, boolean interleaved, int rgbChannels, int seriesCount, int sizeT, String compression, int pixelType, boolean bigTiff) throws Exception { if (percentageOfTilingTests == 0) return; File tmp = File.createTempFile("OMETiffWriterTest_Tiling", ".ome.tiff"); tmp.deleteOnExit(); Plane originalPlane = WriterUtilities.writeImage(tmp, tileSize, littleEndian, interleaved, rgbChannels, seriesCount, sizeT, compression, pixelType, bigTiff); TiffReader reader = new TiffReader(); reader.setId(tmp.getAbsolutePath()); int expectedTileSize = tileSize; if (tileSize < TILE_GRANULARITY) { expectedTileSize = TILE_GRANULARITY; } else { expectedTileSize = Math.round((float)tileSize/TILE_GRANULARITY) * TILE_GRANULARITY; } IFD tileIFd = reader.getIFDs().get(0); assertEquals(tileIFd.getIFDIntValue(IFD.TILE_LENGTH), expectedTileSize); assertEquals(tileIFd.getIFDIntValue(IFD.TILE_WIDTH), expectedTileSize); WriterUtilities.checkImage(reader, originalPlane, interleaved, rgbChannels, seriesCount, sizeT, compression); tmp.delete(); reader.close(); }
@Test(dataProvider = "tiling") public void testSaveBytesTiling(int tileSize, boolean littleEndian, boolean interleaved, int rgbChannels, int seriesCount, int sizeT, String compression, int pixelType, boolean bigTiff) throws Exception { if (percentageOfTilingTests == 0) return; File tmp = File.createTempFile("tiffWriterTest_Tiling", ".tiff"); tmp.deleteOnExit(); Plane originalPlane = WriterUtilities.writeImage(tmp, tileSize, littleEndian, interleaved, rgbChannels, seriesCount, sizeT, compression, pixelType, bigTiff); TiffReader reader = new TiffReader(); reader.setId(tmp.getAbsolutePath()); int expectedTileSize = tileSize; if (tileSize < TILE_GRANULARITY) { expectedTileSize = TILE_GRANULARITY; } else { expectedTileSize = Math.round((float)tileSize/TILE_GRANULARITY) * TILE_GRANULARITY; } IFD tileIFd = reader.getIFDs().get(0); assertEquals(tileIFd.getIFDIntValue(IFD.TILE_LENGTH), expectedTileSize); assertEquals(tileIFd.getIFDIntValue(IFD.TILE_WIDTH), expectedTileSize); WriterUtilities.checkImage(reader, originalPlane, interleaved, rgbChannels, seriesCount, sizeT, compression); tmp.delete(); reader.close(); }
reader.close(); reader.setMetadataStore(getMetadataStore()); reader.setId(id);
reader.close(); reader.setMetadataStore(getMetadataStore()); reader.setId(id);
@Test(dataProvider = "nonTiling") public void testSaveBytesInMemory(int tileSize, boolean littleEndian, boolean interleaved, int rgbChannels, int seriesCount, int sizeT, String compression, int pixelType, boolean bigTiff) throws Exception { if (percentageOfSaveBytesTests == 0) return; ByteArrayHandle handle = new ByteArrayHandle(); String id = Math.random() + "-" + System.currentTimeMillis() + ".tif"; Location.mapFile(id, handle); Plane originalPlane = WriterUtilities.writeImage(id, tileSize, littleEndian, interleaved, rgbChannels, seriesCount, sizeT, compression, pixelType, bigTiff); ByteBuffer bytes = handle.getByteBuffer(); byte[] file = new byte[(int) handle.length()]; bytes.position(0); bytes.get(file); handle = new ByteArrayHandle(file); Location.mapFile(id, handle); TiffReader reader = new TiffReader(); reader.setId(id); WriterUtilities.checkImage(reader, originalPlane, interleaved, rgbChannels, seriesCount, sizeT, compression); reader.close(); Location.mapFile(id, null); }
outputReader.close();
outputReader.close();