in src/wsiToDcm.cpp [260:287]
int32_t WsiToDcm::getOpenslideLevelForDownsample(int64_t downsample) {
/*
Openslide API identifies image closest to the downsampled image in size
with the API call: openslide_get_best_level_for_downsample(osr,
downsample); optimal level selection selects the level with
magnification above required level. Downsample acquistions can result in
image dimensions which are non-interger multiples of the highest
magnification which can result in the openslide_get_level_downsample
reporting level downsampling of a non-fixed multiple:
Example: Aperio svs imaging, E.g. (40x -> 10x reports the 10x image has
having a downsampling factor of 4.00018818010427.)
The code below, computes the desired frame dimensions and then selects
the frame which is the best match.
*/
const int64_t tw = largestSlideLevelWidth_ / downsample;
const int64_t th = largestSlideLevelHeight_ / downsample;
int32_t levelToGet;
for (levelToGet = 1; levelToGet < svsLevelCount_; ++levelToGet) {
int64_t lw, lh;
openslide_get_level_dimensions(getOpenSlidePtr(), levelToGet, &lw, &lh);
if (lw < tw || lh < th) {
break;
}
}
return (levelToGet - 1);
}