greenfoot
Class GreenfootImage

java.lang.Object
  extended by greenfoot.GreenfootImage

public class GreenfootImage
extends java.lang.Object

在Greenfoot系统中,可在屏幕上显示的图片都以GreenfootImage的形式存在。GreenfootImage可以载入已有的图片文件,也可以利用多种绘图方法来绘制。

(译者注:GreenfootImage类包含了Greenfoot系统中的全部和图形图像有关的功能,相对传统的2D概念而言,GreenfootImage在此结合了Image和Graphics的功能,故翻译时视情况译作“图片”或“图像”,有时则统称“GreenfootImage”或“GreenfootImage对象”)。

(译者注:在GreenfootImage类中的所有坐标、尺寸等空间概念均以像素为单位,故不再额外注明。)

版本:
2.4
作者:
Poul Henriksen
译者:
Eric Pan(Upupzealot)

翻译有误请联系:hzxjhspxn@163.com


Constructor Summary
GreenfootImage(GreenfootImage image)
          根据另一个GreenfootImage对象创建新的GreenfootImage对象。
GreenfootImage(int width, int height)
          创建一个指定尺寸的空白(全透明)的GreenfootImage对象。
GreenfootImage(java.lang.String filename)
          将图片文件载入成一个GreenfootImage。
GreenfootImage(java.lang.String string, int size, java.awt.Color foreground, java.awt.Color background)
          根据指定的字符串、字号、前景色和背景色绘制一个新的GreenfootImage对象。
 
Method Summary
 void clear()
          清空全图。
 void drawImage(GreenfootImage image, int x, int y)
          将指定的图片绘制到本图片上。
 void drawLine(int x1, int y1, int x2, int y2)
          用当前的绘制颜色在(x1, y1)和(x2, y2)的两点之间绘制一条直线。
 void drawOval(int x, int y, int width, int height)
          用当前绘制颜色绘制一个由指定矩形边界定义的椭圆轮廓。
 void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
          用当前的绘制颜色绘制一个由顶点坐标数组xy所定义的多边形轮廓。
 void drawRect(int x, int y, int width, int height)
          用当前的绘制颜色绘制指定的矩形轮廓。
 void drawShape(java.awt.Shape shape)
          用当前的绘制颜色在本图像上直接绘制指定的几何形体。
 void drawString(java.lang.String string, int x, int y)
          用当前的绘制颜色和字体绘制指定的字符串。
 void fill()
          用当前的绘制颜色绘制颜色填充全图。
 void fillOval(int x, int y, int width, int height)
          用当前绘制颜色填充一个由指定矩形边界定义的椭圆。
 void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
          用当前的绘制颜色填充一个由x y 数组定义顶点坐标的闭合多边形。
 void fillRect(int x, int y, int width, int height)
          用当前的绘制颜色填充指定的矩形区域。
 void fillShape(java.awt.Shape shape)
          在本图像上直填充指定的几何形体。
 java.awt.image.BufferedImage getAwtImage()
          返回本GreenfootImage背后的java.awt.image.BufferedImage对象。
 java.awt.Color getColor()
          返回当前的绘制颜色。
 java.awt.Color getColorAt(int x, int y)
          返回指定像素的颜色。
 java.awt.Font getFont()
          获得当前绘制字体。
 int getHeight()
          返回本图片高度。
 int getTransparency()
          返回本图片的透明度。
 int getWidth()
          返回图片宽度。
 void mirrorHorizontally()
          在水平方向上镜像原图片(原图的左部成为新图的右部,反之亦然)。
 void mirrorVertically()
          在竖直方向上镜像原图片(原图的顶部成为新图的底部,反之亦然)。
 void rotate(int degrees)
          绕图像中心旋转指定角度。
 void scale(int width, int height)
          缩放本图片至一个新的尺寸。
 void setColor(java.awt.Color color)
          设置当前的绘制颜色。
 void setColorAt(int x, int y, java.awt.Color color)
          将指定位置的像素点设置为指定颜色。
 void setFont(java.awt.Font f)
          设置绘制字体。
 void setTransparency(int t)
          设置本图片的透明度。
 java.lang.String toString()
          返回一个描述本GreenfootImage对象的文本。
 
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
将图片文件载入成一个GreenfootImage。支持jpeg、gif和png格式。

filename可能是图片文件的绝对路径,或是工程目录下的相对路径。

参数:
filename - 通常是工程目录下images目录中某图片文件的文件名(译者注:应包含后缀,后缀区分大小写。)
抛出:
java.lang.IllegalArgumentException - 倘若无法加载指定的图片。(译者注:如该文件不存在或错误的文件名。)

