blur

Project Url: Android-Mainli/blur
Introduction: Android 高斯模糊 快速模糊 bitmap,快到主线程直接使用(800x991 分辨率,1/10 秒左右)
More: Author   ReportBugs   
Tags:

动画

算法使用的是intelIIR

效率

效率还是蛮快的(release 版 so 库)

  1. 测试设备选用 Nexus 6P(CPU:骁龙 810 , RAM:3G)
  2. 测试图片选用 800x991 分辨率
强度 用间(ms)
5 101
10 103
15 105
20 96
25 101
  1. 测试设备选用 Mi 10s(CPU:骁龙 870 , RAM:8+3G)
  2. 测试图片选用 800x991 分辨率
强度 用间(ms)
5 76
10 60
15 60
20 42
25 43

debug 包中模糊效率稍慢,请使用 release 包测试 apk

so 库文件很小

├── arm64-v8a
│   └── [ 14K]  libblur-lib.so
├── armeabi-v7a
│   └── [ 17K]  libblur-lib.so
├── x86
│   └── [ 13K]  libblur-lib.so
└── x86_64
    └── [ 14K]  libblur-lib.so

用法

  1. 依赖

     //在项目根目录中添加 maven 地址
     allprojects {
         repositories {
             maven { url 'https://jitpack.io' }
         }
     }
     //在项目 module 中添加依赖
     implementation 'com.github.mainlxl:blur:version'
    
  2. 减少依赖 so 库数量,默认 aar 中添加有'armeabi', 'armeabi-v7a', 'arm64-v8a', 'mips', 'mips64', 'x86', 'x86_64'.

    在 app 的build.gradleandroid下的defaultConfig中加入ndk标签标明支持的平台版本,以减少依赖的 so 数量

  android {
        省略...
    defaultConfig {
      省略...
        ndk {
          //可选 可只是用'armeabi-v7a'
            abiFilters 'armeabi','armeabi-v7a','arm64-v8a'
        }
        省略...
    }
  1. code 中使用

       //blur 方法默认修改 bitmap 中数据,调用完成功后(btm == bitmap 二者为同一对象)
        Bitmap btm = BitmapBlur.blur(bitmap, intensity)
    
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools