绘制放大的图像

时间:2014-06-12 21:10:09

标签: java image-scaling

我目前正在做一个项目,要求我在屏幕上绘制大量(100+)图像。每幅图像的原始分辨率为20 * 20,我在绘制之前将它们与最近邻居缩放到80 * 80。

我目前使用AffineTransform在初始化程序时对其进行缩放,并在不同位置的每一帧重绘放大的图像。

看到目标帧速率约为60 fps,我需要找到一种更快地绘制它们的方法,最好不要将它们渲染为80 * 80位图。我尝试使用带有width和height参数的Graphics2D的drawImage方法,但它实际上减慢了我的程序。

在伪代码中:

Image image; //loaded from 20*20 png file

public void init(){
    image = resize(image, 80, 80);
}

public void repaint(Graphics g){
    g.drawImage(image, 0, 0, null);
}

我也尝试过:

Image image;

public void repaint(Graphics g){
    ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR);
    g.drawImage(image, 0, 0, 80, 80, null);
}

我的问题有解决方案吗?

1 个答案:

答案 0 :(得分:0)

有一个类似的问题:Load and Resize Image

以下是我的回答:Load and Resize Image

我希望我能提供帮助。