Java Canvas Buffered图像的更好性能

时间:2014-05-31 14:08:22

标签: java canvas buffer bufferstrategy

我正在使用Java Canvas并且有一个draw方法,每秒调用大约20次。它遍历一系列图像并根据窗口大小绘制scaledInstance:

g.drawImage(img.getScaledInstance(
                (short)Math.round(rect.width * yVector),
                (short)Math.round(rect.height * yVector),
                Image.SCALE_SMOOTH),
        (short)Math.round(rect.x * xVector),
        (short)Math.round(rect.y * yVector), null);

表现真的很糟糕。我正在使用缓冲策略,这就是声明BufferedImage图像的方式:

try {
    image = ImageIO.read(new File("resources/drawable/" + src));
    img = (BufferedImage)image.getImage();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

1 个答案:

答案 0 :(得分:0)

性能问题来自getScaledInstance。它将图像缩放20次/秒,这不符合要求。我们的应用程序现在已经固定位置和大小,但运行速度非常稳定,fps率很高。