如何检查QImage是否有效

How to check if QImage is valid?

本文关键字:QImage 是否 有效 检查 何检查      更新时间:2023-10-16

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

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

因此,我想知道是否有可能实际确定QImage是否有效。

您可以从数据中检查图像加载的返回值,因为它是一个布尔返回值,当加载不成功时,它将为false。

以下是内联文档的相关部分,以方便您:

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

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

如果碰巧从文件或其他设备加载,您甚至可以使用QImageReader。它有一个用于微调的专用错误枚举。您也可以按原样查询errorString()。

也就是说,如果出于某种原因,尽管加载不成功,但你想继续进行QImage,你可以稍后通过以下方法检查图像的有效性:

bool QImage::isNull()const

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

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

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

image.isNull()