public BufferedImageSource(IFormatReader reader) throws CacheException { if (reader instanceof BufferedImageReader) { this.reader = (BufferedImageReader) reader; } else { this.reader = new BufferedImageReader(reader); } }
@Test(groups = {"all", "fast", "automated"}) public void testImageCount() { String testName = "testImageCount"; if (!initFile()) result(testName, false, "initFile"); boolean success = true; String msg = null; try { for (int i=0; i<reader.getSeriesCount() && success; i++) { reader.setSeries(i); int imageCount = reader.getImageCount(); int z = reader.getSizeZ(); int c = reader.getEffectiveSizeC(); int t = reader.getSizeT(); success = imageCount == z * c * t; msg = "series #" + i + ": imageCount=" + imageCount + ", z=" + z + ", c=" + c + ", t=" + t; } } catch (Throwable t) { LOGGER.info("", t); success = false; } result(testName, success, msg); }
/** Obtains a thumbnail for the specified image from the current file. */ public BufferedImage openThumbImage(int no) throws FormatException, IOException { Class dataType = getNativeDataType(); if (BufferedImage.class.isAssignableFrom(dataType)) { BufferedImage img = AWTImageTools.makeUnsigned(openImage(no)); return AWTImageTools.scale(img, getThumbSizeX(), getThumbSizeY(), false); } byte[] thumbBytes = openThumbBytes(no); return AWTImageTools.openImage(thumbBytes, this, getThumbSizeX(), getThumbSizeY()); }
@Override public void run() { try { myReader.close(); } catch (IOException exc) { LOGGER.info("", exc); } myReader = new BufferedImageReader(r); open(id); } }.start();
if (id == lastId) continue; if (id != null && lastId != null) { String[] files = reader.getUsedFiles(); boolean found = false; for (int i=0; i<files.length; i++) { try { reader.setId(id); } catch (FormatException exc) { LOGGER.debug("Failed to initialize {}", id, exc); String format = reader.getFormat(); formatText = format; formatTip = format; resText = reader.getSizeX() + " x " + reader.getSizeY(); zctText = reader.getSizeZ() + "Z x " + reader.getSizeT() + "T x " + reader.getSizeC() + "C"; typeText = reader.getRGBChannelCount() + " x " + FormatTools.getPixelTypeString(reader.getPixelType()); SwingUtilities.invokeLater(refresher); int z = reader.getSizeZ() / 2; int t = reader.getSizeT() / 2; int ndx = reader.getIndex(z, 0, t); BufferedImage thumb = null; try { thumb = reader.openThumbImage(ndx); } catch (FormatException exc) { LOGGER.debug("Failed to read thumbnail #{} from {}",
String msg = null; try { int seriesCount = reader.getSeriesCount(); if (DataTools.indexOf(reader.getDomains(), FormatTools.HCS_DOMAIN) >= 0) { seriesCount = 1; reader.setSeries(i); int x = reader.getThumbSizeX(); int y = reader.getThumbSizeY(); int c = reader.getRGBChannelCount(); int type = reader.getPixelType(); int bytes = FormatTools.getBytesPerPixel(type); int fx = reader.getSizeX(); int fy = reader.getSizeY(); b = reader.openThumbImage(0);
String msg = null; try { for (int i=0; i<reader.getSeriesCount() && success; i++) { reader.setSeries(i); int x = reader.getThumbSizeX(); int y = reader.getThumbSizeY(); int c = reader.getRGBChannelCount(); int type = reader.getPixelType(); int bytes = FormatTools.getBytesPerPixel(type); int expected = x * y * c * bytes; int fx = reader.getSizeX(); int fy = reader.getSizeY(); b = reader.openThumbBytes(0);
String msg = null; try { MetadataRetrieve retrieve = (MetadataRetrieve) reader.getMetadataStore(); boolean success = omexmlService.isOMEXMLMetadata(retrieve); if (!success) msg = TestTools.shortClassName(retrieve); for (int i=0; i<reader.getSeriesCount() && msg == null; i++) { reader.setSeries(i); String type = FormatTools.getPixelTypeString(reader.getPixelType()); if (reader.getSizeX() != retrieve.getPixelsSizeX(i).getValue().intValue()) { msg = String.format("SizeX (expected %d, actually %d)", reader.getSizeX(), retrieve.getPixelsSizeX(i).getValue().intValue()); if (reader.getSizeY() != retrieve.getPixelsSizeY(i).getValue().intValue()) { msg = String.format("SizeY (expected %d, actually %d)", reader.getSizeY(), retrieve.getPixelsSizeY(i).getValue().intValue()); if (reader.getSizeZ() != retrieve.getPixelsSizeZ(i).getValue().intValue()) { msg = String.format("SizeZ (expected %d, actually %d)", reader.getSizeZ(), retrieve.getPixelsSizeZ(i).getValue().intValue());
String msg = null; try { reader.close(); reader.setMetadataStore(service.createOMEXMLMetadata()); reader.setId(id); int type = reader.getPixelType(); if (!writer.isSupportedType(type)) { success = true; IMetadata meta = (IMetadata) reader.getMetadataStore(); writer.close(); writer.setMetadataRetrieve((MetadataRetrieve) meta); int seriesCount = writer.canDoStacks() ? reader.getSeriesCount() : 1; reader.setSeries(series); writer.setSeries(series); int imageCount = writer.canDoStacks() ? reader.getImageCount() : 1; for (int image=0; image<imageCount; image++) { writer.saveBytes(image, reader.openBytes(image)); convertedReader.setId(convertedFile); convertedReader.getSeriesCount() == config.getSeriesCount(); boolean imageMatch = convertedReader.getImageCount() == expectedCount;
try { BufferedImage b = null; for (int i=0; i<reader.getSeriesCount() && success; i++) { reader.setSeries(i); Assert.assertEquals(reader.getSeries(), i); int x = reader.getSizeX(); int y = reader.getSizeY(); int c = reader.getRGBChannelCount(); int type = reader.getPixelType(); int bytes = FormatTools.getBytesPerPixel(type); if (DataTools.indexOf(reader.getDomains(), FormatTools.HISTOLOGY_DOMAIN) >= 0) int num = reader.getImageCount(); if (num > 3) num = 3; // test first three image planes only, for speed for (int j=0; j<num && success; j++) { b = reader.openImage(j);
try { meta = omexmlService.createOMEXMLMetadata(); myReader.setMetadataStore(meta); LOGGER.info("OME metadata unavailable"); myReader.setId(id); int num = myReader.getImageCount(); ProgressMonitor progress = new ProgressMonitor(this, "Reading " + id, null, 0, num + 1); sizeZ = myReader.getSizeZ(); sizeT = myReader.getSizeT(); sizeC = myReader.getEffectiveSizeC(); for (int i=0; i<num; i++) { if (progress.isCanceled()) break; img[i] = myReader.openImage(i); if (i == 0) setImages(myReader, img); progress.setProgress(i + 2); myReader.close(true);
List<CoreMetadata> core = thumbReader.getCoreMetadataList(); int index = series; for (int i=0; i<=index; i++) { thumbReader.setSeries(index); int z = thumbReader.getSizeZ() / 2; int t = thumbReader.getSizeT() / 2; int ndx = thumbReader.getIndex(z, 0, t); Exception exc = null; try { BufferedImage thumb = thumbReader.openThumbImage(ndx); if (!FormatTools.isFloatingPoint(thumbReader.getPixelType())) { thumb = AWTImageTools.autoscale(thumb);
try { byte[] b = null; for (int i=0; i<reader.getSeriesCount() && success; i++) { reader.setSeries(i); int x = reader.getSizeX(); int y = reader.getSizeY(); int c = reader.getRGBChannelCount(); int bytes = FormatTools.getBytesPerPixel(reader.getPixelType()); int num = reader.getImageCount(); if (num > 3) num = 3; // test first three planes only, for speed for (int j=0; j<num && success; j++) { b = reader.openBytes(j); success = b.length == expected; if (!success) {
try { for (int i=0; i<reader.getSeriesCount() && success; i++) { reader.setSeries(i); config.setSeries(i); planeSize = DataTools.safeMultiply32(reader.getSizeX(), reader.getSizeY(), reader.getEffectiveSizeC(), reader.getRGBChannelCount(), FormatTools.getBytesPerPixel(reader.getPixelType())); String md5 = TestTools.md5(reader.openBytes(0)); String expected1 = config.getMD5(); String expected2 = config.getAlternateMD5();
/** Does the work of loading the thumbnails. */ @Override public void run() { BF.status(false, "Gathering series information"); int seriesCount = ir.getSeriesCount(); // find image plane for each series and sort by size SeriesInfo[] info = new SeriesInfo[seriesCount]; for (int i=0; i<seriesCount; i++) { if (stop) return; ir.setSeries(i); info[i] = new SeriesInfo(i, ir.getSizeX() * ir.getSizeY()); } if (stop) return; Arrays.sort(info); // open each thumbnail, fastest/smallest first for (int i=0; i<seriesCount; i++) { if (stop) return; final int ii = info[i].index; loadThumb(ir, ii, p[ii], false); if (dialog != null) dialog.validate(); } }
thumbReader = new BufferedImageReader(process.getReader()); thumbReader.setSeries(i); int sx = thumbReader.getThumbSizeX() + 10; // a little extra padding int sy = thumbReader.getThumbSizeY(); p[i] = new Panel(); p[i].add(Box.createRigidArea(new Dimension(sx, sy)));
@Test(groups = {"all", "fast", "automated"}) public void testSizeT() { if (config == null) throw new SkipException("No config tree"); String testName = "SizeT"; if (!initFile()) result(testName, false, "initFile"); for (int i=0; i<reader.getSeriesCount(); i++) { reader.setSeries(i); config.setSeries(i); if (reader.getSizeT() != config.getSizeT()) { result(testName, false, "Series " + i + " (expected " + config.getSizeT() + ", actual " + reader.getSizeT() + ")"); } } result(testName, true); }
@Test(groups = {"all", "fast", "automated"}) public void testThumbSizeY() { if (config == null) throw new SkipException("No config tree"); String testName = "ThumbSizeY"; if (!initFile()) result(testName, false, "initFile"); for (int i=0; i<reader.getSeriesCount(); i++) { reader.setSeries(i); config.setSeries(i); if (reader.getThumbSizeY() != config.getThumbSizeY()) { result(testName, false, "Series " + i + " (expected " + config.getThumbSizeY() + ", actual " + reader.getThumbSizeY() + ")"); } } result(testName, true); }
@Test(groups = {"all", "fast", "automated"}) public void testSizeX() { if (config == null) throw new SkipException("No config tree"); String testName = "SizeX"; if (!initFile()) result(testName, false, "initFile"); for (int i=0; i<reader.getSeriesCount(); i++) { reader.setSeries(i); config.setSeries(i); if (reader.getSizeX() != config.getSizeX()) { result(testName, false, "Series " + i + " (expected " + config.getSizeX() + ", actual " + reader.getSizeX() + ")"); } } result(testName, true); }