如何在Android中创建模糊位图图像
我试图创建一个蓝色位图图像,但它会在一些渲染脚本中生成一个错误如何在Android中创建模糊位图图像,android,bitmapimage,Android,Bitmapimage,我试图创建一个蓝色位图图像,但它会在一些渲染脚本中生成一个错误 private Bitmap blurRenderScript(Bitmap smallBitmap, int radius) { try { smallBitmap = RGB565toARGB888(smallBitmap); } catch (Exception e) { e.printStackTrace(); } Bitmap b
private Bitmap blurRenderScript(Bitmap smallBitmap, int radius) {
try { smallBitmap = RGB565toARGB888(smallBitmap); } catch (Exception e) { e.printStackTrace(); }
Bitmap bitmap = Bitmap.createBitmap(smallBitmap.getWidth(),
smallBitmap.getHeight(), Bitmap.Config.ARGB_8888);
RenderScript renderScript = RenderScript.create(MainActivity.this);
Allocation blurInput = Allocation.createFromBitmap(renderScript,
smallBitmap); Allocation blurOutput = Allocation.createFromBitmap(renderScript,
bitmap);
ScriptIntrinsicBlur blur = ScriptIntrinsicBlur.create(renderScript,
Element.U8_4(renderScript)); blur.setInput(blurInput); blur.setRadius(radius); // radius must be 0 < r <= 25 blur.forEach(blurOutput);
blurOutput.copyTo(bitmap); renderScript.destroy();
return bitmap;
}
当我调用方法
blurRenderScript(位图,20)
时,它将生成一个类似于10-06 11:40:33.547:E/RenderScript(13094):rsi_ScriptIntrinsicCreate 5 10-06 11:40:33.571:A/libc(13094):0x00000000(code=128)处的致命信号11(SIGSEGV),线程13107
您可以使用一些第三方工具进行此操作
使用Renderscript-Xamarin模糊图像
要求
enter code here
此配方仅适用于Android 4.2.2(API级别17)或更高版本
配方
此配方的UI包含在以下XML布局文件中:
这是一个非常简单的UI,它有一个ImageView和一个SeekBar。我们扩展此布局并将事件处理程序连接到活动的SeekBar in OnCreate方法,如下代码所示:
当用户停止沿SeekBar滑动手指时,将触发StopTrackingTouch事件并调用BlurImageHandler方法。此处理程序的内容可以在以下代码段中看到:
如果SeekBar的值大于零,则需要应用模糊过滤器。如果SeekBar的值为零,则不需要应用模糊。DisplayBlurredImage中的代码如下所示:
让我们快速了解DisplayBlurredImage。我们要做的第一件事是禁用SeekBar并显示一个不确定的进度对话框。为了保持应用程序的响应性并防止来自Android的ANR(应用程序无响应)消息,实际的过滤将在单独的线程中执行。此示例将通过任务并行库调用CreateBlurredImage方法。我们为完成这项工作而创建的任务有一个延续,它将用模糊的图像更新UI,并关闭进度对话框。此延续程序计划在应用程序的UI线程中运行
我们需要检查的最后一段代码将执行图像的实际模糊处理。此方法的代码包含在CreateBlurredImage方法中。此代码具有内联注释,以帮助解释代码的相关部分:
在Xamarin中,问题不需要解决。请查看这个很棒的库:
enter code here