diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Image.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Image.java index 200dd55911d..e62df7904ab 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Image.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Image.java @@ -2330,8 +2330,14 @@ private ImageHandle initializeHandleFromSource(int zoom) { @Override protected Rectangle getBounds(int zoom) { - ImageData imageData = getImageData(zoom); - return new Rectangle(0, 0, imageData.width, imageData.height); + if (cachedImageData.containsKey(zoom)) { + ImageData imageData = cachedImageData.get(zoom); + return new Rectangle(0, 0, imageData.width, imageData.height); + } + ElementAtZoom imageDataAtZoom = loadImageData(zoom); + ImageData imageData = imageDataAtZoom.element(); + Rectangle currentSize = new Rectangle(0, 0, imageData.width, imageData.height); + return Win32DPIUtils.scaleBounds(currentSize, zoom, imageDataAtZoom.zoom()); } }