为了账号安全,请及时绑定邮箱和手机立即绑定

Android模糊图片技术

标签:
Android

RenderScript是android的计算图形框架。android的动态墙纸就是用了这一技术。本文学习一下把一张图片进行模糊显示处理。

集成Renderscript Support支持库

使用Gradle配置

在项目的build.gradle添加以下代码

[代码]xml代码:

?

1

2

3

4

5

6

android {

    defaultConfig {

        renderscriptTargetApi   19

        renderscriptSupportModeEnabled   true

    }

}

 

添加成功后,会发现android.support.v8.renderscript.*的类可以使用

使用RenderScript模糊图片

以下是模糊的核心代码

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

public class BlurBuilder   {

    private static final float BITMAP_SCALE = 0.4f;

    private static final float BLUR_RADIUS = 7.5f;

 

    public static Bitmap blur(Context context, Bitmap image) {

        int width = Math.round(image.getWidth() *   BITMAP_SCALE);

        int height = Math.round(image.getHeight() *   BITMAP_SCALE);

 

        Bitmap   inputBitmap = Bitmap.createScaledBitmap(image, width, height, false);

        Bitmap   outputBitmap = Bitmap.createBitmap(inputBitmap);

 

        RenderScript   rs = RenderScript.create(context);

        ScriptIntrinsicBlur   theIntrinsic = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));

        Allocation   tmpIn = Allocation.createFromBitmap(rs, inputBitmap);

        Allocation   tmpOut = Allocation.createFromBitmap(rs, outputBitmap);

        theIntrinsic.setRadius(BLUR_RADIUS);

        theIntrinsic.setInput(tmpIn);

        theIntrinsic.forEach(tmpOut);

        tmpOut.copyTo(outputBitmap);

 

        return outputBitmap;

    }

}

 

只需要适当地调整BITMAP_SCALEBLUR_RADIUS这两个参数就可以了。
注意一点的是。导入的包一定要是android.support.v8.renderscript.*,不然就只能在Api 17(Android 4.3)的版本上使用。

如果要对一张Bitmap图片进行模糊,只需要调用上面的blur方法,生成一个新的Bitmap就可以了。

[代码]java代码:

?

1

2

Bitmap blurredBitmap = BlurBuilder.blur(   getActivity(), originalBitmap );

view.setBackgroundDrawable( new BitmapDrawable( getResources(), blurredBitmap   ) );

 

这是原图
https://img1.sycdn.imooc.com//5bd41219000134fc06640498.jpg

压缩后的图片
https://img1.sycdn.imooc.com//5bd4122700014e6b06620495.jpg

 原文链接:http://www.apkbus.com/blog-705730-60536.html


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消