我使用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);
它减慢了 很多我的应用 ,有一种方法可以更有效地加载图像,而且更有意义, 有没有办法防止应用程序放缓?
答案 0 :(得分:3)
将缩放图像列表作为字段。当然,使用变量会更好:
// Field
List<Image> images = new ArrayList<>();
// Once, maybe in the constructor
... object = objects.get(i);
images.add(...);
然后只在绘画方法
graphic.drawImage(images.get(i), ...);