Mam taki problem, napisalem funckje ktora pobiera obraz, obraca go o wskazany kat i zapisuje do tablicy Image[][], przy stosunkowo niewielkiej ilosci obrazów wszystko jest oki, ale gdy dam duża mape (gdyż potrzebuję to do napisanai kafelkowania mapy w grze 2d) to wywala taki komunikat:
java.lang.OutOfMemoryError: Java heap space
A oto ma metoda:
public BufferedImage odwroc_obraz(int kat, String nazwa) throws IOException
{
BufferedImage bufor_obrazu=null;
Image obraz = wczytaj_obraz(nazwa);
AffineTransform zmien = new AffineTransform();
zmien.rotate(Math.toRadians(kat),WIELKOSC_KAFLA/2,WIELKOSC_KAFLA/2);
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
try
{
GraphicsDevice gs = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gs.getDefaultConfiguration();
bufor_obrazu = gc.createCompatibleImage(obraz.getWidth(null), obraz.getHeight(null));
}
catch (HeadlessException e) {}
Graphics2D gg = bufor_obrazu.createGraphics ();
gg.transform(zmien);
gg.drawImage ( obraz, 0 , 0 , null ) ;
gg.dispose();
return bufor_obrazu;
}
public Image wczytaj_obraz(String nazwa)
{
return new ImageIcon("grafika/"+nazwa).getImage();
}
W jaki sposób mogę ja poprawić, żeby ten komunikat się nie wyswietlał?:>