我正在使用 Java Canvas 并且有一个绘图方法,该方法每秒调用大约 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();
}