Wie kann ich eine hardware-beschleunigte Bild mit Java2D?

Ich bin versuchen, um eine schnelle Bild-generator, der nicht viel von 2d Transformationen und shape-rendering, so dass ich versuche, ein BufferedImage und dann erwerben die Graphics2D-Objekt, um alle meine Zeichnung. Meine größte Sorge ist jetzt zu machen ist wirklich schnell, also ich erstelle ein BufferedImage wie diese:

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsConfiguration gc = ge.getDefaultScreenDevice().getDefaultConfiguration();
BufferedImage bImage = gc.createCompatibleImage(width, height, Transparency.TRANSLUCENT);
Graphics2D graphics = bImage.createGraphics();

Allerdings, wenn ich tun:

System.out.println(bImage.getCapabilities(gc).isAccelerated());

Ist die Ausgabe immer false, auch wenn ich die starte die JVM mit dem -Dsun.java2d.opengl=True, druckt die Zeile:

OpenGL pipeline enabled for default config on screen 0

Mache ich ein BufferedImage, denn am Ende will ich, um es zu speichern eine PNG-Datei mit ImageIO.schreiben(abbild zu Formen, "PNG", Datei);

Kann ich ein VolatileImage, die sagen, dass es beschleunigt wird, aber ImageIO mag es nicht, wenn Sie versuchen, zu speichern, zu sagen, dass das Bild nicht gegossen werden, um RenderedImage. Irgendwelche Ideen auf, wie man ein beschleunigtes Bild, das gespeichert werden kann, auf der Festplatte? Ich möchte auch nicht zu schaffen ein VolatileImage und die Kopie in ein BufferedImage zu speichern, da meine Bilder wirklich groß und ich laufen werde, in out-of-memory-Probleme...

  • Welche Java-version verwenden Sie?
  • Ich bin mit Java6 mit dem Sun JDK
  • Kann ich empfehlen, dass Sie implementieren Sie den code, und dann die Zeit, sobald der code ist vorhanden? Auf diese Weise arbeiten Sie heraus, ob es genug Abkühlung zu rechtfertigen versuchen, Sie zu beschleunigen.
InformationsquelleAutor Paulo Lopes | 2010-03-03
Schreibe einen Kommentar