我正在对相对较新的webP图像格式进行一些实验,该格式在android 4(ICS)上得到支持,如此处所示。
到目前为止,为了在加载之前获得图像大小,我使用了下一个代码(类似于谷歌在这里显示的):
final BitmapFactory.Options options=new BitmapFactory.Options();
options.inJustDecodeBounds=true;
BitmapFactory.decodeStream(inputStream,null,options);
//image size is in options.outWidth,options.outHeight
然而,当我在具有透明度的webP图像上使用它时,它似乎根本无法获得这些信息(宽度和高度都返回-1)。
谷歌有可能在解码这种图像文件类型时出现错误吗?
有办法克服这个问题吗?
为了测试它,只需将一个具有透明度的png文件(比如我使用过的这个文件,并通过paint.net应用程序添加了一些透明像素)转换为webP格式(使用谷歌的工具),然后像我使用的代码一样读取文件的分辨率。
我也遇到了这个问题。
遗憾的是,根据这个错误报告,对WEBP的透明支持只在Android JB-MR2(4.2)中添加
所以在android 4.0到4.2版本中,WEBP只有在没有alpha通道的情况下才有效。