QImage/QPixmap加载图片失败(宽和高都为0)的两种解决方法

Posted 草上爬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QImage/QPixmap加载图片失败(宽和高都为0)的两种解决方法相关的知识,希望对你有一定的参考价值。

先看现象,这里有一张图片test.png,windows照片查看器可以正常打开


但是用QImage加载时

QString filePath = qApp->applicationDirPath()+"/test.png";
QImage image(filePath);
qDebug()<<image.isNull()<<image.width()<<image.height()

输出为:true 0 0

这里用到了QImage的构造函数:QImage::QImage(const QString &fileName, const char *format = nullptr),由于format未指定,QImage会根据后缀来识别图片。
通常,我们用QImage或QPixmap加载一张图片时,可以通过isNull()来判断是否加载成功,当加载失败时,isNull()返回false,同时width()和height()也返回0。这种现象很好复现,只需修改图片的后缀。上面用到的test.png,原来的后缀是jpg,我直接改成了png。
下面来说解决方法,这两种方法都是基于Qt,无需第三方库或系统函数

方法一:

以上是关于QImage/QPixmap加载图片失败(宽和高都为0)的两种解决方法的主要内容,如果未能解决你的问题,请参考以下文章

texturepacker怎么用

cocos2dx学习:TexturePacker的使用

如何在 Python 3 中将 QImage(QPixmap) 转换为 PIL Image?

如何在Python 3中将QImage(QPixmap)转换为PIL图像?

iOS UIImageView如何做到Android那种宽和高都match_parent的(全屏)效果?

QT开发(二十九)——QT常用类