gpt4 book ai didi

Android Renderscript Allocation.USAGE_SHARED 崩溃

转载 作者:行者123 更新时间:2023-11-29 21:34:31 24 4
gpt4 key购买 nike

我在运行使用 renderscript 的应用程序时发生崩溃。不幸的是,logcat 没有提供任何具体细节。

b = Bitmap.createBitmap(ib.getWidth(), ib.getHeight(),ib.getConfig());

Allocation mInAllocation = Allocation.createFromBitmap(mRS, inBitmap,
Allocation.MipmapControl.MIPMAP_NONE,Allocation.USAGE_SHARED);

Allocation mOutAllocation2 = Allocation.createFromBitmap(mRS,
outBitmap, Allocation.MipmapControl.MIPMAP_NONE,
Allocation.USAGE_SHARED);

...从 .rs 文件执行算法,然后执行以下操作

mOutAllocation2.copyTo(outBitmap)`;

当我为 mOutAllocation2 使用 USAGE_SCRIPT 标志而不是 USAGE_SHARED 时,相同的代码序列运行得非常好。

对于为什么会发生这种情况有什么帮助吗?

我在 android 文档中读到,如果分配是 USAGE_SHARED 类型,那么从分配到位图(见上文)的复制操作会更快。目前,对于相当大的图像(8MP 及以上),我看到从分配到位图的副本运行到 secs

我目前使用的是 Nexus 10 (Android 4.3)。

最佳答案

首先,您需要使用 Allocation.USAGE_SCRIPT |分配.USAGE_SHARED。 createFromBitmap(RenderScript, Bitmap) 将尽可能为您设置。

其次,如果您的复制时间如此之长,您可能还会看到脚本执行。脚本执行是异步的,因此 copyTo(Bitmap) 的挂钟时间可能不仅仅包括复制。

关于Android Renderscript Allocation.USAGE_SHARED 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18709301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com