greenfoot
Class GreenfootImage

java.lang.Object
  extended by greenfoot.GreenfootImage

public class GreenfootImage
extends java.lang.Object

An image to be shown on screen. The image may be loaded from an image file and/or drawn by using various drawing methods.

Version:
2.6
Author:
Poul Henriksen

Constructor Summary
GreenfootImage(GreenfootImage image)
          Create a GreenfootImage from another GreenfootImage.
GreenfootImage(int width, int height)
          Create an empty (transparent) image with the specified size.
GreenfootImage(java.lang.String filename)
          Create an image from an image file.
GreenfootImage(java.lang.String string, int size, java.awt.Color foreground, java.awt.Color background)
          Creates an image with the given string drawn as text using the given font size, with the given foreground color on the given background color.
GreenfootImage(java.lang.String string, int size, java.awt.Color foreground, java.awt.Color background, java.awt.Color outline)
          Creates an image with the given string drawn as text using the given font size, with the given foreground color on the given background color.
 
Method Summary
 void clear()
          Clears the image.
 void drawImage(GreenfootImage image, int x, int y)
          Draws the given Image onto this image
 void drawLine(int x1, int y1, int x2, int y2)
          Draw a line, using the current drawing color, between the points (x1, y1) and (x2, y2).
 void drawOval(int x, int y, int width, int height)
          Draw an oval bounded by the specified rectangle with the current drawing color.
 void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
          Draws a closed polygon defined by arrays of x and y coordinates.
 void drawRect(int x, int y, int width, int height)
          Draw the outline of the specified rectangle.
 void drawShape(java.awt.Shape shape)
          Draw a shape directly on the image.
 void drawString(java.lang.String string, int x, int y)
          Draw the text given by the specified string, using the current font and color.
 void fill()
          Fill the entire image with the current drawing color.
 void fillOval(int x, int y, int width, int height)
          Fill an oval bounded by the specified rectangle with the current drawing color.
 void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
          Fill a closed polygon defined by arrays of x and y coordinates.
 void fillRect(int x, int y, int width, int height)
          Fill the specified rectangle.
 void fillShape(java.awt.Shape shape)
          Draw a filled shape directly on the image.
 java.awt.image.BufferedImage getAwtImage()
          Returns the java.awt.image.BufferedImage that backs this GreenfootImage.
 java.awt.Color getColor()
          Return the current drawing color.
 java.awt.Color getColorAt(int x, int y)
          Return the color at the given pixel.
 java.awt.Font getFont()
          Get the current font.
 int getHeight()
          Return the height of the image.
 int getTransparency()
          Return the current transparency of the image.
 int getWidth()
          Return the width of the image.
 void mirrorHorizontally()
          Mirrors the image horizontally (the left of the image becomes the right, and vice versa).
 void mirrorVertically()
          Mirrors the image vertically (the top of the image becomes the bottom, and vice versa).
 void rotate(int degrees)
          Rotates this image around the center.
 void scale(int width, int height)
          Scales this image to a new size.
 void setColor(java.awt.Color color)
          Set the current drawing color.
 void setColorAt(int x, int y, java.awt.Color color)
          Sets the given pixel to the given color.
 void setFont(java.awt.Font f)
          Set the current font.
 void setTransparency(int t)
          Set the transparency of the image.
 java.lang.String toString()
          Return a text representation of the image.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GreenfootImage

public GreenfootImage(java.lang.String filename)
               throws java.lang.IllegalArgumentException
Create an image from an image file. Supported file formats are JPEG, GIF and PNG.

The file name may be an absolute path, or a base name for a file located in the project directory.

Parameters:
filename - Typically the name of a file in the images directory within the project directory.
Throws:
java.lang.IllegalArgumentException - If the image can not be loaded.

GreenfootImage

public GreenfootImage(int width,
                      int height)
Create an empty (transparent) image with the specified size.

Parameters:
width - The width of the image in pixels.
height - The height of the image in pixels.

GreenfootImage

public GreenfootImage(GreenfootImage image)
               throws java.lang.IllegalArgumentException
