问题标签 [android-renderscript]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何从android中的根视图中删除模糊
我正在使用这个类来模糊我活动中根视图的背景:
在我的活动中,我有以下内容:
使用这种技术,我会根据模糊半径模糊我的活动的根视图。我该如何做相反的事情?我试图将 BLUR_RADIUS 设置为 0.1f,但它仍然不起作用。
请提供一些关于如何实现这一目标的解释。谢谢!
renderscript - 位图裁剪的渲染脚本
看起来 Android SDK 的 BitmapRegionDecoder 使用 Skia 来解码指定位图的一部分。在引擎盖下,它使用了适当的代码(jpeg、png 等)。我正在寻找使用 Renderscript 优化它的方法。
是否可以定义一个 Renderscript 内核函数来忽略输入分配中的某些数据并将其余数据保存在输出分配中?我是 Renderscript 的新手,大多数内核函数都倾向于处理整个输入数据集。
android - Renderscript:如何分配 uchar4 数组
在我的 Android 代码中,我保留了一组我想在我的渲染脚本代码中使用的颜色,如下所示:
所以基本上,如果像素是阵列中的一种颜色,则将其变为红色。问题是我正在努力分配像素数组。在 RS 我有:
在java中我有:
我读过你不能有超过 2 个分配。所以,我猜这是我的问题。所以,我想尝试以 uchar4* 的形式读取颜色,但我找不到如何执行此操作的示例。
java - 如何将此代码从 java 移动到 Renderscript
有人可以为我提供一些关于如何将此代码移植到渲染脚本以获得更好性能的指南。
android - 使用 RenderScript 创建 HSV 直方图
我必须在 Android 中使用 RenderScript 从 ARGB 数组创建 HSV 直方图。这是我第一次使用 RenderScript,我不确定我是否犯了错误,因为性能不是很好。从 1920x1080 位图创建 HSV 直方图需要 100 到 150 毫秒。
渲染脚本代码:
科特林代码:
我希望你能帮助我提高性能。您认为 HSV 直方图的创建可以在 20 毫秒左右完成吗?这是现实的吗?
android - 硬件信号处理器API?(用于额外的 Android 处理能力)
我知道移动 SoC 具有非常强大的 ISP 硬件(用于相机)和 DSP(用于音频?)。
有没有办法以编程方式访问它,用于您自己的计算(例如,输入数据不是来自相机)?这种事情在 GPU 上很常见。例如, OpenGL ES 3.1对它有一些支持;还有openCL。ISP / DSP有什么等价物吗?如果是这样,是否值得,或者仅对非常特定的情况有用?
PS:我好像想起了一个Android API,它本应统一所有硬件处理能力(CPU、GPU、DSP、ISP),但它没有起飞。编辑我认为那是RenderScript,用于“异构计算”(尽管不包括硬件信号处理器)。
android - RenderScript 错误地操作内核的输出
我正在尝试使用 Android 的 RenderScript 在图像后面渲染一个半透明的圆圈,但是当从 RenderScript 内核返回一个值时,事情变得非常错误。
这是我的内核:
现在,该rsPackColorTo8888()
函数采用 4 个浮点数,其值介于 0.0 和 1.0 之间。然后通过计算每个浮点值的 255 次来找到生成的 ARGB 颜色。所以给定的浮点数对应于颜色 R = 0.686 * 255 = 175, G = 0.686 * 255 = 175, B = 0.686 * 255 = 175 和 A = 0.561 * 255 = 143。
该rsPackColorTo8888()
函数本身可以正常工作,但是当uchar4
从内核返回找到的值时,会发生一些非常奇怪的事情。R、G 和 B 值分别更改为 Red * Alpha = 56、Green * Alpha = 56 和 Blue * Alpha = 56,其中 Alpha 为 0.561。这意味着 R、G 和 B 的任何值都不能大于 A = 0.561 * 255。
手动设置输出,而不是使用rsPackColorTo8888()
产生完全相同的行为。我的意思是下面的代码产生完全相同的结果,这反过来证明这rsPackColorTo8888()
不是问题:
这是调用脚本的 Java 代码:
当 alpha 设置为 255(或 1.0 作为浮点数)时,返回的颜色值(在我的应用程序的 Java 代码中)是正确的。
我做错了什么,还是这真的是 RenderScript 实现中的某个错误?
注意:我已经在 Oneplus 3T (Android 7.1.1)、Nexus 5 (Android 7.1.2)、Android 模拟器版本 7.1.2 和 6.0 上检查并验证了此行为
android - RenderScript:不匹配函数 rsGetElementAt_uchar4
我写了很短的 RS,但是在 gradle 同步之后 Android Studio 给了我错误
错误:(8, 34) 错误:没有匹配的函数调用 'rsGetElementAt_uchar4'
脚本:
在 build.gradle 中:
相同的代码,但使用 API 23 工作: