< 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 >