2016-08-03 70 views
1

alpha通道该应用被编译与下面的版本的配置:的Android WEBP编码:bitmap.compress(Bitmap.CompressFormat.WEBP,100,的OutputStream)不保存用于API <22

compileSdkVersion 23

buildToolsVersion “23.0.2”

的minSdkVersion 18

targetSdkVersion 23

该应用程序具有包含透明区域的位图。我正在使用WEBP格式将位图保存到文件。

位图的配置是ARGB_8888

bitmap.hasAlpha() returns true 

测试位图中的特定像素保存之前和证实一些区域是透明的。

bitmap.compress(Bitmap.CompressFormat.WEBP, 100, fileOutputStream) 

上述代码在使用API​​ v22,v23进行测试时工作正常。透明度细节存储在生成的文件中。

使用API​​ v18,v19,v21进行测试时,相同的代码不会将Alpha通道保存到文件。透明区域是黑色的。

所有API版本在解码WEBP文件时都能正常工作。

我即将捆绑libwebp与应用程序,但似乎像所有的文档表明这应该被支持。有没有人遇到类似的问题?

更新:我使用libwebp本机库实现了编码。仍然好奇,如果有人遇到同样的问题

+0

同样的问题,没有解决方案呢:http://stackoverflow.com/questions/39428789/bitmap-compressformat-webp-on-android-api-19-alpha-channel-becomes-black – ryuujin

回答

0

我认为它的Android中的错误。文档建议从4.2.1开始支持webp的alpha通道,但这可能只是在Chrome浏览器&图片库中查看的解码。

我解决了这个问题,通过集成libwebp本地库并通过JNI调用来编码位图。完美的作品!