Zoom In Zoom Out Funktion

Status
Nicht offen für weitere Antworten.
Hallo zusammen !

Habe bislang alle Beiträge zu solchen Funktionen im Forum durchgelesen, jedoch ohne Erfolg.

Zum Programm: Kartendarstellungsprogramm in welches Komponenten gezeichnet werden können mit einer Zoom In Zoom Out Funktion via MausScrollRad (alla google earth, ja, ich weiß, dass will jetzt jeder so machen)

Habe dass Problem, dass die Performance in den Keller sinkt wenn ich ein Bild größer 1MB öffne und als Image in mein Prog lade. Dummerweise sind die Orginaldaten für die Kartendarstellung teilweise 15MB groß.

Ein unspektakulärer Auschnitt aus der Klasse DrawMap:

Code:
package Draw;

import java.io.File;
import java.awt.Image;
import javax.imageio.ImageIO;
import java.awt.Graphics2D;

public class DrawMap
{
    private Image mapImage;

    public DrawMap()
    {
        this.mapImage = null;
    }

    public void setMapImage(File mapFile)
    {
        try
        {
            this.mapImage = ImageIO.read(mapFile);  
        }
        catch(Exception i)
        {
            i.printStackTrace();
        }
    }

    public void drawMapToPanel(Graphics2D graphics2D)
    {
        mapImage = mapImage.getScaledInstance(1280,1024,Image.SCALE_AREA_AVERAGING );
        graphics2D.drawImage(mapImage,0,0,null);
    }
}

Selbst dass laden dieser Datei dauert schon Arsch lange.
Wenn ich nun über eine weitere Funktion, welche am MouseWheelAdapter hängt,
einen Zoom über getScaledInstance ausführe, hängt der ganze Rechner und es dauert ca. 15 Sekunden bis es in die Karte rein/raus zoomt, was natürlich Bullshit ist.

Wie löst man das Problem am geschicktesten ? J3D ? VolatileImage ?
Hat irgendjemand einen fetzen Code den er hier posten könnte/möchte wie das ganze evtl. zu lösen ist ?

Vielen Dank,
Ciao,
Mister Mijagi :###
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben