gpt4 book ai didi

android - 如何使用 BitmapFactory.decodeByteArray() 捕获 "png error"?

转载 作者:行者123 更新时间:2023-12-03 07:58:32 24 4
gpt4 key购买 nike

我的 Android 应用程序中有这个方法:

public void displayImage(ByteArrayOutputStream pngData) {
if (pngData != null) {
Bitmap image = BitmapFactory.decodeByteArray(pngData.toByteArray(), 0, pngData.size()); // even when this generates a log error...
if (image != null) { // ...this still evaluates true
this.imageView.setImageBitmap(image); // ...and then this displays an all-black image
}
}
}

有时, decodeByteArray失败, D/skia: ------ png error bad adaptive filter value出现在控制台中。但是, decodeByteArray仍然返回一个非空图像对象。然后 setImageBitmap显示空白(全黑)图像。

在这种情况下,我想简单地跳过显示图像,但我找不到测试此错误的方法。除了 image != null ,我也试过测试 image.getWidth() > 0 , image.getByteCount() > 0image.getDensity() > 0 ,但对于图像的好坏,它们都评估为 true。有没有办法捕获这个?

最佳答案

确实,在不同的android设备上,相同的接口(interface) bitmap = BitmapFactory.decodeFile("XXX.png");会返回不同的结果。例如,对于我上传的损坏的 png 文件 (https://www.dropbox.com/s/vkhw44mtzut15zr/bad.png?dl=0),通常移动设备会返回一个空位图,但 Nexus 6P 返回一个非空位图,但您无法在应用程序上预览它。

关于android - 如何使用 BitmapFactory.decodeByteArray() 捕获 "png error"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43531322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com