NDK实现的图片处理工具
Introduction
通过jni编写c++代码来实现图片的基本处理,使用 NDKProcessImage
可以对图片的一些基本操作,可以用来实现对bitmap的对比度调节、亮度调节、旋转、镜像、高斯模糊、yuv和rgb格式互转等。
Features
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 支持对比度调节;
- 支持亮度调节;
- 支持旋转;
- 支持镜像;
- 支持高斯模糊功能;
- 支持yuv和rgb数据互转。
Getting started
在项目的根节点的 build.gradle
中添加如下代码
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
在项目的 build.gradle
中添加
dependencies {
implementation 'com.github.Kebiiii:NDKProcessImage:v1.0.2'
}
Usage
- 设置bitmap的亮度和对比度:
- 亮度范围:0-1.0f
- 对比度范围:-1.0f-1.0f
mBitmap = NativeImageUtils.brightnessContrastChange(mOriginalBitmap, brightness, contrast);
imageView.setImageBitmap(mBitmap);
- 对图片的argb数据图像加深:相当于亮度设置为0.2f对比度设置0.2f:
int[] result = NativeImageUtils.deepImage(buffer, mBitmap.getWidth(), mBitmap.getHeight());
- argb2Yuv: 图片的argb数据转为yuv格式:
byte[] yuvData = NativeImageUtils.argb2Yuv(data,width,height);
- yuv420sp2rgb: 图片的yuv格式转为rgb数据:
int[] data = NativeImageUtils.yuv420sp2rgb(yuvData,width,height);
- gaussBlur: 对bitmap图片进行高斯模糊处理:
- radius: 模糊半径
mBitmap = NativeImageUtils.gaussBlur(mBitmap,30);
imageView.setImageBitmap(mBitmap);
- rotateBitmap: 对bitmap图片90度旋转顺时针:
mBitmap = NativeImageUtils.rotateBitmap(mBitmap);
imageView.setImageBitmap(mBitmap);
- convertBitmap: 对bitmap图片上下镜像处理:
mBitmap = NativeImageUtils.convertBitmap(mBitmap);
imageView.setImageBitmap(mBitmap);
- mirrorBitmap: 对bitmap图片左右镜像处理:
mBitmap = NativeImageUtils.mirrorBitmap(mBitmap);
imageView.mirrorBitmap(mBitmap);
NDKProcessImage 图片处理工具混淆配置
-keep class com.kebii.utils.**{*;}
关于我
- Email: 545043382@qq.com
github地址:
链接: https://github.com/Kebiiii/NDKProcessImage/.
demo界面: