先从网上下了一个源程序进行学习研究,发现很麻烦,所以先把一些的东西发出来。
java.awt.image
提供创建和修改图像的各种类。-
public class BufferedImage
extends
Image
implements
WritableRenderedImage,
Transparency
BufferedImage
子类描述具有可访问图像数据缓冲区的 Image
。BufferedImage
由图像数据的 ColorModel
和 Raster
组成。Raster
的 SampleModel
中 band 的数量和类型必须与 ColorModel
所要求的数量和类型相匹配,以表示其颜色和 alpha 分量。所有 BufferedImage
对象的左上角坐标都为 (0, BufferedImage
的任何 Raster
都必须满足:minX=0 且 minY=0。
此类依靠 Raster
的数据获取方法、数据设置方法,以及 ColorModel
的颜色特征化方法。
-
public abstract class Graphics
extends
Object
Graphics
类是所有图形上下文的抽象基类,允许应用程序在组件(已经在各种设备上实现)以及闭屏图像上进行绘制。
Graphics
对象封装了 Java 支持的基本呈现操作所需的状态信息。此状态信息包括以下属性:
- 要在其上绘制的
Component
对象。 - 呈现和剪贴坐标的转换原点。
- 当前剪贴区。
- 当前颜色。
- 当前字体。
- 当前逻辑像素操作函数(XOR 或 Paint)。
- 当前 XOR 交替颜色(参见
setXORMode(java.awt.Color)
)。
坐标是无限细分的,并且位于输出设备的像素之间。绘制图形轮廓的操作是通过使用像素大小的画笔遍历像素间无限细分路径的操作,画笔从路径上的锚点向下和向右绘制。填充图形的操作是填充图形内部区域无限细分路径操作。呈现水平文本的操作是呈现字符字形完全位于基线坐标之上的上升部分。
图形画笔从要遍历的路径向下和向右绘制。其含义如下:
- 如果绘制一个覆盖给定矩形的图形,那么该图形与填充被相同矩形所限定的图形相比,在右侧和底边多占用一行像素。
- 如果沿着与一行文本基线相同的 y 坐标绘制一条水平线,那么除了文字的所有下降部分外,该线完全画在文本的下面。
所有作为此 Graphics
对象方法的参数而出现的坐标,都是相对于调用该方法前的此 Graphics
对象转换原点的。
所有呈现操作仅修改当前剪贴区所限定区域内的像素,此剪贴区是由用户空间中的 Shape
指定的,并通过使用 Graphics
对象的程序来控制。此用户剪贴区 被转换到设备空间中,并与设备剪贴区 组合,后者是通过窗口可见性和设备范围定义的。用户剪贴区和设备剪贴区的组合定义复合剪贴区,复合剪贴区确定最终的剪贴区域。用户剪贴区不能由呈现系统修改,以反映得到的复合剪贴区。用户剪贴区只能通过 setClip
或 clipRect
方法更改。所有的绘制或写入都以当前的颜色、当前绘图模式和当前字体完成。
-
public abstract class Graphics2D
extends
Graphics
此 Graphics2D
类扩展 Graphics
类,以提供对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制。它是用于在 Java(tm) 平台上呈现二维形状、文本和图像的基础类。