de.caff.util

## Class ImageToImageDrawer

- java.lang.Object
- - de.caff.util.ImageToImageDrawer

- All Implemented Interfaces:
    java.awt.image.ImageObserver

      public class ImageToImageDrawer
      extends java.lang.Object
      implements java.awt.image.ImageObserver

  Class which draws an image centered to another image, while taking care of deferred image loading.
  Author:
    Rammi

- - ### Field Summary

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ImageToImageDrawer(java.awt.Image sourceImage, java.awt.image.BufferedImage targetImage, boolean scale)` Constructor

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.awt.Image` | `getSourceImage()` Get the source image.
    `java.awt.image.BufferedImage` | `getTargetImage()` Get the target image.
    `boolean` | `imageUpdate(java.awt.Image img, int infoflags, int x, int y, int width, int height)` This method is called when information about an image which was previously requested using an asynchronous interface becomes available.

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### ImageToImageDrawer

          public ImageToImageDrawer(@NotNull
                                    java.awt.Image sourceImage,
                                    @NotNull
                                    java.awt.image.BufferedImage targetImage,
                                    boolean scale)

      Constructor
      Parameters:
        `sourceImage` - image to draw, possibly not yet completely loaded
        `targetImage` - target image to which the source image is drawn
        `scale` - scale source image to fit to target image?

  - ### Method Detail

    - #### getSourceImage

          @NotNull
          public java.awt.Image getSourceImage()

      Get the source image.
      Returns:
        source image

    - #### getTargetImage

          @NotNull
          public java.awt.image.BufferedImage getTargetImage()

      Get the target image.
      Returns:
        target image

    - #### imageUpdate

          public boolean imageUpdate(java.awt.Image img,
                                     int infoflags,
                                     int x,
                                     int y,
                                     int width,
                                     int height)

      This method is called when information about an image which was previously requested using an asynchronous interface becomes available. Asynchronous interfaces are method calls such as getWidth(ImageObserver) and drawImage(img, x, y, ImageObserver) which take an ImageObserver object as an argument. Those methods register the caller as interested either in information about the overall image itself (in the case of getWidth(ImageObserver)) or about an output version of an image (in the case of the drawImage(img, x, y, [w, h,] ImageObserver) call).

      This method should return true if further updates are needed or false if the required information has been acquired. The image which was being tracked is passed in using the img argument. Various constants are combined to form the infoflags argument which indicates what information about the image is now available. The interpretation of the x, y, width, and height arguments depends on the contents of the infoflags argument.

      The `infoflags` argument should be the bitwise inclusive OR of the following flags: `WIDTH`, `HEIGHT`, `PROPERTIES`, `SOMEBITS`, `FRAMEBITS`, `ALLBITS`, `ERROR`, `ABORT`.

      Specified by:
        `imageUpdate` in interface `java.awt.image.ImageObserver`
      Parameters:
        `img` - the image being observed.
        `infoflags` - the bitwise inclusive OR of the following flags: `WIDTH`, `HEIGHT`, `PROPERTIES`, `SOMEBITS`, `FRAMEBITS`, `ALLBITS`, `ERROR`, `ABORT`.
        `x` - the x coordinate.
        `y` - the y coordinate.
        `width` - the width.
        `height` - the height.
      Returns:
        `false` if the infoflags indicate that the image is completely loaded; `true` otherwise.
      See Also:
        `ImageObserver.WIDTH`, `ImageObserver.HEIGHT`, `ImageObserver.PROPERTIES`, `ImageObserver.SOMEBITS`, `ImageObserver.FRAMEBITS`, `ImageObserver.ALLBITS`, `ImageObserver.ERROR`, `ImageObserver.ABORT`, `Image.getWidth(java.awt.image.ImageObserver)`, `Image.getHeight(java.awt.image.ImageObserver)`, `Graphics.drawImage(java.awt.Image, int, int, java.awt.image.ImageObserver)`