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