此工具包提供了一系列高性能图像处理函数,例如模糊、混合和调整大小。它可以作为大多数已弃用的 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。
官方迁移文档:从 RenderScript 迁移
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 类中方法