NDK实现的图片处理工具

1 篇文章 0 订阅
1 篇文章 0 订阅

Introduction

通过jni编写c++代码来实现图片的基本处理,使用 NDKProcessImage 可以对图片的一些基本操作,可以用来实现对bitmap的对比度调节、亮度调节、旋转、镜像、高斯模糊、yuv和rgb格式互转等。

Features

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 支持对比度调节;
  2. 支持亮度调节;
  3. 支持旋转;
  4. 支持镜像;
  5. 支持高斯模糊功能;
  6. 支持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

  1. 设置bitmap的亮度和对比度:
  • 亮度范围:0-1.0f
  • 对比度范围:-1.0f-1.0f
mBitmap = NativeImageUtils.brightnessContrastChange(mOriginalBitmap, brightness, contrast);
imageView.setImageBitmap(mBitmap);
  1. 对图片的argb数据图像加深:相当于亮度设置为0.2f对比度设置0.2f:
int[] result = NativeImageUtils.deepImage(buffer, mBitmap.getWidth(), mBitmap.getHeight());
  1. argb2Yuv: 图片的argb数据转为yuv格式:
byte[] yuvData = NativeImageUtils.argb2Yuv(data,width,height);
  1. yuv420sp2rgb: 图片的yuv格式转为rgb数据:
int[] data = NativeImageUtils.yuv420sp2rgb(yuvData,width,height);
  1. gaussBlur: 对bitmap图片进行高斯模糊处理:
  • radius: 模糊半径
mBitmap = NativeImageUtils.gaussBlur(mBitmap,30);
imageView.setImageBitmap(mBitmap);
  1. rotateBitmap: 对bitmap图片90度旋转顺时针:
mBitmap = NativeImageUtils.rotateBitmap(mBitmap);
imageView.setImageBitmap(mBitmap);
  1. convertBitmap: 对bitmap图片上下镜像处理:
mBitmap = NativeImageUtils.convertBitmap(mBitmap);
imageView.setImageBitmap(mBitmap);
  1. mirrorBitmap: 对bitmap图片左右镜像处理:
mBitmap = NativeImageUtils.mirrorBitmap(mBitmap);
imageView.mirrorBitmap(mBitmap);

NDKProcessImage 图片处理工具混淆配置

-keep class com.kebii.utils.**{*;}

关于我

github地址:

链接: https://github.com/Kebiiii/NDKProcessImage/.

demo界面:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值