Android RenderScript高斯模糊
看代碼的時候,看到了其中有.rs結(jié)尾的文件,不是很明白,還有RenderScript類,看的一臉蒙蔽,不知所云,然后百度了一下,收貨還真不少,這東西在圖形處理這塊用處挺大的。
今天先說說ScriptIntrinsicBlur,這個類不需要定義rs文件,從這個Intrinsic單詞可以看的出來,它是API17以后內(nèi)置的類,專門用來處理圖像的,讓圖片變模糊。
public static Bitmap blurBitmap(Bitmap bitmap, float radius, Context context) {
//創(chuàng)建渲染腳本上下文
RenderScript rs = RenderScript.create(context);
//為位圖分配內(nèi)存
Allocation allocation = Allocation.createFromBitmap(rs, bitmap);
Type t = allocation.getType();
//用同樣的類型創(chuàng)建內(nèi)存,一般用這兩種方式創(chuàng)建 <span style="font-family: Arial, Helvetica, sans-serif;">Allocation</span>
Allocation blurredAllocation = Allocation.createTyped(rs, t);
//創(chuàng)建高斯渲染腳本
ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
//設(shè)置模糊半徑 (maximum 25.0)
blurScript.setRadius(radius);
//為腳本設(shè)置輸入?yún)?shù)
blurScript.setInput(allocation);
//調(diào)用腳本 結(jié)果存入 <span style="font-family: Arial, Helvetica, sans-serif;">blurredAllocation中</span>
blurScript.forEach(blurredAllocation);
//把腳本結(jié)果存入位圖中 因為為native層渲染,所以結(jié)果需要復(fù)制到上層
blurredAllocation.copyTo(bitmap);
//Destroy everything to free memory
allocation.destroy();
blurredAllocation.destroy();
blurScript.destroy();
t.destroy();
return bitmap;
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
React-Native之Android(6.0及以上)權(quán)限申請詳解
這篇文章主要介紹了React-Native之Android(6.0及以上)權(quán)限申請詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
使用Fragment+ViewPager實現(xiàn)底部導(dǎo)航欄
這篇文章主要為大家詳細介紹了使用Fragment+ViewPager實現(xiàn)底部導(dǎo)航欄,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06
Ubutu1604安裝colmap實現(xiàn)方法詳細教程
這篇文章主要介紹了Ubutu1604安裝colmap實現(xiàn)方法詳細教程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11
Android實現(xiàn)Recycleview懸浮粘性頭部外加右側(cè)字母導(dǎo)航
這篇文章主要為大家詳細介紹了Android實現(xiàn)Recycleview懸浮粘性頭部外加右側(cè)字母導(dǎo)航,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06

