Android应用中对webp格式图片的处理-创新互联

一、为什么用webp格式
webp格式可以将图片尽量小得压缩,这个在移动应用中使用很广,且技术较成熟。

站在用户的角度思考问题,与客户深入沟通,找到惠来网站设计与惠来网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都做网站、企业官网、英文网站、手机端网站、网站推广、域名注册、网络空间、企业邮箱。业务覆盖惠来地区。

二、编译动态库包
编译的动态库包的源码参照GitHub地址请添加链接描述

我的环境
Android Studio3.0.1
gradle 3.3
jdk 1.8.0_101
ndk-build android-ndk-r10e-windows-x86_64

导入Android Studio,
注意Application.mk中的配置,APP_ABI配置是指需要生成哪些环境下的so包,我的环境起初添加了armeabi好像是有问题的,armeabi现在用的越来越少,我给去掉了。
Android应用中对webp格式图片的处理

Terminal中cd到jni路径执行命令如下:
ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_MK=./Application.mk

Android应用中对webp格式图片的处理

运行完成后会在jni目录下自动生成libs文件夹,生成动态库包如图:
Android应用中对webp格式图片的处理

此时动态库包就打好了,然后就是如何调用so包了,
在app目录下加入so包,
Android应用中对webp格式图片的处理
在我们自己需要引用的工程中build.gradle中加入配置 android.sourceSets

sourceSets {
        main {
                jniLibs.srcDirs = ['libs']//设置目标的so存放路径
        }
}

然后加入WebPDecoder.java,这里注意这个文件的路径一定要按照编译时的路径me.everything.webp.WebPDecoder。
当然如果需要也可以更改,不过要连编译时webp.c中的路径一并更改
Android应用中对webp格式图片的处理

三、使用动态库包展示webp
最后就是调用了,bytes是webp格式的bytes数组形式

ImageView iv = findViewById( R.id.imageView );
Bitmap webpBitmap = WebPDecoder.getInstance().decodeWebP(bytes);
        iv.setImageBitmap(webpBitmap);

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


标题名称:Android应用中对webp格式图片的处理-创新互联
文章位置:http://abwzjs.com/article/gjice.html