我使用 bufferedImage
在我的资源文件夹中加载纹理,如下所示:
我使用ImageLoader
类来加载图像
...
public static final BufferedImage images = loadImages("/images/images.jpg");
private static BufferedImage loadImages(String string) {
BufferedImage image = null;
try {
image = ImageIO.read(ImageLoader.class.getResourceAsStream(string));
} catch (Exception e) {
e.printStackTrace();
}
return image;
}
但是当我将其添加到我的一个对象时,例如:
...
graphic.drawImage(ImageLoader.images.getScaledInstance(200,200.java.awt.Image.SCALE_SMOOTH), (int) objects.get(i).getX() - objects.get(i).getWidth() / 2, (int) objects.get(i).getY()
- objects.get(i).getHeight() / 2, objects.get(i).getWidth(),objects.get(i).getHeight(), null);
它减慢了我的应用程序的速度,有一种更有效的方法来加载图像,更重要的是, 有办法防止应用程序变慢吗?
最佳答案
将缩放后的图像列表作为字段。当然,使用变量会更好:
// Field
List<Image> images = new ArrayList<>();
// Once, maybe in the constructor
... object = objects.get(i);
images.add(...);
然后仅在绘画方法中
graphic.drawImage(images.get(i), ...);
关于java - 添加纹理会减慢我的应用程序的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23715620/