问题标签 [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.
android - 如何在 Android 中与 OpenGL 共享 Renderscript 分配
我有一个渲染脚本,它处理在输出中提供给分配的图像。我想在我的 OpenGL 程序中将此分配用作纹理,但我不知道如何从分配中获取纹理 ID。
另一方面,我知道我可以使用图形渲染脚本,但由于它已被弃用,我想必须有其他方法来实现相同的结果。
android - 生成的渲染脚本文件导致“无效的 unicode”错误
我正在尝试一些 Renderscript 示例(目前我正在尝试轮播示例)。
我在 gen 文件夹中不断收到一个奇怪的错误,它只是说 "Invalid Unicode" ,并在每个生成的文件中指向 "\u",例如(忽略 "..."):
所以对于 "\user" ,它说它的 "\u" 部分是一个无效的 unicode。但我不是产生它的人。
我该如何解决这个奇怪的问题?
说到轮播示例,是否有此示例的替代方案,甚至可以避免使用 Renderscript 做同样的事情,但甚至可以在旧的 Android API 上工作?也许是使用 OpenGL 的?
android - Renderscript - 处理 2 张图像
快速浏览文档我还没有找到任何将 2 个图像作为输入传递的明显方法 - 有没有人这样做过或者知道它是否可能在当前实现中实现?
干杯,乔什
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 进行图像处理。所以我再次需要一个建议或教程。
所以,总而言之,请告诉我还有哪些其他的快速图像处理方法,并请给我一些关于这三种方法的建议或教程。什么是真正快速地对图像进行操作的最佳方法?
android - 渲染脚本很慢,可以吗?
我有两个图像饱和度过滤器的实现。一种使用 Java,另一种使用 Renderscript。实际上我的nexus 4设备上的renderscript比较慢,怎么可能?
Java实现:
渲染脚本实现:
Java部分:
渲染脚本:
我认为 renderscript 应该比 java 快得多,因为它应该使用 cpu 和本机代码的所有 4 个内核,甚至可能是 android 4.2.2 上的 gpu 内核。
android - 对 renderscript 的大量调用会产生错误“创建的 RS 线程数少于预期”
我有一个带有很多项目和图像的微调器的应用程序。
每次用户选择列表中的一项时,都会执行一定数量(1 到 5)的渲染脚本脚本来更改图像的像素。
在做出大约 30 次选择后,应用程序因错误而崩溃。
这是堆栈跟踪。
我想我应该以某种方式关闭 renderscript 使用的不必要的线程或什么?
更新:
有时错误是不同的:
或者
它指向线
更新 2:
这是亮度对比过滤器。我想每次创建新的输入和输出分配和脚本对象都会占用内存。是否可以将一个分配用于一系列渲染脚本操作?例如,我从位图进行分配,然后对其应用亮度对比度过滤器,然后使用一些具有类似实现的不同过滤器?
除了在某些操作中,我还有相当大的 int 数组(360000 个 int),正如我所理解的,每次创建 S criptC 对象时,它都会为在渲染脚本中定义的每个数组分配内存,因此内存可能会很快泄漏。
当我发布问题时,每次创建 RenderScript 对象的注释行都没有被注释,并且内存泄漏得更快。
该设备是nexus 4。
例如这里是带有数组的 RS 文件(其他文件与此类似,但可能不包含数组)
android - 是否可以将一个分配用于一系列渲染脚本操作?
例如,我从位图进行分配,然后对其应用brightnessContrastRs(),然后在该分配上应用一些具有类似实现的不同过滤器,由brightnessContrastRs() 操作更改?
RS脚本:
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 中进行这种类型转换?
android - 从 Android RenderScript 获取计算值
我试图从 [1] 中制作源示例,因为我想使用数据类型“整数”将数据从 Java 交换到 Renderscript,反之亦然。此示例中的所有内容都运行良好,但我无法将数据从 RenderScript 取回 Java。我可以在调试输出中看到计算值,但使用return mScript.get_numberC();
将返回 0。我也在尝试 [2],但这也行不通。那么有没有可能在不使用分配的情况下从 RenderScript 接收数据?另一个问题是我如何将 Allocations 2 Integer Arrays 传递给 RenderScript 并在不使用rsPackColorTo8888(mono)
? 因为我的应用程序与图形无关。
android - 渲染脚本多维数组
是否有可能在 RenderScript for Android 中使用二维数组?分配只允许我将一个向量(一维)数组放入分配中。但我不知道如何生成二维数组。我找到了关于这个主题的谷歌群组讨论,但是这个人没有收到任何答案。如果我想在 rs 文件中创建一个二维数组,我会得到一个错误:
将显示以下错误:
正如我在渲染脚本文件中看到的那样,数组 2x2、3x3 和 4x4 基于一维数组。对我来说,这是非常严格的使用。因为对于数学的东西,也应该支持计算大矩阵。