imageloader.java
来自「java learn PPT java learn PPT java learn」· Java 代码 · 共 93 行
JAVA
93 行
import java.awt.*;
import java.awt.image.*;
import java.util.*;
public class ImageLoader extends Object
{
// 加载并浏览加载图像的Applet
protected Frame frame;
// 一个Image,以及它的宽和高
protected Image image;
protected int imageWidth;
protected int imageHeight;
// 缓冲区,用于在图像加载后立即绘制它们
protected static BufferedImage buffer = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB);
public ImageLoader(
Frame a, // 创建并浏览所加载的图像
String filename, // 从磁盘上加载的图像名
boolean wait // 如果为true,则添加到一个MediaTracker对象并等待加载
)
{
frame = a;
image = frame.getToolkit().getImage(filename);
if(wait)
{
// 为这个图像创建一个新的MediaTracker对象
MediaTracker mt = new MediaTracker(frame);
// 加载图像条
mt.addImage(image, 0);
try
{
// 等待加载主图像
mt.waitForID(0);
}
catch(InterruptedException e) { /* 什么也不做 */ }
}
// 得到图像的宽和高
imageWidth = image.getWidth(frame);
imageHeight = image.getHeight(frame);
}
public int getImageWidth()
{
return imageWidth;
}
public int getImageHeight()
{
return imageHeight;
}
public Image getImage()
{
return image;
}
// 使用一个图像过滤器从图像中获取一个单元
public Image extractCell(int x, int y, int width, int height)
{
// 得到主图像的 ImageProducer 源
ImageProducer sourceProducer = image.getSource();
Image cell = frame.createImage(new FilteredImageSource(sourceProducer,
new CropImageFilter(x, y, width, height)));
// 把这个单元绘制到屏外缓冲上
buffer.getGraphics().drawImage(cell, 0, 0, frame);
return cell;
}
// 从图像中获取一个单元并根据指定的宽度和高度对它进行缩放处理
public Image extractCellScaled(int x, int y, int width, int height, int sw, int sh)
{
// 从主图片中得到ImageProducer源
ImageProducer sourceProducer = image.getSource();
Image cell = frame.createImage(new FilteredImageSource(sourceProducer,
new CropImageFilter(x, y, width, height)));
// 把单元绘制到屏外缓冲中
buffer.getGraphics().drawImage(cell, 0, 0, frame);
return cell.getScaledInstance(sw, sh, Image.SCALE_SMOOTH);
}
} // ImageLoader
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?