📄 imageloader.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 + -