acm.graphics
Class GImage

java.lang.Object
  extended by acm.graphics.GObject
      extended by acm.graphics.GImage
All Implemented Interfaces:
GResizable, GScalable, Serializable, Cloneable

public class GImage
extends GObject
implements GResizable, GScalable

The GImage class is a graphical object whose appearance is defined by an image.

See Also:
Serialized Form

Constructor Summary
GImage(Image image)
          Creates a new GImage object at the origin that displays the specified image.
GImage(Image image, double x, double y)
          Creates a new GImage object at the specified coordinates.
GImage(int[][] array)
          Creates a new GImage object at the origin.
GImage(int[][] array, double x, double y)
          Creates a new GImage object at the specified coordinates.
GImage(String name)
          Creates a new GImage object by looking for an image with that name.
GImage(String name, double x, double y)
          Creates a new GImage object at the specified coordinates.
 
Method Summary
static int createRGBPixel(int red, int green, int blue)
          Creates an opaque pixel value with the color components given by red, green, and blue.
static int createRGBPixel(int red, int green, int blue, int alpha)
          Creates a pixel value with the color components given by red, green, and blue and the transparency value alpha.
static int getAlpha(int pixel)
          Returns the alpha component from an RGB value.
protected  Rectangle getAWTBounds()
          Returns an AWT Rectangle that specifies the bounds of this object.
static int getBlue(int pixel)
          Returns the blue component from an RGB value.
 GRectangle getBounds()
          Returns the bounding box of this object.
static int getGreen(int pixel)
          Returns the green component from an RGB value.
 Image getImage()
          Returns the image stored inside this GImage.
 int[][] getPixelArray()
          Returns a two-dimensional array of pixel values from the stored image.
static int getRed(int pixel)
          Returns the red component from an RGB value.
 GDimension getSize()
          Returns the size of this object as a GDimension.
 void paint(Graphics g)
          Implements the paint operation for this graphical object.
 void saveImage(File file)
          Saves the image to the specified file.
 void saveImage(String filename)
          Saves the image to a file with the specified filename.
 void scale(double sf)
          Scales the object on the screen by the scale factor sf, which applies in both dimensions.
 void scale(double sx, double sy)
          Scales the object on the screen by the scale factors sx and sy.
 void setBounds(double x, double y, double width, double height)
          Changes the bounds of this object to the specified values.
 void setBounds(GRectangle bounds)
          Changes the bounds of this object to the values from the specified GRectangle.
 void setImage(Image image)
          Resets the image used by this GImage object to the new image specified as an argument.
 void setImage(String name)
          Resets the image used by this GImage object to the one identified by the argument name, which is processed exactly as described in the constructors.
 void setSize(double width, double height)
          Changes the size of this object to the specified width and height.
 void setSize(GDimension size)
          Changes the size of this object to the specified GDimension.
 
Methods inherited from class acm.graphics.GObject
addActionListener, addMouseListener, addMouseMotionListener, areMouseListenersEnabled, colorName, contains, contains, fireActionEvent, fireActionEvent, fireMouseListeners, getColor, getComponent, getHeight, getLocation, getObjectColor, getParent, getWidth, getX, getY, isVisible, move, movePolar, paintObject, paramString, pause, removeActionListener, removeMouseListener, removeMouseMotionListener, repaint, sendBackward, sendForward, sendToBack, sendToFront, setColor, setLocation, setLocation, setParent, setVisible, start, start, toString, updateEnabledList
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GImage

public GImage(Image image)
Creates a new GImage object at the origin that displays the specified image.

Parameters:
image - The image to use as the contents of this GImage

GImage

public GImage(Image image,
              double x,
              double y)
Creates a new GImage object at the specified coordinates. The image parameter is used to initialize the appearance of the image.

Parameters:
image - The image to use as the contents of this GImage
x - The x-coordinate of the upper left corner of the image
y - The y-coordinate of the upper left corner of the image

GImage

public GImage(int[][] array)
Creates a new GImage object at the origin. The array parameter is a two-dimensional pixel array in which each pixel value consists of an integer that is subdivided into four eight-bit bytes, as follows:
alpha << 24 | red << 16 | green << 8 | blue
The alpha value indicates the transparency, and the other values are the red, green, and blue components of the color.

Parameters:
array - A two-dimensional pixel array

GImage

public GImage(int[][] array,
              double x,
              double y)
Creates a new GImage object at the specified coordinates. The array parameter is a two-dimensional pixel array in which each pixel value consists of an integer that is subdivided into four eight-bit bytes, as follows:
alpha << 24 | red << 16 | green << 8 | blue
The alpha value indicates the transparency, and the other values are the red, green, and blue components of the color.

Parameters:
array - A two-dimensional pixel array
x - The x-coordinate of the upper left corner of the image
y - The y-coordinate of the upper left corner of the image

GImage

public GImage(String name)
Creates a new GImage object by looking for an image with that name. The search for an image by name consists of the following steps:

  1. Check to see if an image with that name has already been defined. If so, return that image.

  2. Check to see if there is a resource available with that name whose contents can be read as an Image. If so, read the image from the resource file.

  3. Load the image from a file with the specified name, relative to the application directory or the applet code base.

Parameters:
name - The name used to search for the contents of this image

GImage

