我写道,从检索网站(JPEG,PNG,...),这是我的话,保存到磁盘WEBP格式的图像服务。
我使用下面的代码保存图像:
try (FileOutputStream fos = new FileOutputStream(imgFile)) {
bitmap.compress(Bitmap.CompressFormat.WEBP, 100, fos);
} catch (IOException e) {
Log.e(TAG, "IOException writing file");
} catch (SecurityException e) {
Log.e(TAG, "SecurityException writing file");
}
我没有得到任何警告。
如果应用程序在设备运行与API 22或23解码的图像文件被示出具有alpha通道存在时。
如果我运行在API19模拟器应用程序的解码图像不与alpha通道(它示出黑色)中所示。
我优选WEBP因为比PNG更轻,它应具有alpha通道。
PS:我与质量80和100尝试过
注释1
所检索的图像是具有alpha通道PNG。
中的其他设备(和仿真器太)与API相同的图像> 22 WEBP转换时,它显示了透明度。
我与其他巴新尝试过。 如果我使用检索到的位图,我把它保存为PNG在它被显示为透明正确的所有设备,在API 19了。
当我将它保存在WEBP格式的问题只验证。 我试图把从仿真器API 19的WEBP编码文件,它有不alpha通道了。
我找回这样的位图:
try (InputStream is = new URL(mImageUrl).openStream()) {
bitmap = BitmapFactory.decodeStream(is);
} catch (MalformedURLException e) {
Log.e(TAG, "MalformedURLException " + e.getMessage());
} catch (IOException e) {
Log.e(TAG, "IOException decoding url " + e.getMessage());
}
评论2
如果我试图用一个透明度从我的电脑替换在模拟器中WEBP文件,然后...该应用程序会显示与透明度的图像。
因此,它是的文件是如何保存的问题!