Skip to content

一个快速的图片压缩库,各个版本Turbo jpeg 的jni实现,以及libyuv的转码库

Notifications You must be signed in to change notification settings

ChineseBoyLY/CBLYTurboJPEG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CBLYTurboJPEG

一个快速的图片压缩库,各个版本Turbo jpeg 的jni实现,以及libyuv的转码库

建议编译的时候最新采用最新的版本libjpeg-turbo-1.5.2,默认mk文件里面已经采用了此版本,老的版本里面好像没有tjCompressFromYUV函数。

jni可以编译出libyuv.a 和 libturbo.a

jpegtubo 可以编译出在Android中使用的so库

真心快到没有朋友!!!

使用示例:

private byte[] mTempI420 = null;
private byte[] mMaxJpeg = null;

public void onPreviewFrame(byte[] nv21,xxxx) {

    if(mTempNv21 == null) {
	mTempNv21 = new byte[nv21.length]
    }

    if(mMaxJpeg == null) {
	mMaxJpeg = new byte[nv21.length * 2]
    }

    int compressSize = TurboJpegLib.yuv2jpeg(nv21, mTempI420, previewW, previewH, 
						TJ.SAMP_420, mMaxJpegData, 70, TJ.FLAG_BOTTOMUP);
     
    // 下方返回的结果就是最终把nv21帧数据压缩后的jpeg的二进制字节
    byte[] jpegDataOut = Arrays.copyOfRange(mMaxJpegData, 0, compressSize);

}

jni层还可以扩展很多函数,欢迎大家一起来挖掘完善学习。

About

一个快速的图片压缩库,各个版本Turbo jpeg 的jni实现,以及libyuv的转码库

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published