< prev index next >

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

Print this page

        

@@ -29,10 +29,16 @@
 import java.awt.image.ImageFilter;
 import java.awt.image.ImageConsumer;
 import java.awt.image.ImageProducer;
 import java.util.Hashtable;
 import java.awt.image.ColorModel;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Collectors;
+import sun.awt.image.MultiResolutionToolkitImage;
 
 /**
  * This class is an implementation of the ImageProducer interface which
  * takes an existing image and a filter object and uses them to produce
  * image data for a new filtered version of the original image.

@@ -204,6 +210,23 @@
             if (imgf != null) {
                 imgf.resendTopDownLeftRight(src);
             }
         }
     }
+
+    @Override
+    public boolean isMultiResolutionImageProducer() {
+        return src.isMultiResolutionImageProducer();
+    }
+
+    @Override
+    public List<ResolutionVariantItem<ImageProducer>> getResolutionVariantItems() {
+        return src.getResolutionVariantItems().stream().map(
+                (rvItem) -> new ResolutionVariantItem<ImageProducer>(
+                        new FilteredImageSource(rvItem.getValue(),
+                                filter.getScaledFilterInstance(
+                                        rvItem.getScaleX(),
+                                        rvItem.getScaleY())),
+                        rvItem.getScaleX(), rvItem.getScaleY()))
+                .collect(Collectors.toList());
+    }
 }
< prev index next >