@Override public double getPreferredDownsampleFactor(double requestedDownsample) { double[] downsamples = getPreferredDownsamples(); int ind = ServerTools.getClosestDownsampleIndex(downsamples, requestedDownsample); return downsamples[ind]; }
@Override public String getShortServerName() { return ServerTools.getDefaultShortServerName(getPath()); }
/** * Calculate a downsample factor for a server given a preferred pixel size. * * Optionally ensure that the downsample is a power of 2 (i.e. the closest power of 2 available to the 'ideal' downsample). * * @param server * @param preferredPixelSizeMicrons * @param doLog2 * @return */ public static double getDownsampleFactor(final ImageServer<?> server, final double preferredPixelSizeMicrons, boolean doLog2) { if (server == null) return Double.NaN; double downsampleFactor = getPreferredDownsampleForPixelSizeMicrons(server.getAveragedPixelSizeMicrons(), preferredPixelSizeMicrons, doLog2); if (Double.isNaN(downsampleFactor) || downsampleFactor < 1) downsampleFactor = 1; return downsampleFactor; }
double downsampleFactor = ServerTools.getDownsampleFactor(imageData.getServer(), getPreferredPixelSizeMicrons(imageData, params), true); int preferred = (int)(2048 * downsampleFactor);
int level = ServerTools.getClosestDownsampleIndex(getPreferredDownsamples(), downsampleFactor); double downsample = downsamples[level]; int levelWidth = (int)(region.width / downsample + .5);