2016-10-21 8 views
1

ScriptIntrinsicBlurを使用して、実際に1つのソリッドカラーで満たされたビットマップの1つをぼかしました。しかし、私が得るぼかし効果は本当に不都合です。親切に下の画像をチェックしてください。白い部分は実際にはぼかしたビットマップです。ビットマップは実際にはウィンドウ全体を単色で塗りつぶします。以下ScriptIntrinsicBlurは不適切なぼかしを生成します。

enter image description here

ぼけをコードすることができるです。

static Bitmap blurBackground(Context context, int color, int width, int height){ 
    Log.d("AppLock","RENDER DONE in " + System.currentTimeMillis()); 

    Bitmap bitmap = Bitmap.createBitmap(200,200, Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(bitmap); 
    canvas.drawColor(color); 
    canvas.save(); 

    Bitmap blurredBitmap = bitmap.copy(Bitmap.Config.ARGB_8888,true); 
    RenderScript renderScript = RenderScript.create(context); 

    Allocation inputAllocation = Allocation.createFromBitmap(renderScript,blurredBitmap, Allocation.MipmapControl.MIPMAP_FULL 
      ,     Allocation.USAGE_SHARED); 
    Allocation outputAllocation = Allocation.createTyped(renderScript,inputAllocation.getType()); 

    ScriptIntrinsicBlur bluerScript = ScriptIntrinsicBlur.create(renderScript,Element.A_8(renderScript)); 
    bluerScript.setInput(inputAllocation); 
    bluerScript.setRadius(15f); 
    bluerScript.forEach(outputAllocation); 
    outputAllocation.copyTo(blurredBitmap); 
    bitmap.recycle(); 
    renderScript.destroy(); 
    Log.d("AppLock","RENDER DONE in " + System.currentTimeMillis()); 
    return blurredBitmap; 

} 

私はここに、多数の柱に見ているこちらLink To Tutorial

からチュートリアルを追っていると私はARGB_8888のためのレンダリングスクリプトを使用する必要があることを承知しています。また、ElementをElement.U8_4()に変更しようとしました。しかし、それは200x200ピクセルのビットマップを返して、実際にはウィンドウ全体を塗りつぶすだけです。私は何が間違っているのか分かりません。ヘルプは高く評価されるだろう。

+0

私は理解していません。ソリッドカラーをぼかすと、ソリッドカラーが得られます。何がポイント?私は何かを誤解していますか? –

+0

@Saehun Sean Ohあまりにもぼやけがどのように作用するのか分かりません。私はリンクの画像から同様の効果を達成したいと思います。 http://imgur.com/5hxYziV –

答えて

1

私があなたが指しているのは、単色をぼかすだけでなく、背景を薄暗くすることと背景をぼかすことです。このチュートリアル以下

試してみてください。http://allegro.tech/2015/08/android-fogger.html

または右のライブラリに移動:https://github.com/allegro/fogger

+0

リンクをありがとう。これは私によく見える。 –

+0

ここに詳しいコードを入れてくれないのは残念です。私はこのライブラリを一度も使ったことがないので、これがどのくらい正確に機能するかは分かりません。これはうれしかったです。 時間がある場合、リンクが何とか破壊されても、あなたのコードを回答として親切に投稿できますか?回答には良い練習がありますが、私はatm lolを使っています –

+0

一度やり直してください。図書館はよく見えます。リンクありがとう –

関連する問題