GreenfootImage

public GreenfootImage(int width,
                      int height)
创建一个指定尺寸的空白(全透明)的GreenfootImage对象。

参数:
width - 图片的宽度
height - 图片的高度

GreenfootImage

public GreenfootImage(GreenfootImage image)
               throws java.lang.IllegalArgumentException
根据另一个GreenfootImage对象创建新的GreenfootImage对象。

Throws:
java.lang.IllegalArgumentException - 倘若无法加载指定的图片。

GreenfootImage

public GreenfootImage(java.lang.String string,
                      int size,
                      java.awt.Color foreground,
                      java.awt.Color background)
根据指定的字符串、字号、前景色和背景色绘制一个新的GreenfootImage对象。若指定的字符串中含有换行符,则会以水平居中的对齐方式绘制多行文字。(译者注:该方法所穿件的GreenfootImage的尺寸有所指定的字符串内容和字号决定,这在某些场合,如绘制UI时,非常有用。美中不足的是此时无法指定字体等其他参数。)

参数:
string - 需要绘制的字符串
size - 绘制时每行字符的高度,以像素为单位。(视情况,实际高度和指定高度有时会有一个像素的偏差)
foreground - 前景色。用于绘制文字的颜色。自版本2.2.0起,传入null会默认使用黑色。
background - 背景色。用于填充图片本身的颜色。自版本2.2.0起,传入null会默认使背景保持全透明。
自从:
Greenfoot版本 2.0.1
Method Detail

getAwtImage

public java.awt.image.BufferedImage getAwtImage()
返回本GreenfootImage背后的java.awt.image.BufferedImage对象。对该BufferedImage进行任何后续的绘制操作都会直接反应在此GreenfootImage上。(译者注:该方法通常用于获得BufferedImage对象的Graphics2D句柄,利用java2D进行一些高级的绘制操作,如遮罩、渐变、抗锯齿等。具体可参见Graphics2D各方法。)

返回:
本GreenfootImage背后的java.awt.image.BufferedImage对象。
自从:
Greenfoot版本 1.0.2

getWidth

public int getWidth()
返回图片宽度。

返回:
图片宽度

getHeight

public int getHeight()
返回本图片高度。

返回:
图片高度

rotate

public void rotate(int degrees)
绕图像中心旋转指定角度。(译者注:不同于Actor类的rotate方法,该方法不会改变图像的边界,故有可能出现旋转后的图像被原边界裁剪的情况)

参数:
degrees - 旋转角度

scale

public void scale(int width,
                  int height)
缩放本图片至一个新的尺寸。

参数:
width - 新的图片宽度
height - 新的图片高度

mirrorVertically

public void mirrorVertically()
在竖直方向上镜像原图片(原图的顶部成为新图的底部,反之亦然)。


mirrorHorizontally

public void mirrorHorizontally()
在水平方向上镜像原图片(原图的左部成为新图的右部,反之亦然)。


fill

public void fill()
用当前的绘制颜色填充全图。(译者注:绘制颜色参见setColor方法,默认为黑色。若本对象是通过World类的getBackground方法获得的默认的白背景,则绘制色默认为白色。)


drawImage

public void drawImage(GreenfootImage image,
                      int x,
                      int y)
将指定的图片绘制到本图片上。

参数:
image - 被绘制的图像。
x - 绘制图片的x坐标(译者注:被绘制图像的左侧第一列像素被绘制的x位置)
y - 绘制图片的y坐标(译者注:被绘制图像的顶侧第一行像素被绘制的y位置)

setFont

public void setFont(java.awt.Font f)
设置绘制字体。此后本GreenfootImage上的所有文字绘制操作都将采用该指定字体。


getFont

public java.awt.Font getFont()
获得当前绘制字体。


setColor

public void setColor(java.awt.Color color)
设置当前的绘制颜色。此后的所有绘制操作都将使用该指定颜色。

参数:
color - 欲使用的绘制颜色

getColor

public java.awt.Color getColor()
返回当前的绘制颜色。

返回:
正使用的绘制颜色

getColorAt

public java.awt.Color getColorAt(int x,
                                 int y)
返回指定像素的颜色。

抛出:
java.lang.IndexOutOfBoundsException - 若指定的像素坐标超出了图片的边界。

setColorAt

public void setColorAt(int x,
                       int y,
                       java.awt.Color color)
将指定位置的像素点设置为指定颜色。


setTransparency

public void setTransparency(int t)
设置本图片的透明度。

参数:
t - 一个 0 到 255 范围内的值。0为全透明, 255为不透明(默认值)。

