私は以前にこの質問をしましたが、いくつかのポイントを言い換え/明確にして、それを拡張したいと思いました。AffineTransformを使用してBufferedImageを変換するコードがあります。
op = new AffineTransformOp(atx, interactive ? interpolationInteractive : interpolationNormal);
displayImage = op.filter(displayImage, null);
このコードは正常に機能しますが、メモリが蓄積されます。具体的には、このコードが呼び出されるたびに、より多くのメモリが蓄積されます。他の形式のフィルターも試しました。
op = new AffineTransformOp(atx, interactive ? interpolationInteractive : interpolationNormal);
displayImage2 = op.createCompatibleDestImage(displayImage, displayImage.getColorModel());
op.filter(displayImage, displayImage2);
ただし、これは最初のバージョンよりもはるかに低速です。最初のバージョンの速度と2番目のバージョンのメモリ使用量が必要です。
- 最初のバージョンの後でクリーンアップするにはどうすればよいですか?具体的には、中間のBufferedImagesはどこに保存され、どのように削除できますか?
- 2番目のバージョンが最初のバージョンより遅いのはなぜですか?それをスピードアップするために私は何ができますか?
ご協力いただきありがとうございます!!!