Create a GreenfootImage from another GreenfootImage.

Throws:
java.lang.IllegalArgumentException

GreenfootImage

public GreenfootImage(java.lang.String string,
                      int size,
                      java.awt.Color foreground,
                      java.awt.Color background)
Creates an image with the given string drawn as text using the given font size, with the given foreground color on the given background color. If the string has newline characters, it is split into multiple lines which are drawn horizontally-centred.

Parameters:
string - the string to be drawn
size - the requested height in pixels of each line of text (the actual height may be different by a pixel or so)
foreground - the color of the text. Since Greenfoot 2.2.0, passing null will use black.
background - the color of the image behind the text. Since Greenfoot 2.2.0, passing null with leave the background transparent.
Since:
2.0.1

GreenfootImage

public GreenfootImage(java.lang.String string,
                      int size,
                      java.awt.Color foreground,
                      java.awt.Color background,
                      java.awt.Color outline)
Creates an image with the given string drawn as text using the given font size, with the given foreground color on the given background color. If the string has newline characters, it is split into multiple lines which are drawn horizontally-centred.

Parameters:
string - the string to be drawn
size - the requested height in pixels of each line of text (the actual height may be different by a pixel or so)
foreground - the color of the text. Since Greenfoot 2.2.0, passing null will use black.
background - the color of the image behind the text. Since Greenfoot 2.2.0, passing null with leave the background transparent.
outline - the colour of the outline that will be drawn around the text. Passing null will draw no outline.
Since:
2.4.0
Method Detail

getAwtImage

public java.awt.image.BufferedImage getAwtImage()
Returns the java.awt.image.BufferedImage that backs this GreenfootImage. Any changes to the returned image will be reflected in the GreenfootImage.

Returns:
The java.awt.image.BufferedImage backing this GreenfootImage
Since:
Greenfoot version 1.0.2

getWidth

public int getWidth()
Return the width of the image.

Returns:
Width of the image.

getHeight

public int getHeight()
Return the height of the image.

Returns:
Height of the image.

rotate

public void rotate(int degrees)
Rotates this image around the center.

Parameters:
degrees -

scale

public void scale(int width,
                  int height)
Scales this image to a new size.

Parameters:
width - Width of new image
height - Height of new image

mirrorVertically

public void mirrorVertically()
Mirrors the image vertically (the top of the image becomes the bottom, and vice versa).


mirrorHorizontally

public void mirrorHorizontally()
Mirrors the image horizontally (the left of the image becomes the right, and vice versa).


fill

public void fill()
Fill the entire image with the current drawing color.


drawImage

public void drawImage(GreenfootImage image,
                      int x,
                      int y)
Draws the given Image onto this image

Parameters:
image - The image to draw onto this one.
x - x-coordinate for drawing the image.
y - y-coordinate for drawing the image.

setFont

public void setFont(java.awt.Font f)
Set the current font. This font will be used for subsequent text operations.


getFont

public java.awt.Font getFont()
Get the current font.


setColor

public void setColor(java.awt.Color color)
Set the current drawing color. This color will be used for subsequent drawing operations.

Parameters:
color - The color to be used.

getColor

public java.awt.Color getColor()
Return the current drawing color.

Returns:
The current color.

getColorAt

public java.awt.Color getColorAt(int x,
                                 int y)
Return the color at the given pixel.

Throws:
java.lang.IndexOutOfBoundsException - If the pixel location is not within the image bounds.

setColorAt

public void setColorAt(int x,
                       int y,
                       java.awt.Color color)
Sets the given pixel to the given color.


setTransparency

public void setTransparency(int t)
Set the transparency of the image.

Parameters:
t - A value in the range 0 to 255. 0 is completely transparent (invisible) and 255 is completely opaque (the default).

getTransparency

public int getTransparency()
Return the current transparency of the image.

Returns:
A value in the range 0 to 255. 0 is completely transparent (invisible) and 255 is completely opaque (the default).

fillRect

public void fillRect(int x,
                     int y,
                     int width,
                     int height)
Fill the specified rectangle. The left and right edges of the rectangle are at x and x + width - 1. The top and bottom edges are at y and y + height - 1. The resulting rectangle covers an area width pixels wide by height pixels tall. The rectangle is filled using the current color.

Parameters:
x - the x coordinate of the rectangle to be filled.
y - the y coordinate of the rectangle to be filled.
width - the width of the rectangle to be filled.
height - the height of the rectangle to be filled.

clear

public void clear()
Clears the image.


drawRect

public void drawRect(int x,
                     int y,
                     int width,
                     int height)
Draw the outline of the specified rectangle. The left and right edges of the rectangle are at x and x + width. The top and bottom edges are at y and y + height. The rectangle is drawn using the current color.

Parameters:
x - the x coordinate of the rectangle to be drawn.
y - the y coordinate of the rectangle to be drawn.
width - the width of the rectangle to be drawn.
height - the height of the rectangle to be drawn.

drawString

public void drawString(java.lang.String string,
                       int x,
                       int y)
Draw the text given by the specified string, using the current font and color. The baseline of the leftmost character is at position ( x y ).

Parameters:
string - the string to be drawn.
x - the x coordinate.
y - the y coordinate.

drawShape

public void drawShape(java.awt.Shape shape)
Draw a shape directly on the image. Shapes are specified by the shape interface.

Parameters:
shape - the shape to be drawn.

fillShape

public void fillShape(java.awt.Shape shape)
Draw a filled shape directly on the image. Shapes are specified by the shape interface.

Parameters:
shape - the shape to be filled.

fillOval

public void fillOval(int x,
                     int y,
                     int width,
                     int height)
Fill an oval bounded by the specified rectangle with the current drawing color.

Parameters:
x - the x coordinate of the upper left corner of the oval to be filled.
y - the y coordinate of the upper left corner of the oval to be filled.
width - the width of the oval to be filled.
height - the height of the oval to be filled.

drawOval

public void drawOval(int x,
                     int y,
                     int width,
                     int height)
Draw an oval bounded by the specified rectangle with the current drawing color.

Parameters:
x - the x coordinate of the upper left corner of the oval to be drawn.
y - the y coordinate of the upper left corner of the oval to be drawn.
width - the width of the oval to be drawn.
height - the height of the oval to be drawn.

fillPolygon

public void fillPolygon(int[] xPoints,
                        int[] yPoints,
                        int nPoints)
Fill a closed polygon defined by arrays of x and y coordinates.

This method draws the polygon defined by nPoint line segments, where the first nPoint - 1 line segments are line segments from (xPoints[i - 1], yPoints[i - 1]) to (xPoints[i], yPoints[i]), for 1 ≤  i  ≤  nPoints. The figure is automatically closed by drawing a line connecting the final point to the first point, if those points are different.

The area inside the polygon is defined using an even-odd fill rule, also known as the alternating rule.

Parameters:
xPoints - an array of x coordinates.
yPoints - an array of y coordinates.
nPoints - the total number of points.

drawPolygon

public void drawPolygon(int[] xPoints,
                        int[] yPoints,
                        int nPoints)
Draws a closed polygon defined by arrays of x and y coordinates. Each pair of (xy) coordinates defines a point.

This method draws the polygon defined by nPoint line segments, where the first nPoint - 1 line segments are line segments from (xPoints[i - 1], yPoints[i - 1]) to (xPoints[i], yPoints[i]), for 1 ≤ i ≤ nPoints. The figure is automatically closed by drawing a line connecting the final point to the first point, if those points are different.

Parameters:
xPoints - an array of x coordinates.
yPoints - an array of y coordinates.
nPoints - the total number of points.

drawLine

public void drawLine(int x1,
                     int y1,
                     int x2,
                     int y2)
Draw a line, using the current drawing color, between the points (x1, y1) and (x2, y2).

Parameters:
x1 - the first point's x coordinate.
y1 - the first point's y coordinate.
x2 - the second point's x coordinate.
y2 - the second point's y coordinate.

toString

public java.lang.String toString()
Return a text representation of the image.

Overrides:
toString in class java.lang.Object


Greenfoot homepage