/** * 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; }