首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RenderScript本质高斯模糊

RenderScript本质高斯模糊
EN

Stack Overflow用户
提问于 2013-09-01 10:02:12
回答 2查看 3.3K关注 0票数 3

如何正确地使用RenderScript Intrinsics。

如图所示,http://android-developers.blogspot.com/2013/08/renderscript-intrinsics.html

代码语言:javascript
复制
//Assuming my original Bitmap is "bm"
Bitmap outputBitmap = Bitmap.createBitmap(bm.getHeight(),
bm.getWidth(), Config.ARGB_8888);

RenderScript rs = RenderScript.create(getApplicationContext());
ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur
.create(rs, Element.U8_4(rs));
Allocation tmpIn = Allocation.createFromBitmap(rs, bm);
Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap);
theIntrinsic.setRadius(25.f);
theIntrinsic.setInput(tmpIn);
theIntrinsic.forEach(tmpOut);
tmpOut.copyTo(outputBitmap);
bm.recycle();
rs.destroy

我在最初的布局中得到了outputBitmap的一些黑色区域,但是在用户滚动HorizontalScrollView的滚动辊之后,这些区域就会被填充,从而使可绘制的“刷新”本身。

我也得到了这个错误(如果有帮助的话):

代码语言:javascript
复制
09-01 05:54:11.246: E/RenderScript(11423): rsAssert failed: !mElements.size(), in frameworks/rs/rsElement.cpp at 375

任何有关正确使用遥感的建议都会有所帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-14 20:44:09

我认为问题在于你改变了高度和宽度参数的顺序。它应该是:

代码语言:javascript
复制
Bitmap outputBitmap = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), Config.ARGB_8888);
票数 6
EN

Stack Overflow用户

发布于 2013-09-03 17:43:46

我猜你对UI部件有一些问题,而不是RS部件。RS部件看起来很好;也许在RS比特完成后尝试一个outputBitmap.prepareToDraw()?

注意,一般来说,在这样的关键路径中创建和销毁RS上下文并不是一个好主意。根据必须分配的硬件资源,启动/拆卸成本可能很高,所以最好在启动时分配它,并在应用程序的生命周期中使用它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18557296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档