- 締切済み
windowsのDIBみたいな
javaでwindowsのDIBみたいな描画はできないでしょうか。高速なメモリイメージの描画方法を教えて下さい。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- unibon
- ベストアンサー率47% (160/340)
回答No.2
たんに、扱う画像が大きいから余計にメモリーが要るだけ、ということなのかもしれません。(そして、コーディングにメモリーリーク的な軽微なバグがあると、よりたくさんのメモリーが必要になる、ということかもしれません。) Java の起動時のオプションで最大ヒープメモリーを指定できますが、多めにしてもダメでしょうか?たとえば、クラスが Hoge の場合、 java -Xmx512m Hoge のように指定します。上記は最大 512MB を使えるような指定です。なにも指定しないとデフォルトは 64MB です。
- unibon
- ベストアンサー率47% (160/340)
回答No.1
「windowsのDIBみたいな」という意味がイマイチ分からないのですが、通常の drawImage ではダメなのでしょうか? Image の構築(Image へのピクセル等のセット)のことを問題とされているのでしょうか?それとも構築済みの Image の表示(Graphics への転送)のことを問題とされているのでしょうか? ちなみに JDK のインストール時にサンプルも含めてインストールすると、JDK のフォルダーの中に、 demo\jfc\Java2D というフォルダーがあり、その中に画像関係のサンプルプログラムがあります。これよりも高機能なことをやりたいということでしょうか?
お礼
demoがある事に気づきませんでした、ありがとうございます。 見てみましたが、大きいイメージでも500*400くらいかと思います。それくらいの大きさなら動くんです。500*500くらい以上のイメージを、createImageとdrawImageでアニメーションさせようとすると、数回に一回程度drawImageが遅くなり動きがカクカクしてしまいます。createImageをしなければdrawImageは遅くならないので、カクカク解消のため、配列データをそのまま描画する方法があれば...と「windowsのDIBみたいな」はそういう意味です。 BufferedImageも一応試した事はあるのですが、createImageの方が速いような気がします。