ImageObserver (Java Platform SE 8 )
Keywords: java.awt.image.ImageObserver interface
Date: 2020-03-26

java.awt.image

## Interface ImageObserver

- All Known Implementing Classes:
    AbstractButton, AbstractColorChooserPanel, Applet, BasicArrowButton, BasicComboBoxRenderer, BasicComboBoxRenderer.UIResource, BasicComboPopup, BasicInternalFrameTitlePane, BasicInternalFrameTitlePane.SystemMenuBar, BasicSplitPaneDivider, BasicToolBarUI.DragWindow, Box, Box.Filler, Button, Canvas, CellRendererPane, Checkbox, Choice, Component, Container, DefaultListCellRenderer, DefaultListCellRenderer.UIResource, DefaultTableCellRenderer, DefaultTableCellRenderer.UIResource, DefaultTreeCellEditor.DefaultTextField, DefaultTreeCellEditor.EditorContainer, DefaultTreeCellRenderer, Dialog, FileDialog, Frame, JApplet, JButton, JCheckBox, JCheckBoxMenuItem, JColorChooser, JComboBox, JComponent, JDesktopPane, JDialog, JEditorPane, JFileChooser, JFormattedTextField, JFrame, JInternalFrame, JInternalFrame.JDesktopIcon, JLabel, JLayer, JLayeredPane, JList, JMenu, JMenuBar, JMenuItem, JOptionPane, JPanel, JPasswordField, JPopupMenu, JPopupMenu.Separator, JProgressBar, JRadioButton, JRadioButtonMenuItem, JRootPane, JScrollBar, JScrollPane, JScrollPane.ScrollBar, JSeparator, JSlider, JSpinner, JSpinner.DateEditor, JSpinner.DefaultEditor, JSpinner.ListEditor, JSpinner.NumberEditor, JSplitPane, JTabbedPane, JTable, JTableHeader, JTextArea, JTextComponent, JTextField, JTextPane, JToggleButton, JToolBar, JToolBar.Separator, JToolTip, JTree, JViewport, JWindow, Label, List, MetalComboBoxButton, MetalComboBoxUI.MetalComboPopup, MetalFileChooserUI.FileRenderer, MetalFileChooserUI.FilterComboBoxRenderer, MetalInternalFrameTitlePane, MetalScrollButton, Panel, Scrollbar, ScrollPane, TextArea, TextComponent, TextField, Window

      public interface ImageObserver

  An asynchronous update interface for receiving notifications about Image information as the Image is constructed.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ABORT` This flag in the infoflags argument to imageUpdate indicates that an image which was being tracked asynchronously was aborted before production was complete.
    `static int` | `ALLBITS` This flag in the infoflags argument to imageUpdate indicates that a static image which was previously drawn is now complete and can be drawn again in its final form.
    `static int` | `ERROR` This flag in the infoflags argument to imageUpdate indicates that an image which was being tracked asynchronously has encountered an error.
    `static int` | `FRAMEBITS` This flag in the infoflags argument to imageUpdate indicates that another complete frame of a multi-frame image which was previously drawn is now available to be drawn again.
    `static int` | `HEIGHT` This flag in the infoflags argument to imageUpdate indicates that the height of the base image is now available and can be taken from the height argument to the imageUpdate callback method.
    `static int` | `PROPERTIES` This flag in the infoflags argument to imageUpdate indicates that the properties of the image are now available.
    `static int` | `SOMEBITS` This flag in the infoflags argument to imageUpdate indicates that more pixels needed for drawing a scaled variation of the image are available.
    `static int` | `WIDTH` This flag in the infoflags argument to imageUpdate indicates that the width of the base image is now available and can be taken from the width argument to the imageUpdate callback method.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `imageUpdate(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.

- - ### Field Detail

    - #### WIDTH

          static final int WIDTH

      This flag in the infoflags argument to imageUpdate indicates that the width of the base image is now available and can be taken from the width argument to the imageUpdate callback method.
      See Also:
        `Image.getWidth(java.awt.image.ImageObserver)`, `imageUpdate(java.awt.Image, int, int, int, int, int)`, Constant Field Values

    - #### HEIGHT

          static final int HEIGHT

      This flag in the infoflags argument to imageUpdate indicates that the height of the base image is now available and can be taken from the height argument to the imageUpdate callback method.
      See Also:
        `Image.getHeight(java.awt.image.ImageObserver)`, `imageUpdate(java.awt.Image, int, int, int, int, int)`, Constant Field Values

    - #### PROPERTIES

          static final int PROPERTIES

      This flag in the infoflags argument to imageUpdate indicates that the properties of the image are now available.
      See Also:
        `Image.getProperty(java.lang.String, java.awt.image.ImageObserver)`, `imageUpdate(java.awt.Image, int, int, int, int, int)`, Constant Field Values

    - #### SOMEBITS

          static final int SOMEBITS

      This flag in the infoflags argument to imageUpdate indicates that more pixels needed for drawing a scaled variation of the image are available. The bounding box of the new pixels can be taken from the x, y, width, and height arguments to the imageUpdate callback method.
      See Also:
        `Graphics.drawImage(java.awt.Image, int, int, java.awt.image.ImageObserver)`, `imageUpdate(java.awt.Image, int, int, int, int, int)`, Constant Field Values

    - #### FRAMEBITS

          static final int FRAMEBITS

      This flag in the infoflags argument to imageUpdate indicates that another complete frame of a multi-frame image which was previously drawn is now available to be drawn again. The x, y, width, and height arguments to the imageUpdate callback method should be ignored.
      See Also:
        `Graphics.drawImage(java.awt.Image, int, int, java.awt.image.ImageObserver)`, `imageUpdate(java.awt.Image, int, int, int, int, int)`, Constant Field Values

    - #### ALLBITS

          static final int ALLBITS

      This flag in the infoflags argument to imageUpdate indicates that a static image which was previously drawn is now complete and can be drawn again in its final form. The x, y, width, and height arguments to the imageUpdate callback method should be ignored.
      See Also:
        `Graphics.drawImage(java.awt.Image, int, int, java.awt.image.ImageObserver)`, `imageUpdate(java.awt.Image, int, int, int, int, int)`, Constant Field Values

    - #### ERROR

          static final int ERROR

      This flag in the infoflags argument to imageUpdate indicates that an image which was being tracked asynchronously has encountered an error. No further information will become available and drawing the image will fail. As a convenience, the ABORT flag will be indicated at the same time to indicate that the image production was aborted.
      See Also:
        `imageUpdate(java.awt.Image, int, int, int, int, int)`, Constant Field Values

    - #### ABORT

          static final int ABORT

      This flag in the infoflags argument to imageUpdate indicates that an image which was being tracked asynchronously was aborted before production was complete. No more information will become available without further action to trigger another image production sequence. If the ERROR flag was not also set in this image update, then accessing any of the data in the image will restart the production again, probably from the beginning.
      See Also:
        `imageUpdate(java.awt.Image, int, int, int, int, int)`, Constant Field Values

  - ### Method Detail

    - #### imageUpdate

          boolean imageUpdate(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`.

      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:
        `WIDTH`, `HEIGHT`, `PROPERTIES`, `SOMEBITS`, `FRAMEBITS`, `ALLBITS`, `ERROR`, `ABORT`, `Image.getWidth(java.awt.image.ImageObserver)`, `Image.getHeight(java.awt.image.ImageObserver)`, `Graphics.drawImage(java.awt.Image, int, int, java.awt.image.ImageObserver)`

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.