Android:从像素数组为renderscript创建分配

时间:2015-07-26 12:02:45

标签: android allocation renderscript

我正在尝试使用Android Renderscript来模糊图像。我的输入是一个包含像素颜色的整数数组。这是我做的,而不是工作。应用程序关闭,Galaxy S设备上没有任何错误消息

    bmp.getPixels(pixels, 0, bmp.getWidth(), 0, 0, bmp.getWidth(), bmp.getHeight());

    Allocation input = Allocation.createSized(rs, Element.I32(rs), pixels.length);
    input.copy1DRangeFrom(0, pixels.length, pixels);

    Allocation output = Allocation.createTyped(rs, input.getType());
    ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
    script.setRadius(6f);
    script.setInput(input);
    script.forEach(output);

    output.copyTo(pixels);

1 个答案:

答案 0 :(得分:1)

您需要查看logcat输出(确保Android Studio / Eclipse中没有启用过滤器),它会显示崩溃。

您看到的问题很可能是因为您的输入Allocation元素类型与输出不匹配。他们需要是一样的。而不是调用Allocation.createSized()并指定一个元素,只需调用Allocation.createFromBitmap()并为其提供输入Bitmap对象。然后将输入Bitmap复制到Allocation