当前位置:文档之家› Java 图像处理

Java 图像处理


1) abstract void clip(Shape s) 将当前Clip与指定Shape的内部区域相交,并将Clip设置为 所得的交集。 2) abstract void draw(Shape s) 使用当前Graphics2D上下文的设置勾画Shape的轮廓。 3) abstract void drawImage(BufferedImage img, BufferedImageOp op, int x, int y) 呈现使用BufferedImageOp 过滤的BufferedImage 应用的 呈现属性包括Clip,Transform 和Composite 属性。
<2>创建Graphics 2D 对象时,Graphics Configuration 将为Graphics 2D 的目标(Component 或Image)指定默认 转换,所有Graphics2D方法都采用用户空间坐标。
(3)color 类
Color类是用来封装颜色的,使用Color对象较为简单的方法是直接 使用Color类提供的预定义的颜色,像红色Color.red、橙色 Color.orange等;也可以使用RGB颜色模式进行定义。
2.Repaint方法 Applet重画时系统自动调用paint方法。
3.Update方法 public void update(Graphics g) 更新容器,向Repaint发出刷新小应用程序的信号,缺省的Update方法清除Applet 画图区并调用Paint方法。
一般情况下,我们使用Griphics2D对象的方法进行图形的绘制工作, Griphics2D对象的常用方法如下:
public abstract void setFont(Font font)
设置特定的font字体。使用时首先得到font对象的一个实例, Font类常用构造函数为:
public Font(String name, int style, int size)
通过指定的name、style和size创建字体实例。name指字体名,
8) abstract
Color getBackground()
返回用于清除区域的背景色。 9) abstract Composite getComposite()
返回Graphics2D 上下文中的当前composite
10) abstract Paint getPaint() 返回Graphics2D 上下文中的当前Paint 11) abstract Stroke getStroke() 返回Graphics2D 上下文中的当前Stroke
所谓RGB颜色模式是指使用三种基色:红、绿、蓝,通过三种颜色的 调整得出其它各种颜色,这三种基色的值范围为0~255。
例如Color c = new Color(255,200,0);定义橙色。表5.1给出常用颜色 的RGB值以及对应的类预定义参数。
表5.1 常用颜色的RGB值以及对应的类预 定义参数
4) abstract boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) 呈现一个图像,在绘制前进行从图像空间到用户空间的转换。 5) abstract void drawString(String s,float x,float y) 使用Graphics2D上下文中当前文本属性状态呈现由指定String 指定的文本。 6)abstract void drawString(String str, int x, int y) 使用Graphics2D上下文中的当前文本属性状态呈现指定的 String 的文本。 7) abstract void fill(Shape s) 使用Graphics2D上下文的设置,填充Shape的内部区域。
2)图形环境(graphics context)
由于在组件上绘制图形使用的用户坐标系统被封装在Graphics2D类的 对象中,所以Graphics2D被称之为图形环境。它提供了丰富的绘图方 法,包括绘制直线、矩形、圆、多边形等。
二.绘制图形的类
1
2 3
Graphics 类
Graphics 2D类
像“隶书”、“TimesRoman”等,字体风格为粗体、斜体,size
指字号大小。
例如: Font f = new Font("TimesRoman",Font.BOLD + Font.ITALIC, 12); 创建了具有粗斜体风格的12磅的TimesRoman字体。
【例5.1】设置Graphics对象画图,显示结果如图5.1所示。
一.Java图形
1 2
组件中的坐标系统
图形环境(graphics context)
1)组件中的坐标系统
在用户屏幕上绘制图形其实就是在容器组件上绘制图形。需要注意 的是: Java编程语言中的图形坐标系统不同于数学中的坐标系,屏幕左上 角为(0,0),右下角为屏幕水平向右和垂直向下增长的像素数。 在java中,不同的图形输出设备拥有自己的设备坐标系统,该系统 具有与默认用户坐标系统相同的方向。坐标单位取决于设备,比如, 显示的分辨率不同,设备坐标系统就不同。 一般来说,在显示屏幕上的计量单位是像素(每英寸大约90个像 素),在打印机上是点(每英寸大约600个点)。
4.Transform 转换属性定义渲染过程中应用的转换方法。可以使绘制的 图形平移、旋转和缩放。
posite 合成属性决定如何在组件上绘制叠放图形。
6.Clip 剪切属性定义了组件上的一个区域边界。图形绘制只能在 该区域内进行。
注意: <1>Griphics和Graphics2D类都是抽象类,我们无法直接创 建这两个类的对象,表示图形环境的对象完全取决于与之 相关的组件,因此获得图形环境总是与特定的组件相关。
图5.1 简单的图形界面
(2)Graphics 2D类
|-java.awt.Graphics2D Graphics2D类是从早期版本(JDK1.0)中定义设备环境的Graphics 类派生而来的,它提供了对几何形状、坐标转换、颜色管理和文本布 局更为复杂的控制。它是用于在Java(tm)平台上绘制二维图形、文本 和图像的基础类。
12) abstract boolean hit(Rectangle rect, Shape s, boolean onStroke) 检查指定的Shape 是否与设备空间中的指定Rectangle 相交。 13) abstract void rotate(double theta) 将当前Graphics2D Transform 与旋转转换连接。 14) abstract void rotate(double theta, double x, double y) 当前的Graphics2D Transform 与平移后的旋转转换连接。 15) abstract void scale(double sx, double sy) 将当前Graphics2D Transform与可缩放转换连接。
Java 图像处理
信号与信息处理:程巍
Java 图像处理
一 二 三
Java 图形
绘制 图形 的类
绘制 图形 的方 法
抽象窗口化工具(AWT)为图形用户界面编程提供 API编程接口,使得Java可以提供较好的图形用 户界面。AWT把图形处理分为两个层次: 1.处理原始图形,这一 层较原始,图形直接以 点、线和面的形式画到 界面上; 2.提供大量组件,实现 可定制的图形用户界面。
类 Line2D Rectangle2D RoundRectangle2D Ellipse2D GeneralPath 线 矩形 圆角矩形 椭圆 几何路径 描 述
绘制过程中,Graphics2D对象的6个重要属性如下:
1.Paint 颜料属性决定线条绘制的颜色。它也定义填充图形的颜色 和模式,系统默认的颜料属性是组件的颜色。 2.Font 字体属性定义了绘制文本时所使用的字体,系统默认的字 体是组件的字体设置。 3.Stroke 画笔属性确定线型,如实线、虚线或点划线等。该属性也 决定线段端点的形状。系统默认的画笔是方形画笔,绘制 线宽为1的实线,线的末端为方形,斜角线段接口为45度斜 面。
Color还有一个构造函数,它构造的Color对象用于是否透明显 示颜色。 public Color(int red, int green, int blue, int alpha) 其中:前三个分量即RGB颜色模式中的参数,第四个alpha分量 指透明的程度。当alpha分量为255时,表示完全不透明,正常显 示;当alpha分量为0时,表示完全透明,前三个分量不起作用, 而介于0~255之间的值可以制造出颜色不同的层次效果。
public void drawRect(int x, int y, int width, int height)
画实心矩形。 public abstract void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) 使用当前颜色画圆角矩形。
color 类
(1)Graphics 类
|-java.awt.Graphics: Graphics 类是所有图形类的抽象基类,它允许应用程序在组件(已 经在各种设备上实现)上进行图形图像的绘制。 <1>.Graphics 对象封装了Java 支持的基本绘制操作所需的状态信息, 其中包括组件对象、绘制和剪贴坐标的转换原点、当前剪贴区、当前 颜色、当前字体、当前的逻辑像素操作方法(XOR 或Paint)等等。
public abstract void drawOval(int x, int y, int width, int heigvoid fillOval(int x, int y, int width, int height) 画实心椭圆。
相关主题