如何检查QImage是否有效?

13

我想知道是否有办法确定 QImage 是否有效。我将该图像作为 pixmap 显示在 QLabel 中,但有时当图像无效时,它不会显示在 QLabel 中。

有时图像无效的原因是从外部数据加载图像,而该数据有时可能会损坏。

因此,我希望知道是否可以实际确定 QImage 是否有效。


你尝试过QImage::isNull吗? - brm
我还没有,我会尝试一下。 - MistyD
2个回答

14

由于加载图像的返回值是布尔类型,如果加载不成功,则返回false,您可以从数据中检查图像加载的返回值。

以下是相关文档的摘录:

bool QImage::load(const QString & fileName, const char * format = 0)

从给定的文件名fileName加载图像。如果图像成功加载,则返回true;否则使图像无效并返回false。

如果您从文件或其他设备加载图像,甚至可以使用QImageReader。它有一个专用错误枚举以进行精细调整。您还可以查询errorString()。

话虽如此,如果出于某种原因您想继续使用QImage,尽管加载不成功,您可以通过以下方法稍后检查图像的有效性:

bool QImage::isNull() const

如果图像为空,则返回true,否则返回false。

空图像的所有参数都设置为零且没有分配数据。


3

如果加载图像时出现故障,它将不包含任何数据,因此您可以使用以下方法进行检查:

image.isNull()

该图像可能已经被第三方库加载,因此即使它是由函数返回的(即没有发生异常或设置错误标志),它仍然可能无效。 - MasterID

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接