android 高斯模糊实现
Android 实现 模糊 高斯
2023-09-14 08:58:19 时间
实际测试会发现这种计算方式是很耗时间的,而且模糊半径越大,从原理也可以看到计算量是平方增长的,所以计算时间也越长。 RenderScript RenderScript是Android在API 11之后加入的,用于高效的图片处理,包括模糊、混合、矩阵卷积计算等,代码示例如下
//Lets create an empty bitmap with the same size of the bitmap we want to blur
Bitmap outBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);
ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
//Create the Allocations (in/out) with the Renderscript and the in/out bitmaps
public static Bitmap doBlur(Bitmap sentBitmap, int radius, boolean canReuseInBitmap) {
rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0;
rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0;
pix[yi] = (0xff000000 pix[yi]) | (dv[rsum] 16) | (dv[gsum] 8) | dv[bsum];
这里的方法也可以实现高斯模糊的效果,但使用了特殊的算法,比第一种可以快很多,但比起RenderScript还是慢一些 (示例来源 Android高级模糊技术) 实现YAHOO天气的动态模糊效果 YAHOO天气中的背景会随着手指上滑模糊程度加深,实际使用中发现怎么都达不到那样流畅的效果,因为手势刷新的速度很快,每一帧都去重新模糊计算一遍,还是会有延迟,造成页面卡顿。后来在一次偶然的开发中发现其实不需要每一帧都重新去模糊一遍,而是将图片最大程度模糊一次,之后和原图叠加,通过改变叠加的模糊图片的alpha值来达到不同程度的模糊效果。下面是一个例子,可以看到随着模糊图片alpha值的变化,叠加后产生不同程度的模糊效果。
随滑动变换alpha值的代码如下
❤️Android 12 高斯模糊-RenderEffect❤️ Android 12 高斯模糊 新功能:更易用的模糊、彩色滤镜等特效 。 新的 API 让你能更轻松地将常见图形效果应用到视图和渲染结构上。 使用 RenderEffect 将模糊、色彩滤镜等效果应用于 RenderNode 或 View。 使用新的 Window.setBackgroundBlurRadius() API 为窗口背景创建雾面玻璃效果, 使用 blurBehindRadius 来模糊窗口后面的所有内容。 咱们一个一个玩。
本章主要用原生的方式实现一个菜单页面,主要用到的知识点为位移动画,我们可以先看看效果。
高斯模糊背景 我们的菜单背景是一个高斯模糊的背景,虽然看上去高大上,但是不要被吓到了,实现原理非常的简单:截取当前屏幕转换为bitmap,将bitmap进行高斯模糊,然后设置为菜单的背景。
Android图像处理 - 高斯模糊的原理及实现 原文:Android图像处理 - 高斯模糊的原理及实现 欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 由 天天P图攻城狮 发布在云+社区 作者简介:damonxia(夏正冬),天天P图Android工程师 高斯模糊是图像处理中几乎每个程序员都或多或少听过的名词,但是对其原理大家可能并不了解,只知道通过高斯模糊能实现图像毛玻璃效果。
Android高斯模糊、高斯平滑(Gaussian Blur)【2】 Android上的高斯模糊效果实现,策略不唯一,在github上有一个开源的实现算法:https://github.com/paveldudka/blurring 性能上对附录参考文章【1】进行了改进和提升。
Android高斯模糊、高斯平滑(Gaussian Blur)【1】 Android高斯模糊、高斯平滑(Gaussian Blur),图形图像处理的一种效果,经过高斯模糊处理后的图片有一种“毛玻璃”的效果。
Android组件化开发(七)--从零开始教你分析项目需求并实现 前面几篇文章我们封装了几个组件化功能组件:包括:**网络请求组件,图片加载请求组件,应用保活组件,音乐播放组件封装。** 每个组件都可以直接拿到自己项目中使用,当然还需根据自己项目要求进行优化。
Android组件化开发(六)-- 短视频播放组件封装 前面几篇文章我们封装了几个组件化功能组件: 包括:`网络请求组件`,`图片加载请求组件`,`应用保活组件`,`音乐播放组件封装`。 每个组件都可以直接拿到自己项目中使用,当然还需根据自己项目要求进行优化。
Android组件化开发(五)--完整版音乐播放组件的封装 前面几篇系列文章我们讲解了`组件化开发`中几个常用功能组件的开发,包括:`网络请求组件`,`图片加载请求组件`,`应用保活组件`。今天我们来封装一个`音乐播放组件`。
相关文章
- Android开发之Ruby实现Android自动化屏幕适配
- [Android Pro] android控件ListView顶部或者底部也显示分割线
- 【Android】实现打开关闭效果
- Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验
- Android视图SurfaceView的实现原理分析
- 抖音、美团等大厂千万级用户的Android架构演进之路——《Android架构开发手册》
- Android Binder多场景实战开发指南
- Android实现截屏方式整理
- android异步线程的实现方式
- Android 12.0 通过驱动实现禁用usb鼠标和usb键盘功能
- Android 12.0 屏蔽FallbackHome机制去掉android正在启动直接进入默认Launcher功能实现
- Android 9.0 Launcher3 单层app列表页排序功能实现
- Android 9.0 Launcher3单层高斯模糊(毛玻璃)效果的实现
- Android kotlin自定义View实现高斯模糊背景
- Android 实现Seekbar圆角样式
- Android 10.0 实现屏幕10s无操作自动播放视频
- 【Android Gradle 插件】组件化中的 Gradle 构建脚本实现 ⑤ ( 优化 Gradle 构建脚本 | 构建脚本结构 | 闭包定义及用法 | 依赖配置 | android 块配置 )
- 【Android Gradle 插件】PackagingOptions 配置 ③ ( merges 属性配置 | excludes 属性配置 )
- 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | Hook 点分析 )
- 09_android入门_採用android-async-http开源项目的GET方式或POST方式实现登陆案例
- android修改默认输入法
- android电池充电动画,Android 开机充电图标和充电动画效果
- Android 11.0 系统关机动画的功能实现