1.关于图像及其格式
目前Java支持显示的图像文件格式有3种:JPG或JPEG、GIF和PNG。对于主要图像文件格式之一的BMP图像,虽然这种图像的质量较高,但由于没有经过压缩,文件较大不适于在网络上传输,所以Java不支持显示该类图像。如果要显示这类图像,必须进行格式转换。格式转换可以通过任何图像处理软件,比如Photoshop等。最简单的格式转换可以利用Windows 2000/XP等自带的“附件”→“画图”程序。这里介绍在“画图”程序中进行图像格式转换的方法。
1)打开“画图”程序,然后在“画图”的菜单中选择“文件”→“打开”,弹出“打开”对话框,如图11-3所示。
图11-3 “打开”对话框
2)选择要转换格式的图像文件,比如,选择sea256.bmp,然后单击“打开”按钮。在“画图”中将显示选择的图像,如图11-4所示。
3)在“画图”的菜单中选择“文件”→“另存为”命令,将出现“另存为”对话框,如图11-5所示。
图11-4 显示图像
图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):获取图像的实际宽度。
注意,对于图像类不能用
来创建一个宽高分别为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)
若要在坐标(x,y)处显示这个图像,使用如下语句
如果要在坐标(x,y)处且宽高分别为width和height的矩形框内显示图像,使用以下语句
在后面的程序中,将利用参数width和height的改变来缩小和放大显示图像。
4.画布类的派生
画布类Canvas主要用于画图形和图像。画布类是通用的控件,自身不具备任何实际功能,也不处理任何事件。为显示图形或处理事件必须对画布类进行派生。
画布类的主要方法如下:
●Canvas():构造方法。
●paint(Graphics g):画图形g。
●setLocation(int x,int y):设置画布坐标(x,y)。
本程序将从Canvas类派生出myCanvas类,根据需要将图像前后翻动和进行缩放变换。myCanvas类的设计如下:
(1)成员变量
(2)构造方法
(3)成员方法
【例11-3】独立应用程序中图像载入及画布类的设计。继承类MyAlbum2构造新类MyAlbum3。
程序运行结果如图11-6所示。
图11-6 图像载入和画布类
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。