Android RenderScript-toolkit库,替换老式的脚本方式(常用于高斯模糊)

此工具包提供了一系列高性能图像处理函数,例如模糊、混合和调整大小。它可以作为大多数已弃用的 RenderScript 内部函数的独立替代品。

支持16k page size

支持16k page size

支持16k page size

回顾 RenderScript Intrinsics

曾经我们要实现高斯模糊,都会用到RenderScript Intrinsics的方式。

老的方式,会用到如下配置:

markdown 复制代码
        android {
            compileSdkVersion 33

            defaultConfig {

                // 这里需要增加此项配置
                renderscriptTargetApi 19
                renderscriptSupportModeEnabled true
            }
        }

是否勾起了你的记忆。

使用方式我就不赘述了,不是本篇重点

过时的 RenderScript Intrinsics

以下摘抄自Google原文:

从 Android 12 开始,RenderScript API 已被废弃。设备和组件制造商已停止提供硬件加速支持,预计将在未来的版本中完全取消对 RenderScript 的支持。
在 Android 平台中废弃 RenderScript 后,将在 Android Gradle 插件中取消对 RenderScript 的支持。从 Android Gradle 插件 7.2 开始,废弃了 RenderScript API。它们会继续正常运行,但会产生警告。未来的 AGP 版本将不再支持 RenderScript。

官方迁移文档:从 Render​Script 迁移

Renderscrip-Toolkit

以下为官方翻译:

与 RenderScript Intrinsics 相比,此工具包使用起来更简单,在 CPU 上执行速度也快一倍。然而,RenderScript Intrinsics 在支持的分配类型方面提供了更大的灵活性。此工具包不支持浮点型分配;大多数函数支持字节数组 (ByteArray) 和位图 (Bitmap)。
该工具包提供 C++ 和 Java/Kotlin 接口。它被打包为一个 Android 库,您可以将其添加到您的项目中。

Google 提供了 Renderscrip-Toolkit 工具,但是只给了源代码,没有直接打包成aar提供使用,所以需要自行编译。

包含功能

  • 混合模式
  • 高斯模糊
  • 颜色矩阵滤镜
  • 盲卷积
  • 直方图和直方图点
  • LUT和LUT3D
  • 调整大小
  • YUV to RGB

添加依赖

scss 复制代码
implementation("io.github.limuyang2:renderscrip-toolkit:1.0.2")

使用方法

使用Toolkit调用各类方法。

kotlin 复制代码
// 例:高斯模糊
val newBitmap = Toolkit.blur(inputBitmap, 20)

// 剩下的可以直接查看 Toolkit 类中方法

项目地址

RenderScript-toolkit

相关推荐
渡我白衣几秒前
并查集:基础认识与模拟实现
android·java·javascript·数据结构·c++·算法·并查集
Android-Flutter2 小时前
flutter GetX 详解
android·flutter
MyFreeIT3 小时前
Android Manual
android
hai_android4 小时前
AIDL 实现 IPC 进程间通信
android·android studio
AFinalStone6 小时前
Android 7系统无障碍服务(五)AccessibilityNodeInfo 的构建与查询
android·无障碍服务
今天要早睡_6 小时前
C++ 核心语法速过:命名空间、引用、函数重载与 nullptr 深度解析
android·java·c++
啦啦啦~~~2227 小时前
PC端+安卓端阅读器推荐!开源本地小说阅读器软件,
android·论文阅读·windows·开源软件·福昕阅读器
我命由我123458 小时前
Android Jetpack Compose 开发问题:Unresolved reference ‘Icons‘.
android·java-ee·kotlin·android studio·android jetpack·android-studio·android runtime
爱笑鱼8 小时前
Android 系统启动机制(六):Zygote 创建 App 为什么走 Socket?哪些是源码事实,哪些是架构解释?
android·linux
AI2中文网8 小时前
安卓模拟器启动卡在进度条?两步解决硬件加速冲突
android