如何检查QImage是否有效?

时间:2014-01-01 18:49:03

标签: c++ qt qimage qtgui

我想知道是否有办法确定QImage是否有效。我在QLabel中将该图像显示为像素图,有时当图像无效时。它不显示在QLabel中,然后显示在<。p>中

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

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

2 个答案:

答案 0 :(得分:13)

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

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

  

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

     

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

如果您碰巧从文件或其他设备加载,您甚至可以使用QImageReader。它有一个dedicated error enumeration进行微调。您也可以按原样查询errorString()。

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

  

bool QImage::isNull() const

     

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

     

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

答案 1 :(得分:3)

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

image.isNull()