我想知道是否有办法确定QImage
是否有效。我在QLabel
中将该图像显示为像素图,有时当图像无效时。它不显示在QLabel
中,然后显示在<。p>中
有时无效的原因是图像是从外部数据加载的,有时数据可能会被破坏。
因此,我想知道是否有可能确切地确定QImage
是否有效。
答案 0 :(得分:13)
您可以检查数据加载的返回值,因为它是一个布尔返回值,当加载不成功时,它将为false。
以下是文档内容的相关部分,以方便您使用:
bool QImage::load(const QString & fileName, const char * format = 0)
使用给定的fileName从文件加载图像。如果图像成功加载,则返回true;否则会使图像无效并返回false。
如果您碰巧从文件或其他设备加载,您甚至可以使用QImageReader
。它有一个dedicated error enumeration进行微调。您也可以按原样查询errorString()。
话虽如此,如果由于某种原因你想继续使用QImage尽管加载不成功,你可以通过以下方法检查图像有效性:
如果是空图像,则返回true,否则返回false。
空图像的所有参数都设置为零,没有分配数据。
答案 1 :(得分:3)
如果加载图片时出现故障,则不会包含任何数据,因此您可以使用以下方法进行检查:
image.isNull()