fehler beim Image skalieren

Von: , Frage gestellt am Mi, 27. Mär 2002

Hi,

ich habe ein Programm in dem ich Bilder skalieren muß. Dabei rufe ich eine Methode die dieses übernimmt zwei mal hintereinander auf. Dabei entsteht immer bei einem dieser Bilder ein Fehler in der darstellung, das heißt ein Bild hat immer merkwürdige Streifen. Wenn ich die Funktion nur einmal aufrufe geht es gut. Auch wenn ich ein Thread.sleep() zwischen den beiden Aufrufen mache sind beide Bilder OK. Aber ich will das Programm nicht unnötg verzögern (unprofessionel). Kann mir da jemand helfen?

hier die Methode:

public Image getMedSizedImg(double size, Image img)
{
double factor = 0.0;
MediaTracker mt = new MediaTracker(this);

factor = size / img.getWidth(null);
img = img.getScaledInstance((int)size, (int)(factor*img.getHeight(null)), Image.SCALE_SMOOTH);
mt.addImage(img, 0);
try
{
mt.waitForID(0);
} catch (Exception e){}
mt.removeImage(img, 0);
return img;
}

(das Bild als Parameter wird vorher mit einem MediaTracker geladen)

Vielen Dank!

1 Antworten zu dieser Frage

  1. Antwort von nach 18 Tagen 0 hilfreich
    Re: fehler beim Image skalieren

    Hi,

    ich habe ein Programm in dem ich Bilder skalieren muß. Dabei
    rufe ich eine Methode die dieses übernimmt zwei mal
    hintereinander auf. Dabei entsteht immer bei einem dieser
    Bilder ein Fehler in der darstellung, das heißt ein Bild hat
    immer merkwürdige Streifen.
    Das klingt sehr nach multi-theard-Probleme. Versuch beide Image-Objekte gleichzeitg in einen Mediatracker zu stoffen (alle Bilder rein, vorm repaint() ein waitForAll()), oder zumindest keine 2 Mediatracker von einem Object zu erzeugen.

    Ausserdem must du aufpassen dass die Methode in keinem Fall im paint-Thread abläuft. Der Mediatracker arbeitet in dem Thread nicht immer richtig.

    cu

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!