⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imageloader.java

📁 这是自己设计的一款java泡泡游戏。 这是自己设计的一款java泡泡游戏。这是自己设计的一款java泡泡游戏
💻 JAVA
字号:
package like.graphics;

import java.awt.*;
import java.awt.image.*;
import java.util.*;

/**图象加载器类:从硬盘加载一图片,并也许获取图片的一个单元操作
 * 以及获取单元后缩放为指定大小.这样可以方便的使用动画条:)
 */
public class ImageLoader
{
	/**加载和浏览图象的Applet
 	 */
 	protected Component component;

	/**加载到此图片
 	 */
 	protected Image image;
 	
	/**image的宽
 	 */ 		
 	protected int imageWidth;

	/**image的高
 	 */ 	
 	protected int imageHeight;
 	
	/**缓冲区,用于在图象加载后立即绘制他们以避免图片应用中的
	 * 首次绘制不正常
 	 */
 	protected static BufferedImage buffer = new BufferedImage(200,200,BufferedImage.TYPE_INT_RGB); 		
	
	/**创建一imageLoader对象.对各变量赋值,applet-->this.applet,fileName-->
	 * 要加载的图片相对于applet.getCodeBase的路径,即applet类
	 * 的路径,有包的话在与包所在的路径相同.wait-->用于选择是否对加
	 * 进行跟踪,另对imageWidth,imageHeight赋值.
	 */
	public ImageLoader( Component component,String fileName,boolean wait)
	{
		this.component = component;
		image = this.component.getToolkit().getImage(fileName);
		
		if(wait)
		{
			MediaTracker mt = new MediaTracker(this.component);
			mt.addImage(image,0);
			try
			{
				mt.waitForID(0);
			}
			catch(Exception e){e.printStackTrace();}
		}
		
		this.imageWidth = image.getWidth(this.component);
		this.imageHeight = image.getHeight(this.component);
	}
	
	public ImageLoader(ImageObserver iobserver,Image image)
	{
		this.image = image;
		this.imageWidth  = image.getWidth(iobserver);
		this.imageHeight = image.getHeight(iobserver);
		this.component = (Component)iobserver;
	}
	
	/**返回图象的宽
	 */
	public int getImageWidth()
	{
		return this.imageWidth;
	}
	
	/**返回图象的高
	 */
	public int getImageHeight()
	{ 
		return this.imageHeight;
	}
	
	/**返回图象
	 */
	public Image getImage()
	{
		return image;
	}
	
	/**使用一个图象过滤器从图象中获取一个起点为(x,y),
	 * 宽为width,高为height的单元,返回该单元.
	 */	
	public Image extractCell(int x,int y,int width,int height)
	{		
		//得到图象源
		ImageProducer sourceProducer = image.getSource();
		
		Image cell = component.getToolkit().createImage(new FilteredImageSource
			(sourceProducer,new CropImageFilter(x,y,width,height)));
		
		MediaTracker mt = new MediaTracker(this.component);
		mt.addImage(cell,0);
		try
		{
			mt.waitForID(0);
		}
		catch(Exception e){e.printStackTrace();}
		
		buffer.getGraphics().drawImage(cell,0,0,component);
		return cell;
	}
	
	/**使用一个图象过滤器从图象中获取一个起点为(x,y),
	 * 宽为width,高为height的单元,
	 * 然后根据指定的宽度(sw)和高度(sh)对它进行缩放处理,
	 * 返回缩放后的单元.
	 */	
	public Image extractCellScaled(int x,int y,int width,int height,
								   int sw,int sh)
	{
		Image cell = this.extractCell(x,y,width,height);
		
		return cell.getScaledInstance(sw,sh,Image.SCALE_SMOOTH);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -