2011-07-27 17 views
1

私はJAIライブラリを使用して、それぞれ約1300x1000サイズの一連の画像の調整を行っています。私は "Rescale"でピクセルの強度を調整し、TiledImage.createGraphics()メソッドからGraphics2Dオブジェクトでテキストとラインを追加します。次に、 "subsampleaverage"で画面に合わせてイメージのサイズを変更し、Graphics2D.drawRenderedImage()で画面にレンダリングします。この時点までは、スローダウンはほとんどなく、レンダリングには約40〜60ミリ秒かかります。JAI画像調整のボトルネック

ただし、テキストと行だけを追加すると、ディスプレイは100〜200ミリ秒に減速します。なぜピクセル強度を調整する前または後にテキストを追加するといいのでしょうか、わかりません。

私はサイトを通して検索してきましたが、具体的な答えが見つからないようです。多くの提案はBufferedImagesを使用することでしたが、PlanarImagesからBufferedImagesに変換することは減速の問題もあるようです。

+0

この問題を抱える人は誰でも、JOGLを使って表示とサイズ変更を行うことをお勧めします。 JAIとJOGLを手にした後、私は減速の問題のほとんどを修正することができました。 – ddukki

答えて

1

明らかに、テキストはまだJavaでは非常にゆっくりとレンダリングされています。各Fontオブジェクトのグリフは、Graphicsオブジェクトにレンダリングされ、塗りつぶされなければなりません。オブジェクト上に多くのテキストがあると、オブジェクトがすべて使用済みのGlyphsとともに再作成され、大幅に減速します。

JOGLを使用しても、大幅に減速します。しかし、同じTextRendererオブジェクトを使用すると、単一のFontオブジェクトを作成し、TextRendererが存続している限り、そのオブジェクトを再利用することでこれを軽減できます。もちろん、JOGLはまだsetFont関数を実装していないので、新しいフォント、フォントスタイル、フォントウェイトごとに新しいTextRendererオブジェクトを作成する必要があるため、複数のFontオブジェクトを使用することができません。

これは、同様の問題を抱えている人に役立ちます。

関連する問題