要开发高级应用程序,就必须掌握一定的图像处理技术。Java绘图程序开发不可缺少的技术,使用这些技术可以为程序提供数据统计、图表分析等功能,还可以为程序搭配音效,提高程序的交互能力。
19.1Java绘图类
绘图是高级程序设计中非常重要的技术。例如,应用程序可以绘图闪屏图片,背景图片、组件外观等,Web程序可以绘制统计图、数据库存储的图片资源等。正所谓“一图胜千里”,使用图片能够更好的表达程序运行结果,并且能够进行细致的数据分析与保存等。
19.1JAVA绘图类
绘图是高级程序设计中非常重要的技术
19.1.1Graphics类
Graphics类是所有图形上下文的抽象基类,它允许应用程序在组件以及闭屏图片上进行绘制
Graphics类封装了JAVA支持的基本绘图操作所需的状态信息,主要包括颜色,字体,画笔,文本,图像等。
19.1.2Graphics2D类
使用Graphics类可以完成简单的图形绘制任务,但功能有限,无法改变线条的粗细,不能对图片进行
19.2绘制图形
JAVA可以分别使用Graphics类和Graphics2D类绘制图形
例题19.1
代码如下:
运行结果如下:
Graphics类常用的图形绘制方法
Graphics2D类是在继承Graphics类的基础上编写的,包含了Graphics类的绘制方法,并添加了更强的功能,在绘制绘图类时推荐使用,Graphics2D类可以分别使用不同的类,表示不同的形状。
要绘制指定形状的图形,需要先创建并初始化该图形类的对象,且这些类图形类必须是Shape接口的实现类,然后使用Graphics2D类的draw()方法绘制该图形对象或者使用fil(0l方法填充该图形对象语法格式如下:
draw(Shape form)
fill(Shape form)
form是Shape接口的对象
例题19.2代码:
运行结果:
19.3绘图颜色与画笔属性
19.3.1设置颜色
使用 Color 类可以创建任意颜色的对象,不用担心平台是否支持改颜色,因为 Java 以跨平台和与硬件无关的方式支持颜色管理。
19.4绘制文本
19.4.1设置字体
Java使用 Font 类封装了字体的大小、样式等属性,该类在 java.awt 包中定义,其构造方法可以指定字体的名称、大小和样式3个属性。
19.4.2显示文字
Graphics2D 类提供了 drawString()方法,使用该方法可以实现图形上下文的文本绘制,从而实现在图片上显示文字的功能。
例题19.3
运行结果:
19.5显示图片
绘图不仅可以绘制图形和文本,还可以使用 drawImage() 方法将图片资源显示到绘图上下文中,而且可以实现各种特效处理。
例题19.4
运行结果:
19.5显示图片
绘图不仅可以绘制图形和文本,还可以使用 drawImage() 方法将图片资源显示到绘图上下文中,而且可以实现各种特效处理。
19.6图像处理
19.6.1放大与缩小
使用了 drawImage() 方法将图片以原始大小显示在窗体中,要想实现图片的放大与缩小,则需要使用他的重载方法。
19.5例题
运行结果:
19.6.2图像翻转
图像的翻转需要使用 drawImage() 方法的另一个重载方法。
此方法总是用来非缩放的图像来呈现缩放的矩形,并动态地执行所需要的缩放。此操作不使用缓存的缩放图像。执行图像从源到目标的缩放,要将源矩形的第一个坐标映射到目标矩形的第一个坐标,源矩形的第二个坐标映射到目标矩形的第二个坐标,按需要缩放和翻转子图像,以保持这些映射关系。
19.6例题
运行结果:
19.6.3图像旋转
图像旋转需要调用 Graphics2D 类的 rotate()方法,该方法将根据指定的弧度旋转图像。
例题19.7
运行结果:
19.6.4图像倾斜
可以使用 Graphics2D 类提供的 shear()方法设置绘图的倾斜方向,从而使图像实现倾斜的效果。
例题19.8
运行结果:
绘制图形
介绍:java分别使用Graphics类和Graphics2D类绘制图形,Graphics类使用不同的方法实现不同图形绘制。类如,drawLine()方法可以绘制直线,drawRect()方法用于绘制椭圆形等。绘制奥运五环图案
在项目中创建DrawCirele类,使该类继承JFrame类成为窗体组件,在类中创建继承JPanel类的DrawPanel内部类,并重写paint()方法,绘制有5个圆形组成的图案。代码(创建DrawCircle类
最后.所有Graphics类常用的图像绘制
代码创建
运行结果:
颜色与画笔
介绍:使用Color类可以创建任意的对象,不用担心平台是否支持该颜色,因为Java以跨平台和与硬件无关的方式支持颜色管理。
创建方式:Color col = new(int r, int g, int b)
Color col = new(int rgb)
rgb(三原色)是红绿蓝的总和
r:红色g:绿色b:蓝色。