首页 > 解决方案 > Java SubImage 未完全获取每个图像

问题描述

我正在制作一个游戏,我最近带来了一个尺寸为 576 × 528 的精灵表。我不能在这里展示或发布它,因为它不是公共领域或任何合法的胡言乱语。但是,我希望在每张图像中拍摄 16x16 的图像中的所有微小图像。代码编译没有任何错误,这不是我的问题。我的主要问题是,当我遍历“Sprites”数组并获取存储在每个 Tile 对象中的每个 BufferedImage 并将其写入文件夹时,我只能得到不到一半的图像。我进行了进一步的调试,发现数组中的一些图块为空,这就是为什么它们没有被写出,但我似乎无法弄清楚为什么。

     public class Sprites {
        public SpriteSheet(String path) {

  int cellSize = 16;
  BufferedImage fullSheet = GameUtils.getImg(path);
  sprites = new Tile[(fullSheet.getHeight()/cellSize)*(fullSheet.getWidth()/cellSize)];
  System.out.println(fullSheet.getWidth());
  int r,c;
  BufferedImage img;

  for(r = 0; r < 33; r++)
     for(c = 0; c < 36; c++) {
        img = org.getSubimage(c*cellSize,r*cellSize,cellSize,cellSize);
        sprites[r*cellSize+c] = new Tile(img);
         }
     }

标签: javabufferedimage

解决方案


推荐阅读