LibYuv-AndroidYUV 转换工具库
LibYuv 是基于Google的libyuv编译封装的YUV转换工具库,主要用途是在各种YUV与RGB之间进行相互转换、裁减、旋转、缩放、镜像等。
Gif 展示
你也可以直接下载 演示App 体验效果
使用
使用概要
LibYuv中的功能方法主要包括:格式转换、裁减、旋转、缩放、镜像等;下面就以文档注释的形式对一些主要的方法做个简要说明。
格式转换
/** * 将Image转换为I420 * * @param image 图像;{@link Image} * @param degrees 需要旋转的角度 * @return 返回I420数据 */ LibYuv.imageToI420(image, degrees)
/** * NV21转I420 * * @param nv21Data 源NV21数据 * @param width 图像宽度 * @param height 图像高度 * @return 返回I420数据 */ LibYuv.nv21ToI420(nv21Data, width, height)
/** * I420转NV21 * * @param i420Data 源I420数据 * @param width 图像宽度 * @param height 图像高度 * @return 返回NV21数据 */ LibYuv.i420ToNv21(i420Data, width, height)
通用格式转换(各种YUV与RGB之间相互转换)
/** * 将I420数据转换为指定格式的数据 * * @param i420Data 源I420数据 * @param width 图像宽度 * @param height 图像高度 * @param fourcc 指定数据格式;{@link FourCC} * @return 返回转换成指定格式后的数据 */ LibYuv.convertFromI420(i420Data, width, height, fourcc)
/** * 将指定格式的数据转换为I420数据 * * @param srcData 源数据 * @param width 图像宽度 * @param height 图像高度 * @param fourcc 指定数据格式;{@link FourCC} * @return 返回I420数据 */ LibYuv.convertToI420(dstData, width, height, fourcc)
旋转
/** * 将指定格式的数据进行旋转 * * @param srcData 源数据 * @param width 图像宽度 * @param height 图像高度 * @param degrees 需要旋转的角度;{@link RotationMode} * @param fourcc 指定数据格式;{@link FourCC} * @return 返回旋转后的数据 */ LibYuv.rotate(srcData, width, height, degrees, fourcc)
缩放
/** * 将指定格式的数据进行缩放 * * @param srcData 源数据 * @param width 图像宽度 * @param height 图像高度 * @param dstWidth 目标宽 * @param dstHeight 目标高 * @param fourcc 指定数据格式;{@link FourCC} * @param filterMode 压缩过滤模式;{@link FilterMode} * @return 返回缩放后的数据 */ LibYuv.scale(srcData, width, height, dstWidth, dstHeight, fourcc, filterMode)
裁减
/** * 将指定格式的数据进行裁减 * * @param srcData 源数据 * @param width 图像宽度 * @param height 图像高度 * @param cropRect 裁减的矩形区域 * @param fourcc 指定数据格式;{@link FourCC} * @return 返回裁减后的数据 */ LibYuv.crop(srcData, width, height, cropRect, fourcc)
镜像
/** * 将指定格式的数据进行镜像翻转 * * @param srcData 源数据 * @param width 图像宽度 * @param height 图像高度 * @param fourcc 指定数据格式;{@link FourCC} * @return 返回镜像翻转后的数据 */ LibYuv.mirror(srcData, width, height, fourcc)
更多使用详情,请查看app中的源码使用示例或直接查看 API帮助文档
评论