我正在尝试使用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);
答案 0 :(得分:1)
您需要查看logcat输出(确保Android Studio / Eclipse中没有启用过滤器),它会显示崩溃。
您看到的问题很可能是因为您的输入Allocation
元素类型与输出不匹配。他们需要是一样的。而不是调用Allocation.createSized()
并指定一个元素,只需调用Allocation.createFromBitmap()
并为其提供输入Bitmap
对象。然后将输入Bitmap
复制到Allocation
。