Module java.desktop
Package java.awt.image

## Class AbstractMultiResolutionImage

- java.lang.Object
- - java.awt.Image
  - - java.awt.image.AbstractMultiResolutionImage

- All Implemented Interfaces:
    `MultiResolutionImage`
  Direct Known Subclasses:
    `BaseMultiResolutionImage`

      public abstract class AbstractMultiResolutionImage
      extends Image
      implements MultiResolutionImage

  This class provides default implementations of several `Image` methods for classes that want to implement the `MultiResolutionImage` interface. For example,

       public class CustomMultiResolutionImage extends AbstractMultiResolutionImage {

           final Image[] resolutionVariants;

           public CustomMultiResolutionImage(Image... resolutionVariants) {
                this.resolutionVariants = resolutionVariants;
           }

           public Image getResolutionVariant(
                   double destImageWidth, double destImageHeight) {
               // return a resolution variant based on the given destination image size
           }

           public List<Image> getResolutionVariants() {
               return Collections.unmodifiableList(Arrays.asList(resolutionVariants));
           }

           protected Image getBaseImage() {
               return resolutionVariants[0];
           }
       }

  Since:
    9
  See Also:
    `Image`, `MultiResolutionImage`

- - ### Field Summary

    - ### Fields declared in class java.awt.Image

      `accelerationPriority, SCALE_AREA_AVERAGING, SCALE_DEFAULT, SCALE_FAST, SCALE_REPLICATE, SCALE_SMOOTH, UndefinedProperty`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractMultiResolutionImage()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected abstract Image` | `getBaseImage()` | Return the base image representing the best version of the image for rendering at the default width and height.
    `Graphics` | `getGraphics()` | As per the contract of the base `Image#getGraphics()` method, this implementation will always throw `UnsupportedOperationException` since only off-screen images can return a `Graphics` object.
    `int` | `getHeight​(ImageObserver observer)` | This method simply delegates to the same method on the base image and it is equivalent to: `getBaseImage().getHeight(observer)`.
    `Object` | `getProperty​(String name, ImageObserver observer)` | This method simply delegates to the same method on the base image and it is equivalent to: `getBaseImage().getProperty(name, observer)`.
    `ImageProducer` | `getSource()` | This method simply delegates to the same method on the base image and it is equivalent to: `getBaseImage().getSource()`.
    `int` | `getWidth​(ImageObserver observer)` | This method simply delegates to the same method on the base image and it is equivalent to: `getBaseImage().getWidth(observer)`.

    - ### Methods declared in class java.awt.Image

      `flush, getAccelerationPriority, getCapabilities, getScaledInstance, setAccelerationPriority`

    - ### Methods declared in class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods declared in interface java.awt.image.MultiResolutionImage

      `getResolutionVariant, getResolutionVariants`

- - ### Constructor Detail

    - #### AbstractMultiResolutionImage

          public AbstractMultiResolutionImage()

  - ### Method Detail

    - #### getWidth

          public int getWidth​(ImageObserver observer)

      This method simply delegates to the same method on the base image and it is equivalent to: `getBaseImage().getWidth(observer)`.
      Specified by:
        `getWidth` in class `Image`
      Parameters:
        `observer` - an object waiting for the image to be loaded.
      Returns:
        the width of the base image, or -1 if the width is not yet known
      Since:
        9
      See Also:
        `getBaseImage()`

    - #### getHeight

          public int getHeight​(ImageObserver observer)

      This method simply delegates to the same method on the base image and it is equivalent to: `getBaseImage().getHeight(observer)`.
      Specified by:
        `getHeight` in class `Image`
      Parameters:
        `observer` - an object waiting for the image to be loaded.
      Returns:
        the height of the base image, or -1 if the height is not yet known
      Since:
        9
      See Also:
        `getBaseImage()`

    - #### getSource

          public ImageProducer getSource()

      This method simply delegates to the same method on the base image and it is equivalent to: `getBaseImage().getSource()`.
      Specified by:
        `getSource` in class `Image`
      Returns:
        the image producer that produces the pixels for the base image
      Since:
        9
      See Also:
        `getBaseImage()`

    - #### getGraphics

          public Graphics getGraphics()

      As per the contract of the base `Image#getGraphics()` method, this implementation will always throw `UnsupportedOperationException` since only off-screen images can return a `Graphics` object.
      Specified by:
        `getGraphics` in class `Image`
      Returns:
        throws `UnsupportedOperationException`
      Throws:
        `UnsupportedOperationException` - this method is not supported
      See Also:
        `Graphics`, `Component.createImage(int, int)`

    - #### getProperty

          public Object getProperty​(String name,
                                    ImageObserver observer)

      This method simply delegates to the same method on the base image and it is equivalent to: `getBaseImage().getProperty(name, observer)`.
      Specified by:
        `getProperty` in class `Image`
      Parameters:
        `name` - a property name.
        `observer` - an object waiting for this image to be loaded.
      Returns:
        the value of the named property in the base image
      Since:
        9
      See Also:
        `getBaseImage()`

    - #### getBaseImage

          protected abstract Image getBaseImage()

      Return the base image representing the best version of the image for rendering at the default width and height.
      Returns:
        the base image of the set of multi-resolution images
      Since:
        9