【问题标题】:Adding a texture slow down my application添加纹理会减慢我的应用程序
【发布时间】:2014-05-17 20:09:07
【问题描述】:

我使用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);

它会减慢 我的应用程序很多,有一种方法可以更有效地加载图像,而且更重要的是, 有没有办法防止应用程序变慢?

【问题讨论】:

    标签: java image bufferedimage image-scaling


    【解决方案1】:

    将缩放后的图像列表作为字段。当然,使用变量会更好:

    // Field
    List<Image> images = new ArrayList<>();
    
    // Once, maybe in the constructor
    ... object = objects.get(i);
    images.add(...);
    

    那么只在画法中

    graphic.drawImage(images.get(i), ...);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 2012-01-17
      • 2013-01-20
      • 1970-01-01
      相关资源
      最近更新 更多