首页 理论教育 独立应用程序中图像的载入与图像类解析

独立应用程序中图像的载入与图像类解析

时间:2023-11-26 理论教育 版权反馈
【摘要】:这里介绍在“画图”程序中进行图像格式转换的方法。JPEG图像具有24位彩色处理能力,可以处理照片中微小色彩细节,具有较高的图像质量。第1种形式返回由imgProd产生的图像。为显示图形或处理事件必须对画布类进行派生。myCanvas类的设计如下:成员变量构造方法成员方法独立应用程序中图像载入及画布类的设计。图11-6 图像载入和画布类

独立应用程序中图像的载入与图像类解析

1.关于图像及其格式

目前Java支持显示的图像文件格式有3种:JPG或JPEG、GIF和PNG。对于主要图像文件格式之一的BMP图像,虽然这种图像的质量较高,但由于没有经过压缩,文件较大不适于在网络上传输,所以Java不支持显示该类图像。如果要显示这类图像,必须进行格式转换。格式转换可以通过任何图像处理软件,比如Photoshop等。最简单的格式转换可以利用Windows 2000/XP等自带的“附件”→“画图”程序。这里介绍在“画图”程序中进行图像格式转换的方法。

1)打开“画图”程序,然后在“画图”的菜单中选择“文件”→“打开”,弹出“打开”对话框,如图11-3所示。

978-7-111-44824-2-Part02-17.jpg

图11-3 “打开”对话框

2)选择要转换格式的图像文件,比如,选择sea256.bmp,然后单击“打开”按钮。在“画图”中将显示选择的图像,如图11-4所示。

3)在“画图”的菜单中选择“文件”→“另存为”命令,将出现“另存为”对话框,如图11-5所示。

978-7-111-44824-2-Part02-18.jpg

图11-4 显示图像

978-7-111-44824-2-Part02-19.jpg

图11-5 “另存为”对话框

4)在“保存类型”中选择Java能显示的类型,比如JPG类型。在“文件名”文本框中输入新图像格式的文件名,比如sea256.jpg,并在“保存在”文本框中选择文件路径,然后单击“保存”按钮即可。

JPEG或JPG是Joint Photographil Expents GROUP的简写,是这个组织开发的一种图形标准。JPEG图像具有24位彩色处理能力,可以处理照片中微小色彩细节,具有较高的图像质量。

GIF是“可交换图形文件格式”的简写。这种图像只能使用256种颜色,因此,GIF图像通常只能用来作为色彩比较简单的插图使用。

PNG是“可移植网络图形文件格式”的简写,是一种新的Web图像格式。它集JPEG和GIF两种图像文件的优点,但在性能上比GIF图像优越得多,能显示上百万种颜色。

2.图像类Image

图像类的主要方法如下:

●getGraphics():获取描述此图像的图形对象。

●getHeight(ImageObserver):获取图像的实际高度。

●getWidth(ImageObserver):获取图像的实际宽度。

注意,对于图像类不能用

978-7-111-44824-2-Part02-20.jpg

来创建一个宽高分别为w和h图像对象。Java.awt提供一个createImage()方法来生成图像对象。有两种形式:

1)Image createImage(ImageProducer imgProd)。

2)Image createImage(int width,int height)。第1种形式返回由imgProd产生的图像。第2种作法返回具有指定宽度和高度的空图像对象。对于第2种作法和getGraphics(),将在11.2.2的双缓冲技术中得到应用,用来产生空的Graphics对象和空的Image对象。因为双缓冲技术正是需要这种对象。

3.图像的载入和显示

独立应用程序中载入图像需要利用Toolkit类,使用getDefaultToolkit()方法可以得到Toolkit类的对象。然后应用该类的方法getImage()载入当前目录下的子目录image中的图像0125.gif。(www.xing528.com)

978-7-111-44824-2-Part02-21.jpg

若要在坐标(x,y)处显示这个图像,使用如下语句

978-7-111-44824-2-Part02-22.jpg

如果要在坐标(x,y)处且宽高分别为width和height的矩形框内显示图像,使用以下语句

978-7-111-44824-2-Part02-23.jpg

在后面的程序中,将利用参数width和height的改变来缩小和放大显示图像。

4.画布类的派生

画布类Canvas主要用于画图形和图像。画布类是通用的控件,自身不具备任何实际功能,也不处理任何事件。为显示图形或处理事件必须对画布类进行派生。

画布类的主要方法如下:

●Canvas():构造方法。

●paint(Graphics g):画图形g。

●setLocation(int x,int y):设置画布坐标(x,y)。

本程序将从Canvas类派生出myCanvas类,根据需要将图像前后翻动和进行缩放变换。myCanvas类的设计如下:

(1)成员变量

978-7-111-44824-2-Part02-24.jpg

(2)构造方法

978-7-111-44824-2-Part02-25.jpg

(3)成员方法

978-7-111-44824-2-Part02-26.jpg

【例11-3】独立应用程序中图像载入及画布类的设计。继承类MyAlbum2构造新类MyAlbum3。

978-7-111-44824-2-Part02-27.jpg

978-7-111-44824-2-Part02-28.jpg

程序运行结果如图11-6所示。

978-7-111-44824-2-Part02-29.jpg

图11-6 图像载入和画布类

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