欢迎加入技术谈论群:714476794
一、前言
Android图片压缩处理确实不如Ios,之前完全没听过libjpeg这个东西,工作闲余时间研究了了一天,总结下吧
libjpeg的介绍可以参考文章:http://blog.csdn.net/talkxin/article/details/50696511
二、编码前准备工作
1、ndk环境搭建
ndk工具包下载可以到http://www.androiddevtools.cn/ 下载解压就行了
因为我们需要用到ndk-build.cmd命令,为了方便需要配置环境变量
关于eclipse和Androidstudio的ndk配置可以自行百度google,笔者会在最后提供eclipse和AndroidStudio的demo
2、下载libjpeg库源码
- git clone地址:
git clone git://git.linaro.org/people/tomgall/libjpeg-turbo/libjpeg-turbo.git -b linaro-android
- 将clone下来的源码目录改为jni(即源目录libjpeg-turbo改为jni)
- 用ndk命令进行编译(需要配好ndk环境变量,命令行进入修改好的jni目录输入命令即可):
ndk-build APP_ABI=armeabi-v7a,armeabi
成功后就会多生成两个文件夹libs和obj,在libs下可以找到需要的libjpeg.so
jni文件下的.h头文件也是我们需要的。
三、撸代码
笔者开始是用eclipse写ndk的,而且eclipse对ndk的支持会比较好,其实不要在意使用哪种工具,代码核心都是一样的
这里笔者使用eclipse,AndroidStudio例子也会附上。
1、新建工程LIbjpeg
在工程目录新建jni目录,把我们编译的libjpeg需要的so库和.h头文件导入进来,并新建Android.mk文件和Application.mk,以及新建我们自己的libimagerar.c文件