@Override public boolean requiresTileRegion(final String serverPath, final ImageRegion region) { return server != null && server.getPath().equals(serverPath); }
@Override public boolean requiresTileRegion(final String serverPath, final ImageRegion region) { return server != null && server.getPath().equals(serverPath); }
@Override public boolean requiresTileRegion(final String serverPath, final ImageRegion region) { return server != null && server.getPath().equals(serverPath); }
@Override public boolean requiresTileRegion(final String serverPath, final ImageRegion region) { return server != null && server.getPath().equals(serverPath); }
synchronized void clearCacheForServer(ImageServer<?> server) { Iterator<Entry<RegionRequest, T>> iter = map.entrySet().iterator(); while (iter.hasNext()) { Entry<RegionRequest, T> entry = iter.next(); if (entry.getKey().getPath().equals(server.getPath())) { memoryBytes -= sizeEstimator.getApproxImageSize(entry.getValue()); if (entry.getValue() != null) nonNullSize--; iter.remove(); } } }
@Override public synchronized void clearCacheForServer(final ImageServer<T> server) { clearingCache = true; // Ensure any current requests are discarded if (!waitingMap.isEmpty()) { String serverPath = server.getPath(); Iterator<Entry<RegionRequest, TileWorker<T>>> iter = waitingMap.entrySet().iterator(); while (iter.hasNext()) { Entry<RegionRequest, TileWorker<T>> entry = iter.next(); if (serverPath.equals(entry.getKey().getPath())) { // System.out.println("REMOVING! " + waitingMap.size()); iter.remove(); entry.getValue().cancel(true); workers.remove(entry.getValue()); } } } thumbnailCache.clearCacheForServer(server); cache.clearCacheForServer(server); clearingCache = false; }
RegionRequest getThumbnailRequest(final ImageServer<T> server, final int zPosition, final int tPosition) { // Determine thumbnail size double downsample; if (isTiledImageServer(server)) { downsample = (double)server.getWidth() / thumbnailWidth; } else { downsample = 1; } // Ensure we aren't accidentally upsampling (shouldn't actually happen) downsample = Math.max(downsample, 1); return RegionRequest.createInstance(server.getPath(), downsample, 0, 0, server.getWidth(), server.getHeight(), zPosition, tPosition); }
public ImageData(ImageServer<T> server, PathObjectHierarchy hierarchy, ImageType type) { pcs = new PropertyChangeSupport(this); this.server = server; this.hierarchy = hierarchy == null ? new PathObjectHierarchy() : hierarchy; this.serverPath = server == null ? null : server.getPath(); // TODO: Deal with sub image servers initializeStainMap(); if (type == null) type = ImageType.UNSET; setImageType(type); // Add listeners for changes this.hierarchy.addPathObjectListener(this); workflow.addWorkflowListener(this); // Discard any changes during construction changes = false; }
if (server == null || (serverPath != null && !server.getPath().equals(serverPath))) { try { server = ImageServerProvider.buildServer(serverPath, cls);
public boolean addImagesForServer(final ImageServer<T> server) { List<String> subImages = server.getSubImageList(); if (subImages.isEmpty()) { return addImage(new ProjectImageEntry<>(this, server.getPath(), server.getDisplayedImageName(), null)); } boolean changes = false; for (String name : subImages) changes = changes | addImage(new ProjectImageEntry<>(this, server.getSubImagePath(name), name, null)); return changes; }
RegionRequest request = RegionRequest.createInstance(server.getPath(), downsamplePreferred, xx, yy, ww, hh, zPosition, tPosition);
int yy = (int)(y / tileHeightForLevel) * tileHeightForLevel; RegionRequest request = RegionRequest.createInstance(server.getPath(), downsamplePreferred, xx, yy, (int)Math.min(serverWidth, (xx+tileWidthForLevel))-xx, (int)Math.min(serverHeight, (yy+tileHeightForLevel))-yy, zPosition, tPosition); return request;
region = RegionRequest.createInstance(server.getPath(), downsample, pathROI); } else { ImmutableDimension size = getPreferredTileSizePixels(server, params); int width = Math.min(server.getWidth(), xStart + size.width) - xStart; int height = Math.min(server.getHeight(), yStart + size.height) - yStart; region = RegionRequest.createInstance(server.getPath(), downsample, xStart, yStart, width, height, pathROI.getT(), pathROI.getZ());
int width = Math.min(server.getWidth(), xStart + size.width) - xStart; int height = Math.min(server.getHeight(), yStart + size.height) - yStart; RegionRequest region = RegionRequest.createInstance(server.getPath(), downsample, xStart, yStart, width, height, pathROI.getT(), pathROI.getZ());
return false; RegionRequest region = RegionRequest.createInstance(server.getPath(), downsample, (int)(pathROI.getCentroidX() + .5) - size.width/2, (int)(pathROI.getCentroidY() + .5) - size.height/2, size.width, size.height, pathROI.getT(), pathROI.getZ());
boolean createMaskROI = false; if (size.getWidth() <= 0 || size.getHeight() <= 0) { region = RegionRequest.createInstance(server.getPath(), downsample, pathObject.getROI()); createMaskROI = true; doCircular = false; int width = Math.min(server.getWidth(), xStart + size.width) - xStart; int height = Math.min(server.getHeight(), yStart + size.height) - yStart; region = RegionRequest.createInstance(server.getPath(), downsample, xStart, yStart, width, height, pathROI.getT(), pathROI.getZ());