java - 添加纹理会减慢我的应用程序的速度

标签 java image bufferedimage image-scaling

我使用 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/

相关文章:

java - 这会被定义为堆排序的一种形式吗?

jquery - CSS border-image 负偏移(无 HTML 版本)

java - 如何以编程方式将照片上传到图像托管服务器?

java - BufferedImage 与 VolatileImage 的当前状态

java - 当我在 tomcat 的 web.xml 中的过滤器之前配置一个 servlet 时会发生什么?

java - Spring MVC 基于注释的配置不起作用

Java BufferedImage 序列化

java - 如何在java中像MATLAB imread()一样读取图像?

java - 如何取消选择RadioButton,以便所有选项1、2、3可以再次清除

java - java游戏中绘制图像,出现空指针异常