diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java index 7d395c6cea76325f1695296bdbb479db8d9715db..61a25a97e9fd1ddb30f000eadd5d56989faafe1f 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java @@ -237,7 +237,7 @@ public class ImageChannelsUtils // resized the image if necessary Size sizeOrNull = imageReference.tryGetSize(); - if (sizeOrNull != null) + if (sizeOrNull != null && isRescalingNeeded(image, sizeOrNull)) { start = operationLog.isDebugEnabled() ? System.currentTimeMillis() : 0; image = ImageUtil.createThumbnail(image, sizeOrNull.getWidth(), sizeOrNull.getHeight()); @@ -262,6 +262,12 @@ public class ImageChannelsUtils return image; } + // we do not want to generate thumnnails which are larger in any dimension than the original + private static boolean isRescalingNeeded(BufferedImage image, Size size) + { + return image.getWidth() > size.getWidth() || image.getHeight() > size.getHeight(); + } + private static BufferedImage loadImage(AbsoluteImageReference imageReference) { IContent content = imageReference.getContent();