java指南之使用图形:使用图像(转)

  使用图像
这是一个图像:   



下面的几页将提供使用图像所需要的详细资料,你将学会如何加载,显示和操纵它们。



- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
等等!:   虽然这节描述的API对JDK 1.1和Java 2 (JDK 1.2)都是有效的,但是我们还是推荐你使用Swing内建的图标   支持来代替。如果摇摆的图标不能满足要求,而且你为Java 2写程序,那么考虑使用Java 2 d API,它在2 d图形教材中有描述。   
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

图像使用的支持分布于java.applet,   爪哇岛。awt,和java.awt。图片包中。每一个图像都用一个java.awt。形象对象表示。除了图像类外,java.awt   包提供了其它的基本的图像支持,例如图形类的drawImage方法,工具箱对象的getImage方法以及MediaTracker   在java类。小应用程序包中,applet类的getImage   方法使得可以很容易的使用URL加载图像。最后,java.awt.image包提供可用于创建,操纵和观察图像的接口和类。   

加载图像
AWT可以很简单的加载两种格式的图像:GIF和JPEG.Applet和工具包类提供了getImage   方法可以使用那两种格式。像这样使用:
myImage=getImage (URL);//只能在Applet子类里
或者
模板=Toolkit.getDefaultToolkit () .getImage (filenameOrURL);

getImage   立即返回,因此你不必等待图像加载完而可以直接在你的程序中执行其它的操作,虽然这可以提高性能,但是有效程序需要更多的控制或者有关图像的更多信息。你可以通过使用MediaTracker类或者实现ImageObserver接口中定义的imageUpdate方法跟踪图像的加载。   
这一节也将告诉你如何轻松的使用MemoryImageSource类创建图像。   

显示图像
通过传递到paintComponent方法的图形对象可以很容易的显示图像。你简单的在图形   对象上调用一个drawImage方法就可以,例如:
g。drawImage(模板,0,0,   这);

这一节解释drawImage的四种形式,其中的两种可以进行图像的缩放。像getImage一样,drawImage   也是异步的,即使图像还没有被全部加载或绘制也立即返回。

加载图像
这一节描述如何得到一个图像对应的形象对象。只要图像数据在一个   GIF或JPEG格者式文件里面而且你知道它的文件名或者URL,那么从它得到一个图像就很简单:只要使用Applet或者工具包   中的一个的getImage方法就就可以.getImage方法立即返回,不检查图像数据是否存在。实际的图像加载通常直到程序第一次绘制图像时才进行。   
对于很多程序,这个不可见的后台加载工作工作得很好,否则需要跟踪图像的加载过程。这一节解释如何使用MediaTracker类和ImageObserver   接口达到目的。   


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
注意:   ImageIcon类自动使用一个MediaTracker加载自己的图像。   
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

最后,这节告诉你如何使用一个像MemoryImageSource这样的类轻松的创建一个图像。   

使用getImage方法
这节首先讨论工具包的getImage方法,然后才是Applet的getImage方法。   
工具包明了两个getImage方法:

图像getImage (URL URL)
的形象   getImage(字符串文件名)
下面是使用工具包的getImage   方法的几个例子。虽然每个Java程序和applet都可以使用这些方法,但是applet受通常的安全限制。特别的,不被信任的applet   不能成功的为getImage指定一个文件名,因为不被信任的applet不能从本机文件系统加载数据。你可以从   安全限制找到有关不被信任的applet的限制方面资料。

工具包工具包=Toolkit.getDefaultToolkit (); image1=
图像   toolkit.getImage (“imageFile.gif”);
图像image2=工具包。新getImage (
  URL (" https://cache.yisu.com/upload/information/20200703/145/53375 "));

Applet类提供两个getImage方法:   


图像getImage (URL URL)
图像getImage (URL URL字符串名称)   
只有Applet可以使用Applet的getImage方法。而且Applet的getImage   方法只有在完整的背景(AppletContext)下才能工作,因为这个原因,这些方法在构造方法或者在一个声明一个实例变量的申明里面不能工作。你应该从一个像init这样的方法里面调用getImage。   

java指南之使用图形:使用图像(转)