关闭

Android实现高斯模糊

标签: android位图对象博客
849人阅读 评论(0) 收藏 举报
分类:

心血来潮再来一篇博客,和大家分享一下高斯模糊技巧
核心代码如下:

/**
     * bitmap  对象进行模糊处理
     * @param sentBitmap 原图bitmap
     * @param context 上下文
     * @param radius 模糊系数
     * @return
     */
    @SuppressLint("NewApi") 
    public Bitmap handleBit(Bitmap sentBitmap,Context context,int radius){
        if (VERSION.SDK_INT > 16) {
            Bitmap bitmap = sentBitmap.copy(sentBitmap.getConfig(), true);

            final RenderScript rs = RenderScript.create(context);
            final Allocation input = Allocation.createFromBitmap(rs, sentBitmap, Allocation.MipmapControl.MIPMAP_NONE,
                    Allocation.USAGE_SCRIPT);
            final Allocation output = Allocation.createTyped(rs, input.getType());
            final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
            script.setRadius(radius);
            script.setInput(input);
            script.forEach(output);
            output.copyTo(bitmap);
            return bitmap;
        } else {
            return sentBitmap;
        }
    }

以上是把bitmap进行高斯模糊地方法,这是Android自带的高斯模糊处理方法,代码非常的简单,并且处理的效果非常匀称。
首先我们需要对屏幕进行截图获取bitmap对象,然后模糊处理bitmap,设置为背景就完成了简单地高斯模糊,但是这种方式有一个缺点,就是效率比较低,但这也是致命的缺点。如果大家想要详细了解,可以评论我给大家上传个demo

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:41463次
    • 积分:690
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:0篇
    • 译文:0篇
    • 评论:45条
    文章分类
    最新评论