欢迎来到天天文库
浏览记录
ID:38422296
大小:475.00 KB
页数:26页
时间:2019-06-12
《第11章 Java图像图形处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十一章图形图像处理在前边的章节的图形用户界面的处理中,已经看到了图像的应用。本章将简要介绍如何在用户屏幕上绘制图形以及如何显示图像。11.1图形在前边我们已经介绍了用户屏幕和容器的概念,也看到了如何在容器中添加组件。一般来说,在用户屏幕上绘制图形其实就是在容器组件上绘制图形。因此需要注意以下两点:1)组件中的坐标系统容器组件的坐标系统类似于屏幕的坐标系统,坐标原点(0,0)在容器的左上角,正x轴方向水平自左向右,正y轴方向垂直自上向下。在java中,不同的图形输出设备拥有自己的设备坐标系统,该系统具有与默认用户坐标系
2、统相同的方向。坐标单位取决于设备,比如,显示的分辨率不同,设备坐标系统就不同。一般来说,在显示屏幕上的计量单位是像素(每英寸大约90个像素),在打印机上是点(每英寸大约600个点)。Java系统自动将用户坐标转换成输出设备专有的设备坐标系统。2)图形环境(graphicscontext)由于在组件上绘制图形使用的用户坐标系统被封装在Graphics2D类的对象中,所以Graphics2D被称之为图形环境。它提供了丰富的绘图方法,包括绘制直线、矩形、圆、多边形等。下边我们先介绍与绘制图形相关的类,再介绍绘制图形的方法和步
3、骤。11.1.1绘制图形的类与绘制图形有关的类的层次结构如下:
4、-java.awt.Graphics
5、-java.awt.Graphics2D
6、-java.awt.GraphicsConfigTemplate
7、-java.awt.GraphicsConfiguration
8、-java.awt.GraphicsDevice
9、-java.awt.GraphicsEnvironmentGraphics类是所有图形类的抽象基类,它允许应用程序可以在组件(已经在各种设备上实现)上进行图形图像的绘制。Graphics对象封装了Ja
10、va支持的基本绘制操作所需的状态信息,其中包括组件对象、绘制和剪贴坐标的转换原点、当前剪贴区、当前颜色、当前字体、当前的逻辑像素操作方法(XOR或Paint)等等。Graphics2D类是从早期版本(JDK1.0)中定义设备环境的Graphics类派生而来的,它提供了对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制。它是用于在Java(tm)平台上绘制二维图形、文本和图像的基础类。GraphicsDevice类定义了屏幕和打印机这类可用于绘制图形的设备。GraphicsEnvironment类定义了所有可使用的图
11、形设备和字体设备。GraphicsConfiguration类定义了屏幕或打印机这类设备的特征。在图形绘制过程中,每个Graphics2D对象都与一个定义了绘制位置的目标相关联。GraphicsConfiguration对象定义绘制目标的特征(如像素格式和分辨率等)。在Graphics2D对象的整个生命周期中都使用相同的绘制标准。Griphics和Graphics2D类都是抽象类,我们无法直接创建这两个类的对象,表示图形环境的对象完全取决于与之相关的组件,因此获得图形环境总是与特定的组件相关。创建Graphics2D对
12、象时,GraphicsConfiguration将为Graphics2D的目标(Component或Image)指定默认转换,所有Graphics2D方法都采用用户空间坐标。一般来说,图形的绘制过程分为四个阶段:确定绘制内容、在指定的区域绘制、确定绘制的颜色、将颜色应用于绘图面。有三种绘制操作:几何图形、文本和图像。绘制过程中,Graphics2D对象的6个重要属性如下:Paint颜料属性决定线条绘制的颜色。它也定义填充图形的颜色和模式,系统默认的颜料属性是组件的颜色。Font字体属性定义了绘制文本时所使用的字体,系统
13、默认的字体是组件的字体设置。Stroke画笔属性确定线型,如实线、虚线或点划线等。该属性也决定线段端点的形状。系统默认的画笔是方形画笔,绘制线宽为1的实线,线的末端为方形,斜角线段接口为45度斜面。Transform转换属性定义渲染过程中应用的转换方法。可以使绘制的图形平移、旋转和缩放。Composite合成属性决定如何在组件上绘制叠放图形。Clip剪切属性定义了组件上的一个区域边界。图形绘制只能在该区域内进行。一般情况下,我们使用Griphics2D对象的方法进行图形的绘制工作,Griphics2D对象的常用方法如下
14、:1)abstract voidclip(Shape s) 将当前Clip与指定Shape的内部区域相交,并将Clip设置为所得的交集。2)abstractvoiddraw(Shape s) 使用当前Graphics2D上下文的设置勾画Shape的轮廓。3)abstractvoiddrawImage(BufferedImag
此文档下载收益归作者所有