Java-апплет падает при попытке обрезать картинку - PullRequest
0 голосов
/ 11 августа 2011

Я пытался нарезать большую картинку и использовать ее в качестве плитки для игры. У меня была программа, работающая с использованием 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;
   }
}

Я пытался «расширить JApplet / JFrame / JComponent» для класса Section, но, похоже, это не помогло.

Edit: я также хотел бы отметить, что если я просто верну mainImage из getSectionImage (), я получу изображение. Я думаю, что самая большая проблема - остальная часть этой функции ... но я не уверен, поэтому я включил все, что мне нужно было добавить при замене fillRect ().

1 Ответ

0 голосов
/ 15 августа 2011

Я нашел гораздо лучший способ обрезать это изображение.Вот как я это сделал:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...