# ImageUtils
## 写在前面
该图像处理库底层依赖的是 Google 开源的 `libyuv` 框架,因该框架功能之强大,支持图像格式之繁多,目前这里只针对 Android 中常用的图像格式之间互相操作进行了相关封装操作,方便 `Java` / `Kotlin` 进行无缝调用。
## 功能说明
- [x] 支持 `RGB_565`、`ARGB_8888`、`RGB24`、`I420`、`NV21` 5中格式图像之间互相转换操作
- [x] 支持将 `Bitmap` 转换成以上五种图像格式操作
- [x] 支持将以上格式的图像转换成 `Bitmap` 操作
- [x] 支持以上格式图像之间互相旋转、裁剪操作
- [x] 支持以上格式图像之间缩放操作
- [x] 支持以上格式图像之间镜像操作
- [x] 底层依赖 `libyuv` 框架,安全、稳定、高效
关于具体接口说明,请 [点击此处](https://github.com/Reign9201/ImageUtils/blob/master/doc/ImageUtils%E5%BA%93%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3.md)
关于图像格式说明,请 [点击此处](https://github.com/Reign9201/ImageUtils/blob/master/doc/Android%E4%B8%AD%E5%B8%B8%E7%94%A8%E5%9B%BE%E5%83%8F%E6%A0%BC%E5%BC%8F%E8%AF%B4%E6%98%8E.md)
---
## 使用说明
### Gradle 依赖
- **Step 1**. Add the JitPack repository to your build file
Add it in your root build.gradle at the end of repositories:
```
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
```
- **Step 2**. Add the dependency
```
dependencies {
implementation 'com.github.Reign9201:ImageUtils:v0.1-alpha'
}
```
### 简单使用
例如,我们将相机采集的预览流转换成Android手机能显示的 Bitmap:
```Kotlin
// 一般相机预览流为 NV21格式,而且是旋转了270的
val bitmap:Bitmap? = ImageUtils.nv21ToBitmap8888(data, width, height, 270)
```
例如,我们从手机相机中采集了一段人脸预览流,经过人脸识别采集到了人脸框,此时我们需要根据识别后的人脸框将人脸从整个预览流中抠下来,我们可以这么操作:
```Kotlin
fun onPreviewFrame(data: ByteArray, width: Int, height: Int, faceRect: Rect) {
// 返回值为人脸识别后抠出的脸图
val faceBitmap: Bitmap? = YuvUtils.dataClipRotateToBitmap(
data, // 采集的原始预览流
1, // Android 相机一般采集的是 NV21 格式的,因此是 1
width, // 原始图像宽
height, // 原始图像高
270, // Android设备一般是 270 ,当然可以自己改,此处只是演示
faceRect, // 人脸识别后的人脸框数据
5, // 生成Bitmap格式,5表示 ARGB_8888
false // 不进行优先裁剪
)
}
```
更多其他操作,请参见 [文档说明](https://github.com/Reign9201/ImageUtils/blob/master/doc/ImageUtils%E5%BA%93%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3.md)。
---
## License
```
Copyright 2020 Yanjun Xu
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Android中各种图像格式转换(裁剪,旋转,缩放等一系列操作工具).zip (223个子文件)
libyuv_static.a 2.16MB
libyuv_static.a 2.16MB
libyuv_static.a 2.06MB
libyuv_static.a 2.06MB
libyuv_static.a 1.42MB
libyuv_static.a 1.42MB
libyuv_static.a 1.08MB
libyuv_static.a 1.08MB
libyuv_static.a 839KB
libyuv_static.a 839KB
AUTHORS 98B
libyuv_tests.bat 3KB
gradlew.bat 2KB
cpuid.c 3KB
row_gcc.cc 227KB
row_win.cc 198KB
row_neon.cc 132KB
row_neon64.cc 129KB
convert_test.cc 96KB
row_common.cc 79KB
planar_test.cc 73KB
planar_functions.cc 69KB
scale.cc 56KB
rotate.cc 48KB
row_mips.cc 45KB
scale_gcc.cc 44KB
convert.cc 43KB
scale_neon64.cc 41KB
convert_from.cc 41KB
scale_win.cc 40KB
scale_neon.cc 39KB
convert_from_argb.cc 36KB
scale_common.cc 34KB
scale_mips.cc 34KB
row_any.cc 33KB
convert_argb.cc 32KB
scale_argb.cc 28KB
rotate_mips.cc 23KB
psnr_main.cc 22KB
color_test.cc 21KB
rotate_neon64.cc 19KB
mjpeg_decoder.cc 18KB
rotate_neon.cc 18KB
scale_test.cc 15KB
compare_test.cc 15KB
scale_color_test.cc 14KB
convert_jpeg.cc 14KB
scale_argb_test.cc 13KB
convert.cc 13KB
convert_to_i420.cc 12KB
ssim.cc 12KB
compare.cc 11KB
convert_to_argb.cc 11KB
rotate_test.cc 10KB
psnr.cc 10KB
cpu_id.cc 9KB
scale_any.cc 8KB
rotate_argb_test.cc 7KB
rotate_argb.cc 7KB
compare_win.cc 7KB
compare_gcc.cc 5KB
math_test.cc 5KB
cpu_test.cc 5KB
video_common_test.cc 5KB
mjpeg_validate.cc 3KB
compare_neon.cc 2KB
unit_test.cc 2KB
compare_neon64.cc 2KB
compare.cc 2KB
video_common.cc 2KB
basictypes_test.cc 2KB
version_test.cc 1KB
compare_common.cc 1KB
README.chromium 203B
YuvUtils.cpp 31KB
ColorConvert.cpp 30KB
DEPS 940B
.gclient 587B
.gitignore 450B
.gitignore 211B
.gitignore 67B
.gitignore 34B
BUILD.gn 3KB
build.gradle 2KB
build.gradle 1KB
build.gradle 747B
settings.gradle 98B
gradlew 5KB
libyuv.gyp 5KB
libyuv_test.gyp 4KB
libyuv_nacl.gyp 963B
all.gyp 625B
gyp_libyuv 3KB
libyuv.gypi 2KB
row.h 85KB
row.h 85KB
scale_row.h 24KB
scale_row.h 24KB
planar_functions.h 16KB
planar_functions.h 16KB
共 223 条
- 1
- 2
- 3
资源评论
辣椒种子
- 粉丝: 4147
- 资源: 5780
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功