Ich habe ein Bild. Ich muss eine exakte Kopie davon erstellen und sie in BufferedImage speichern, aber es gibt keine Image.clone(). Die Sache sollte innerhalb einer Berechnungsschleife sein und daher sollte es wirklich schnell sein, kein Pixel-für-Pixel-Kopieren. Was ist die beste Methode, um dies zu tun?
Antworten
Zu viele Anzeigen?Sie können auf ein gepuffertes Bild zeichnen, also machen Sie ein leeres gepuffertesBild erstellen Sie daraus einen Grafikkontext, in den Sie Ihr Originalbild einzeichnen.
BufferedImage copyOfImage =
new BufferedImage(widthOfImage, heightOfImage, BufferedImage.TYPE_INT_RGB);
Graphics g = copyOfImage.createGraphics();
g.drawImage(originalImage, 0, 0, null);
Angelo Alvisi
Punkte
490
phil294
Punkte
9218
Image clone = original.getScaledInstance(original.getWidth(), -1, Image.SCALE_DEFAULT);
Das ist vielleicht nicht sehr schön, aber getScaledInstance
gibt, wie der Name schon sagt, eine Instanz Ihrer ursprünglichen Image
Objekt. Wird normalerweise nur zur Größenänderung verwendet. -1
teilt der Methode mit, dass das Seitenverhältnis beibehalten werden soll
Adan Vivero
Punkte
523