getTransparency

public int getTransparency()
返回本图片的透明度。

返回:
一个 0 到 255 范围内的值。0为全透明, 255为不透明(默认值)。

fillRect

public void fillRect(int x,
                     int y,
                     int width,
                     int height)
用当前的绘制颜色填充指定的矩形区域。该矩形区域的左右边界分别位于xx + width - 1。上下边界分别位于yy + height - 1。整个绘制区域宽width像素,高height像素,使用当前绘制颜色填充。

参数:
x - 填充矩形的x 坐标
y - 填充矩形的y 坐标
width - 填充矩形的宽度
height - 填充矩形的高度

clear

public void clear()
清空全图。


drawRect

public void drawRect(int x,
                     int y,
                     int width,
                     int height)
用当前的绘制颜色绘制指定的矩形轮廓。该矩形区域的左右边界分别位于xx + width。上下边界分别位于yy + height,使用当前绘制颜色绘制。

参数:
x - 绘制矩形的x 坐标
y - 绘制矩形的y
width - 绘制矩形的宽度
height - 绘制矩形的高度

drawString

public void drawString(java.lang.String string,
                       int x,
                       int y)
用当前的绘制颜色和字体绘制指定的字符串。最左侧字符的基线位于(x ,  y )处。

参数:
string - 欲绘制的字符串
x - 基线起始x 坐标
y - 基线y 坐标

drawShape

public void drawShape(java.awt.Shape shape)
用当前的绘制颜色在本图像上直接绘制指定的几何形体。几何形体的定义参见:形状接口.

参数:
shape - 欲绘制的几何形体

fillShape

public void fillShape(java.awt.Shape shape)
用当前的绘制颜色在本图像上直填充指定的几何形体。几何形体的定义参见:形状接口.

参数:
shape - 欲填充的几何形体

fillOval

public void fillOval(int x,
                     int y,
                     int width,
                     int height)
用当前绘制颜色填充一个由指定矩形边界定义的椭圆。

参数:
x - 欲填充椭圆边界的左上角的x 坐标
y - 欲填充椭圆边界的左上角的y 坐标
width - 欲填充椭圆的边界宽度
height - 欲填充椭圆的边界高度

drawOval

public void drawOval(int x,
                     int y,
                     int width,
                     int height)
用当前绘制颜色绘制一个由指定矩形边界定义的椭圆轮廓。

参数:
x - 欲绘制椭圆边界的左上角的x 坐标
y - 欲绘制椭圆边界的左上角的y 坐标
width - 欲绘制椭圆的边界宽度
height - 欲绘制椭圆的边界高度

fillPolygon

public void fillPolygon(int[] xPoints,
                        int[] yPoints,
                        int nPoints)
用当前的绘制颜色填充一个由x y 数组定义顶点坐标的闭合多边形。

本方法会填充由nPoint点所定义的多边形。前nPoint - 1条边为由点(xPoints[i - 1], yPoints[i - 1])至点(xPoints[i], yPoints[i])所定义的线段,其中i取 1 ≤ i  ≤  nPoints。若首尾两点不重合,多边形最后会自动连接它们以闭合图形。

多边形内的区域由奇偶填充法则或称交替填充法则定义。

参数:
xPoints - 顶点x坐标数组
yPoints - 顶点y坐标数组
nPoints - 顶点个数

drawPolygon

public void drawPolygon(int[] xPoints,
                        int[] yPoints,
                        int nPoints)
用当前的绘制颜色绘制一个由顶点坐标数组xy所定义的多边形轮廓。每一对(xy)各自定义了多边形的一个顶点。

本方法会绘制由nPoint点所定义的多边形轮廓。前nPoint - 1条边为由点(xPoints[i - 1], yPoints[i - 1])至点(xPoints[i], yPoints[i])所定义的线段,其中i取 1 ≤ i  ≤  nPoints。若首尾两点不重合,多边形最后会自动连接它们以闭合图形。

参数:
xPoints - 顶点x坐标数组
yPoints - 顶点y坐标数组
nPoints - 顶点个数

drawLine

public void drawLine(int x1,
                     int y1,
                     int x2,
                     int y2)
用当前的绘制颜色在(x1, y1)(x2, y2)的两点之间绘制一条直线。

参数:
x1 - 第一点的x 坐标
y1 - 第一点的y 坐标
x2 - 第二点的x 坐标
y2 - 第二点的y 坐标

toString

public java.lang.String toString()
返回一个描述本GreenfootImage对象的文本。

重写:
java.lang.Object类中的toString


Greenfoot homepage