2017-07-18 22 views
-1

私はJavaで作業していますが、私は黒からぼやけた画像を表示しようとしています。黒から画像をフェードアウトする

現在、私は2枚の画像を重ねて表示しています。表示する画像と、ループでアルファを徐々に小さくするJFrameのサイズの黒い画像です。

この方法は審美的に満足できず、変更するのが難しいです。 Javaに組み込みの方法があり、この効果を得るために、多分より多くのコントロールを持つことができますか?

+1

は、1)投稿、あなたが現在オンライン情報源から入手した画像を使用して、これをやっているどのように私たちを見るのオフセット値がわからないあなたの友達ですあなたの質問に[mcve]コード、2)あなたの現在のコードの動作がうまくいかないことを詳しく説明してください。 –

+0

[その一例](https://stackoverflow.com/questions/20346661/java-fade-in-and-out-of-images/20347600#20347600) - クロスフェードしている間、基本原則はそのままです – MadProgrammer

答えて

0

RescaleOpは、あなたが、のような何かを試すことができ、より良い回答については

while (scale <0.8){ 
    float scale = 0.2f; 
    float offset = 15f; 
    RescaleOp rescaleOp = new RescaleOp(scale, offset, null); 
    rescaleOp.filter(imageOriginal, imageDark); 
    scale = scale+0.2; 
    some code for paint and delay 
} 
at last paint imageOriginal 
+4

GUIのイベントループがフリーズする危険性があります。これはSwingなので、SwingTimerを使うべきです。 –

+0

多くの方法がありますが、私の見解では、リサイズのために別のスレッドを用意しています。これは、invokelaterをrepaint用に呼び出します。これにより、新しいイメージを計算し、allready calcedを一度に描画できます。処理時間を描画時間と同期させる必要がある場合は、たとえば、メモリ使用量を減らす(2ではなく1つのバッファ)ように呼び出す必要があります。とにかくスレッドでタスクを処理する方法は彼の選択肢ですが、rescaleopはフェードインの方法です:-) –

関連する問題