问题标签 [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.

0 投票
2 回答
3150 浏览

android - 如何在 Android 中与 OpenGL 共享 Renderscript 分配

我有一个渲染脚本,它处理在输出中提供给分配的图像。我想在我的 OpenGL 程序中将此分配用作纹理,但我不知道如何从分配中获取纹理 ID。

另一方面,我知道我可以使用图形渲染脚本,但由于它已被弃用,我想必须有其他方法来实现相同的结果。

0 投票
1 回答
287 浏览

android - 生成的渲染脚本文件导致“无效的 unicode”错误

我正在尝试一些 Renderscript 示例(目前我正在尝试轮播示例)。

我在 gen 文件夹中不断收到一个奇怪的错误,它只是说 "Invalid Unicode" ,并在每个生成的文件中指向 "\u",例如(忽略 "..."):

所以对于 "\user" ,它说它的 "\u" 部分是一个无效的 unicode。但我不是产生它的人。

我该如何解决这个奇怪的问题?

说到轮播示例,是否有此示例的替代方案,甚至可以避免使用 Renderscript 做同样的事情,但甚至可以在旧的 Android API 上工作?也许是使用 OpenGL 的?

0 投票
1 回答
326 浏览

android - Renderscript - 处理 2 张图像

快速浏览文档我还没有找到任何将 2 个图像作为输入传递的明显方法 - 有没有人这样做过或者知道它是否可能在当前实现中实现?

干杯,乔什

0 投票
1 回答
412 浏览

android - 如何在android中对位图进行快速操作

我需要对 android 中的位图进行一些操作,例如改变像素颜色、透明度、在第一个位图上用透明度绘制另一个位图、缩放、裁剪、应用蒙版等。现在我用java做,它真的很慢。在 nexus 4 上计算 600x600 像素的图像大约需要 5 秒。

什么技术适合这种操作?

我尝试了使用 OpenGL ES 2.0 的库 GPUImage,但是在尝试将蒙版应用于图像时遇到问题,蒙版大小为 600x600 作为原始图像,所以我应该传递一个 1440000 个颜色值的数组,而 GLSL 语言没有支持这么大的数组。360000 的 vec4 值也太大了。可能我可以将整个图像作为 texture2d 对象传递,但我找不到该怎么做。冷的人请给我一个教程?

第二个选项是渲染脚本。它不太适合,因为我希望 android 2.3 的手机具有快速的位图操作,但总而言之,在 3.0+ 设备上提高速度将是一件好事。它的问题是如何传递第二个位图的数据 - 360000 个 float4 值或位图本身。我也找不到有关它的信息,所以如果有人给我建议或教程,我将不胜感激。

第三种选择是使用 NDK。但我不知道它是否足够快,并且再次无法找到好的信息来从一般的 ndk 开始,特别是用 ndk 进行图像处理。所以我再次需要一个建议或教程。

所以,总而言之,请告诉我还有哪些其他的快速图像处理方法,并请给我一些关于这三种方法的建议或教程。什么是真正快速地对图像进行操作的最佳方法?

0 投票
1 回答
1775 浏览

android - 渲染脚本很慢,可以吗?

我有两个图像饱和度过滤器的实现。一种使用 Java,另一种使用 Renderscript。实际上我的nexus 4设备上的renderscript比较慢,怎么可能?

Java实现:

渲染脚本实现:

Java部分:

渲染脚本:

我认为 renderscript 应该比 java 快得多,因为它应该使用 cpu 和本机代码的所有 4 个内核,甚至可能是 android 4.2.2 上的 gpu 内核。

0 投票
1 回答
1713 浏览

android - 对 renderscript 的大量调用会产生错误“创建的 RS 线程数少于预期”

我有一个带有很多项目和图像的微调器的应用程序。

每次用户选择列表中的一项时,都会执行一定数量(1 到 5)的渲染脚本脚本来更改图像的像素。

在做出大约 30 次选择后,应用程序因错误而崩溃。

这是堆栈跟踪。

我想我应该以某种方式关闭 renderscript 使用的不必要的线程或什么?

更新:

有时错误是不同的:

或者

它指向线

更新 2:

这是亮度对比过滤器。我想每次创建新的输入和输出分配和脚本对象都会占用内存。是否可以将一个分配用于一系列渲染脚本操作?例如,我从位图进行分配,然后对其应用亮度对比度过滤器,然后使用一些具有类似实现的不同过滤器?

除了在某些操作中,我还有相当大的 int 数组(360000 个 int),正如我所理解的,每次创建 S criptC 对象时,它都会为在渲染脚本中定义的每个数组分配内存,因此内存可能会很快泄漏。

当我发布问题时,每次创建 RenderScript 对象的注释行都没有被注释,并且内存泄漏得更快。

该设备是nexus 4。

例如这里是带有数组的 RS 文件(其他文件与此类似,但可能不包含数组)

0 投票
2 回答
568 浏览

android - 是否可以将一个分配用于一系列渲染脚本操作?

例如,我从位图进行分配,然后对其应用brightnessContrastRs(),然后在该分配上应用一些具有类似实现的不同过滤器,由brightnessContrastRs() 操作更改?

RS脚本:

0 投票
2 回答
2907 浏览

android - 从 ARGB8888 到 RGB565 的渲染脚本转换

我正在接收 ARGB8888 格式的位图,但我需要通过一些只接受 RGB565 的算法来处理它。我想使用 Renderscript 将此位图转换为新格式,但似乎分配入和分配出应该相等(或兼容)。bitmapIn 是 ARGB_8888 类型, bitmapOut 是 RGB_565 类型

引起:android.renderscript.RSIllegalArgumentException:分配类型为 PIXEL_RGBA,类型为 4 字节的 UNSIGNED_8,传递的位图为 RGB_565

爪哇:

渲染脚本:

请注意,如果我制作了两个位图 ARGB_8888 并在两个 uchar4* 上都使用了 convert() (并且只复制了 alpha (w) 通道,那么我看到位图被更改了。

我知道 565 等于 16 位,所以实际上它更可能是 uchar2,但它也与类型分配不兼容。

如何在 Renderscript 中进行这种类型转换?

0 投票
1 回答
668 浏览

android - 从 Android RenderScript 获取计算值

我试图从 [1] 中制作源示例,因为我想使用数据类型“整数”将数据从 Java 交换到 Renderscript,反之亦然。此示例中的所有内容都运行良好,但我无法将数据从 RenderScript 取回 Java。我可以在调试输出中看到计算值,但使用return mScript.get_numberC();将返回 0。我也在尝试 [2],但这也行不通。那么有没有可能在不使用分配的情况下从 RenderScript 接收数据?另一个问题是我如何将 Allocations 2 Integer Arrays 传递给 RenderScript 并在不使用rsPackColorTo8888(mono)? 因为我的应用程序与图形无关。

[1]如何使用 Allocations 将数组值传入和传出 Android RenderScript

[2]如何在renderscript和android框架之间交换数据?

0 投票
1 回答
965 浏览

android - 渲染脚本多维数组

是否有可能在 RenderScript for Android 中使用二维数组?分配只允许我将一个向量(一维)数组放入分配中。但我不知道如何生成二维数组。我找到了关于这个主题的谷歌群组讨论,但是这个人没有收到任何答案。如果我想在 rs 文件中创建一个二维数组,我会得到一个错误:

将显示以下错误:

正如我在渲染脚本文件中看到的那样,数组 2x2、3x3 和 4x4 基于一维数组。对我来说,这是非常严格的使用。因为对于数学的东西,也应该支持计算大矩阵。