< prev index next >

src/java.desktop/share/classes/java/awt/image/AbstractMultiResolutionImage.java

Print this page

        

@@ -24,10 +24,12 @@
  */
 package java.awt.image;
 
 import java.awt.Graphics;
 import java.awt.Image;
+import java.util.stream.Collectors;
+import sun.awt.image.MultiResolutionToolkitImage;
 
 /**
  * This class provides default implementations of several {@code Image} methods
  * for classes that want to implement the {@MultiResolutionImage} interface.
  *

@@ -74,11 +76,21 @@
         return getBaseImage().getHeight(observer);
     }
 
     @Override
     public ImageProducer getSource() {
-        return getBaseImage().getSource();
+        Image baseImage = getBaseImage();
+        int baseWidth = baseImage.getWidth(null);
+        int baseHeight = baseImage.getHeight(null);
+
+        return new MultiResolutionToolkitImage.MultiResolutionImageProducer(
+                getResolutionVariants().stream()
+                .map(rvImage -> new ResolutionVariantItem<>(
+                        rvImage.getSource(),
+                        rvImage.getWidth(null) / baseWidth,
+                        rvImage.getHeight(null) / baseHeight))
+                .collect(Collectors.toList()));
     }
 
     @Override
     public Graphics getGraphics() {
         throw new UnsupportedOperationException("getGraphics() not supported"
< prev index next >