Skalieren Sie ein gepuffertes Bild auf die schnellste und einfachste Weise

Die Aufgabe: Ich habe einige Bilder, ich verkleinere sie und füge sie zu einem Bild zusammen. Ich habe aber ein kleines Problem mit der Umsetzung:

Das konkrete Problem: Ich möchte ein BufferedImage skalieren. Die getScaledInstance-Methode gibt ein Image-Objekt zurück, ich kann es jedoch nicht in BufferedImage umwandeln:

Exception in thread "main" java.lang.ClassCastException: sun.awt.image.ToolkitImage cannot be cast to java.awt.image.BufferedImage

(Ich weiß nicht, warum es ein ToolkitImage anstelle eines Bildes ist ...)

Ich habe eine Lösung gefunden:

Image tmp = bi.getScaledInstance(SMALL_SIZE, SMALL_SIZE, BufferedImage.SCALE_FAST);
BufferedImage buffered = new BufferedImage(SMALL_SIZE,SMALL_SIZE,BufferedImage.TYPE_INT_RGB);
buffered.getGraphics().drawImage(tmp, 0, 0, null);

Aber es ist langsam und ich denke, es sollte einen besseren Weg geben, dies zu tun.

Ich brauche das BufferedImage, weil ich die Pixel bekommen muss, um die kleinen Bilder zusammenzufügen.

Gibt es eine bessere (schönere / schnellere) Möglichkeit, dies zu tun?

BEARBEITEN: Wenn ich das Image zuerst in ToolkitImage umwandle, hat es eine getBufferedImage () -Methode. Es wird aber immer null zurückgegeben. Weißt du, warum?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage