多くの 2D 変換とシェイプ レンダリングを行う高速なイメージ ジェネレーターを作成しようとしているので、BufferedImage を使用してから、Graphics2D オブジェクトを取得してすべての描画を実行しようとしています。私の主な関心事は、作成が非常に高速であるため、次のような BufferedImage を作成することです。
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsConfiguration gc = ge.getDefaultScreenDevice().getDefaultConfiguration();
BufferedImage bImage = gc.createCompatibleImage(width, height, Transparency.TRANSLUCENT);
Graphics2D graphics = bImage.createGraphics();
しかし、もしそうなら:
System.out.println(bImage.getCapabilities(gc).isAccelerated());
-Dsun.java2d.opengl=True で JVM を起動しても、出力は常にfalseで、次の行が出力されます。
OpenGL pipeline enabled for default config on screen 0
最終的に ImageIO.write(bImage, "PNG", file); で PNG ファイルに保存したいので、BufferedImage を実行しています。
高速化されていると言う VolatileImage を作成できますが、保存しようとすると ImageIO が気に入らず、そのイメージを RenderedImage にキャストできないと言います。ディスクに保存できる高速化されたイメージを取得する方法についてのアイデアはありますか? また、画像が非常に大きく、メモリ不足の問題が発生するため、保存するために VolatileImage と BufferedImage へのコピーを作成したくありません...