当我尝试裁剪图片时,Java applet崩溃了

时间:2011-08-11 17:39:26

标签: java applet

我一直在尝试砍掉更大的图片并将其用作游戏的瓷砖。我让程序使用fillRect()来模拟图像。但是,当我替换fillRect代码时,它崩溃了。这是我一直在使用的:

buffer.drawImage(section[i][j].getSectionImage(i, j),
  sectionSize * i + OFFSETx,
  sectionSize * j + OFFSETy,
  this);

public class Section{
   private static ImageIcon ii;
   private static Image mainImage;
   private Image sectionImage;

   public Section(){
      if (ii == null){
         ii = new ImageIcon(this.getClass().getResource("images/Mossy_rocks.png"));
         mainImage = ii.getImage();
      }
   }
   public Image getSectionImage(int x, int y){
      sectionImage = createImage(new FilteredImageSource(mainImage.getSource(), 
         new CropImageFilter(1,1,20,20))); //test values
         return sectionImage;
   }
}

我为Section Class尝试了“扩展JApplet / JFrame / JComponent”,但它似乎没有帮助。

编辑:我还想提一下,如果我只是从getSectionImage()返回mainImage,我会得到图片。我认为最大的问题是该函数的其余部分...但我不确定,所以我在替换fillRect()时包含了我需要添加的所有内容。

1 个答案:

答案 0 :(得分:0)

我找到了一种更好的裁剪方法。我是这样做的:

screenImage.drawImage(Image sprite,
                 int (x position on screen),
                 int (y position on screen),
                 int (x position on screen + width),
                 int (y position on screen + height),
                 int (x position from sprite),
                 int (y position from sprite),
                 int (x position from sprite + width),
                 int (y position from sprite + height),
                 null);