【问题标题】:Renderscript for Bitmap crop位图裁剪的渲染脚本
【发布时间】:2017-06-27 03:24:01
【问题描述】:

看起来 Android SDK 的 BitmapRegionDecoder 使用 Skia 来解码指定位图的一部分。在引擎盖下,它使用了适当的代码(jpeg、png 等)。我正在寻找使用 Renderscript 优化它的方法。

是否可以定义一个 Renderscript 内核函数来忽略输入分配中的某些数据并将其余数据保存在输出分配中?我是 Renderscript 的新手,大多数内核函数都倾向于处理整个输入数据集。

【问题讨论】:

    标签: renderscript android-renderscript


    【解决方案1】:

    是的,使用 LaunchOptions API 来限制您启动的矩形:

    Script.LaunchOptions lo;
    lo.setX(10, 100);
    lo.setY(5, 20);
    kernel.forEach(in, out, lo);
    

    https://developer.android.com/reference/android/renderscript/Script.LaunchOptions.html

    【讨论】:

    • 谢谢我试过了,但它失败了,因为“输入和输出分配的尺寸不匹配”。我只想为需要的东西分配输出(作物后)。我发现了一些绑定输入的技巧,它就像一个魅力,被性能改进所震撼:-)
    • 是的,输入/输出需要相同大小。对于不同的大小,按照你说的对其中一个使用 rs_allocation global 并使用 rsGetElementAt_* 函数。
    • 不仅如此,在所需裁剪区域(输出分配)上的 forEach 比在整个输入分配和选择所需值上的 forEach 效率高得多,不是吗?大图像中的小作物非常适合。
    • 有没有办法获取 rs 操作的统计信息?我很好奇使用的是哪个处理器(CPU、GPU 或 DSP)。
    • 看看 Qualcomm Trepn 分析器,它可以在您运行时显示 CPU/GPU 使用情况。这可以指示使用了哪个处理器。
    猜你喜欢
    • 2023-04-01
    • 2010-11-24
    • 2012-04-10
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多