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

Android应用中对webp格式图片的处理,第1张

概述一、为什么用webp格式webp格式可以将图片尽量小得压缩,这个在移动应用中使用很广,且技术较成熟。二、编译动态库包编译的动态库包的源码参照GitHub地址请添加链接描述我的环境AndroidStudio3.0.1gradle3.3jdk1.8.0_101ndk-buildandroid-ndk-r10e-windows-x86_64导入AndroidSt

一、为什么用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现在用的越来越少,我给去掉了。

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

运行完成后会在jni目录下自动生成libs文件夹,生成动态库包如图:

此时动态库包就打好了,然后就是如何调用so包了,
在app目录下加入so包,


在我们自己需要引用的工程中build.gradle中加入配置 androID.sourceSets

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

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

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

ImageVIEw iv = findVIEwByID( R.ID.imageVIEw );Bitmap webpBitmap = WebPDecoder.getInstance().decodeWebP(bytes);        iv.setimageBitmap(webpBitmap);
总结

以上是内存溢出为你收集整理的Android应用中对webp格式图片的处理全部内容,希望文章能够帮你解决Android应用中对webp格式图片的处理所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1092086.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存