public GImage(String name,
              double x,
              double y)
Creates a new GImage object at the specified coordinates. The name parameter is used to identify an image to display, as described in the single-argument version of the GImage constructor.

Parameters:
name - The name used to search for the contents of this image
x - The x-coordinate of the upper left corner of the image
y - The y-coordinate of the upper left corner of the image
Method Detail

createRGBPixel

public static int createRGBPixel(int red,
                                 int green,
                                 int blue)
Creates an opaque pixel value with the color components given by red, green, and blue.

Parameters:
red - The red component of the pixel (0 to 255)
green - The green component of the pixel (0 to 255)
blue - The blue component of the pixel (0 to 255)
Returns:
An opaque pixel value containing these components

createRGBPixel

public static int createRGBPixel(int red,
                                 int green,
                                 int blue,
                                 int alpha)
Creates a pixel value with the color components given by red, green, and blue and the transparency value alpha.

Parameters:
red - The red component of the pixel (0 to 255)
green - The green component of the pixel (0 to 255)
blue - The blue component of the pixel (0 to 255)
alpha - The transparency value of the pixel (0 to 255)
Returns:
A pixel value containing these components

getAlpha

public static int getAlpha(int pixel)
Returns the alpha component from an RGB value.

Parameters:
pixel - An int containing a pixel value as alpha/red/green/blue.
Returns:
The alpha component of the pixel

getAWTBounds

protected Rectangle getAWTBounds()
Returns an AWT Rectangle that specifies the bounds of this object.

Returns:
A Rectangle that specifies the bounds of this object

getBlue

public static int getBlue(int pixel)
Returns the blue component from an RGB value.

Parameters:
pixel - An int containing a pixel value as alpha/red/green/blue.
Returns:
The blue component of the pixel

getBounds

public GRectangle getBounds()
Returns the bounding box of this object.

Specified by:
getBounds in class GObject
Returns:
The bounding box for this object

getGreen

public static int getGreen(int pixel)
Returns the green component from an RGB value.

Parameters:
pixel - An int containing a pixel value as alpha/red/green/blue.
Returns:
The green component of the pixel

getImage

public Image getImage()
Returns the image stored inside this GImage.

Returns:
The Image object stored inside this GImage

getPixelArray

public int[][] getPixelArray()
Returns a two-dimensional array of pixel values from the stored image.

Returns:
A two-dimensional array of pixel values from the stored image

getRed

public static int getRed(int pixel)
Returns the red component from an RGB value.

Parameters:
pixel - An int containing a pixel value as alpha/red/green/blue.
Returns:
The red component of the pixel

getSize

public GDimension getSize()
Returns the size of this object as a GDimension.

Overrides:
getSize in class GObject
Returns:
The size of this object

paint

public void paint(Graphics g)
Implements the paint operation for this graphical object. This method is not called directly by clients.

Specified by:
paint in class GObject
Parameters:
g - The graphics context into which the painting is done

saveImage

public void saveImage(File file)
Saves the image to the specified file. The data format for the image file is determined by the suffix of the filename. If the suffix of the file is not recognized as a supported image type, calling this method generates an error.

Parameters:
file - The File to which the image is saved

saveImage

public void saveImage(String filename)
Saves the image to a file with the specified filename. The data format for the image file is determined by the suffix of the filename. If the suffix of the file is not recognized as a supported image type, calling this method generates an error.

Parameters:
filename - The name of the file to which the image is saved

scale

public final void scale(double sf)
Scales the object on the screen by the scale factor sf, which applies in both dimensions.

Specified by:
scale in interface GScalable
Parameters:
sf - The factor used to scale all coordinates in both dimensions

scale

public void scale(double sx,
                  double sy)
Scales the object on the screen by the scale factors sx and sy.

Specified by:
scale in interface GScalable
Parameters:
sx - The factor used to scale all coordinates in the x direction
sy - The factor used to scale all coordinates in the y direction

setBounds

public void setBounds(double x,
                      double y,
                      double width,
                      double height)
Changes the bounds of this object to the specified values.

Specified by:
setBounds in interface GResizable
Parameters:
x - The new x-coordinate for the object
y - The new y-coordinate for the object
width - The new width of the object
height - The new height of the object

setBounds

public final void setBounds(GRectangle bounds)
Changes the bounds of this object to the values from the specified GRectangle.

Specified by:
setBounds in interface GResizable
Parameters:
bounds - A GRectangle specifying the new bounds

setImage

public void setImage(Image image)
Resets the image used by this GImage object to the new image specified as an argument. Calling setImage automatically changes the size of the image to be equal to that of the image data.

Parameters:
image - The image to use as the contents of this GImage

setImage

public void setImage(String name)
Resets the image used by this GImage object to the one identified by the argument name, which is processed exactly as described in the constructors. Calling setImage automatically changes the size of the image to be equal to that of the image data.

Parameters:
name - The name used to search for the contents of this image

setSize

public void setSize(double width,
                    double height)
Changes the size of this object to the specified width and height.

Specified by:
setSize in interface GResizable
Parameters:
width - The new width of the object
height - The new height of the object

setSize

public final void setSize(GDimension size)
Changes the size of this object to the specified GDimension.

Specified by:
setSize in interface GResizable
Parameters:
size - A GDimension object specifying the size