Frage

Ich habe eine gepufferte Ausführung mit einem Indexcolormodel. Ich muss dieses Bild auf dem Bildschirm malen, aber ich habe festgestellt, dass dies bei Verwendung eines Indexcolormodells langsam ist. Wenn ich jedoch die Pufferedimage durch eine Identitäts -affine -Transformation durchführe, erzeugt es ein Bild mit einem DirectColormodel und das Gemälde ist erheblich schneller. Hier ist der Code, den ich benutze

AffineTransformOp identityOp = new AffineTransformOp(new AffineTransform(), AffineTransformOp.TYPE_BILINEAR);
displayImage = identityOp.filter(displayImage, null);

Ich habe drei Fragen
1. Warum ist das Malen des Langsamen auf einem Indexcolormodel?
2. Gibt es eine Möglichkeit, das Gemälde eines Indexcolormodells zu beschleunigen?
3. Wenn die Antwort auf 2. Nein ist, ist dies der effizienteste Weg, um von einem Indexcolormodel in ein DirectColormodel zu konvertieren? Ich habe festgestellt, dass diese Konvertierung von der Bildgröße abhängt, und ich möchte diese Abhängigkeit entfernen.

Danke für die Hilfe

War es hilfreich?

Lösung

Das ist zu lang für einen Kommentar ...

Sind Sie sicher, dass die Gepuffert Sie erstellen sind die besten, abhängig vom Betriebssystem, auf dem Sie sich befinden? Du solltest stets Erstellen Sie eine "kompatible" Bufferedimage. Das schnellste bei beispielsweise Windows kann sein TYPE_INT_ARGB Dies gilt jedoch nicht auf OS X und umgekehrt.

So etwas (autsch, das Gesetz des Demeters tut weh;):

GraphicsEnvironment
        .getLocalGraphicsEnvironment()
        .getDefaultScreenDevice()
        .getDefaultConfiguration()
        .createCompatibleImage(width, height,Transparency.TRANSLUCENT)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top