RenderScript實(shí)現(xiàn)圖片模糊

注意:ScriptIntrinsicBlur的相關(guān)方法只支持API 17及以上版本的系統(tǒng),為了兼容舊版本,Google 提供了android.support.v8.renderscript兼容包。android.support.v8.renderscript兼容包的使用不需要在app/build.gradle文件中額外添加依賴,而是在defaultConfig配置中添加如下兩行代碼:

defaultConfig {
    ......
    renderscriptTargetApi 19
    renderscriptSupportModeEnabled  true
}

模糊方法:

public Bitmap blurBitmap(Bitmap bitmap){
        
    //Let's create an empty bitmap with the same size of the bitmap we want to blur
    Bitmap outBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);
        
    //Instantiate a new Renderscript
    RenderScript rs = RenderScript.create(getApplicationContext());
        
    //Create an Intrinsic Blur Script using the Renderscript
    ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
        
    //Create the Allocations (in/out) with the Renderscript and the in/out bitmaps
    Allocation allIn = Allocation.createFromBitmap(rs, bitmap);
    Allocation allOut = Allocation.createFromBitmap(rs, outBitmap);
        
    //Set the radius of the blur: 0 < radius <= 25
    blurScript.setRadius(25.0f);
        
    //Perform the Renderscript
    blurScript.setInput(allIn);
    blurScript.forEach(allOut);
        
    //Copy the final bitmap created by the out Allocation to the outBitmap
    allOut.copyTo(outBitmap);
        
    //recycle the original bitmap
    bitmap.recycle();
        
    //After finishing everything, we destroy the Renderscript.
    rs.destroy();
        
    return outBitmap;   
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容