一行代码实现高斯模糊

简介: 前言:有一个音乐播放器的项目,背景需要根据歌曲的封面进行模糊展示,搜罗了很久,找到一个不错的解决方案,不需要我们进行NDK的开发,android帮我们在framework实现好了借鉴/** * 模糊图片 * @param bi...

前言:有一个音乐播放器的项目,背景需要根据歌曲的封面进行模糊展示,搜罗了很久,找到一个不错的解决方案,不需要我们进行NDK的开发,android帮我们在framework实现好了借鉴

/**
     * 模糊图片
     * @param bitmap 原图片
     * @param radius 模糊度  0~25
     * @param context
     * @return 模糊后的图片
     */
    public static Bitmap blurBitmap(Bitmap bitmap, float radius, Context context) {
    //Create renderscript
    RenderScript rs = RenderScript.create(context);
 
    //Create allocation from Bitmap
    Allocation allocation = Allocation.createFromBitmap(rs, bitmap);
    
    Type t = allocation.getType();
 
    //Create allocation with the same type
    Allocation blurredAllocation = Allocation.createTyped(rs, t);
 
    //Create script
    ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
    //Set blur radius (maximum 25.0)
    blurScript.setRadius(radius);
    //Set input for script
    blurScript.setInput(allocation);
    //Call script for output allocation
    blurScript.forEach(blurredAllocation);
 
    //Copy script result into bitmap
    blurredAllocation.copyTo(bitmap);
 
    //Destroy everything to free memory
    allocation.destroy();
    blurredAllocation.destroy();
    blurScript.destroy();
    t.destroy();
    rs.destroy();
    return bitmap;
}

感谢android,感谢开源

相关文章
|
机器学习/深度学习 计算机视觉 网络架构
改进YOLOv8:添加CBAM注意力机制(涨点明显)
改进YOLOv8:添加CBAM注意力机制(涨点明显)
7246 1
|
Android开发 数据安全/隐私保护
Android Studio 打包APK(详细版)
Android Studio 打包APK(详细版)
3772 0
Android Studio 打包APK(详细版)
|
12月前
|
前端开发 JavaScript UED
现代Web开发中的渐进式增强(Progressive Enhancement)
【10月更文挑战第9天】现代Web开发中的渐进式增强(Progressive Enhancement)
219 1
|
Linux 数据安全/隐私保护
如何在 Fedora 38 中为用户添加、删除和授予 Sudo 权限?
如何在 Fedora 38 中为用户添加、删除和授予 Sudo 权限?
721 0
如何在 Fedora 38 中为用户添加、删除和授予 Sudo 权限?
|
12月前
|
Ubuntu Linux 网络安全
Docker&Docker Compose安装(离线+在线)
Docker&Docker Compose安装(离线+在线)
14309 1
|
存储 机器学习/深度学习 安全
哪些行业最需要云计算?
【6月更文挑战第22天】哪些行业最需要云计算?
415 5
|
XML JSON API
⚡REST 和 SOAP 协议有什么区别?
这篇文章对比了 REST 和 SOAP 两种常见的 Web API 规范。REST 是一种 API 架构风格,遵循客户端-服务器、无状态和缓存等原则,使用 HTTP 协议和 JSON 格式,适合轻量级、高兼容性的场景。SOAP 是一种基于 XML 的网络服务访问协议,提供消息级安全性和 ACID 合规性,适用于企业级应用。REST 的优点包括前后端分离、浏览器兼容和带宽效率,而 SOAP 适用于需要高级安全特性的应用。除了 REST 和 SOAP,还有 gRPC 和 GraphQL 等其他选择。
|
双11 文件存储 前端开发
限量版阿里云手办,原来这么简单就拿到了(附详细攻略)
阿里云今年双11出了个“带云小宝回家”的活动,一共限量3000个手办,还挺有科技感,出个攻略,方便大家去薅羊毛。按照下面的步骤,一步一步操作就行。
2578 0
限量版阿里云手办,原来这么简单就拿到了(附详细攻略)
|
Ubuntu 安全 Oracle
2023 年 10 个最佳 Linux 服务器发行版,你知道几个?
2023 年 10 个最佳 Linux 服务器发行版,你知道几个?
12219 1
2023 年 10 个最佳 Linux 服务器发行版,你知道几个?
|
Java Go API
JDK21要来了,协程可以给Java带来什么
今年9月份,Java会最新的LTS版本的发布会带来一项重磅更新:协程在此之前,在JDK19中协程已经作为一个预览版的功能被放在了JDK中,本文将探讨一下使用协程后究竟可以为我们现在的Java应用解决什么问题,以及现在成熟的协程实现(Kotlin/Go),在最后会基于JDK20的协程实现分析下JDK部分的源码。协程是什么协程其实是很古老的概念,1963年就被提出。协程是一种协作式的程序执行流,只有当
6227 0
JDK21要来了,协程可以给Java带来什么