如果图片的路径没错,那就是图片的后缀名被手动修改了(例如jpg格式被修改成了png),不同格式的图片存储方式有所差别,使用QPixmap的load方法加载时,默认是根据图片的后缀名区分格式,因此正确的加载方法是使用QPixmap的loadFromData方法,如下所示:
QFile fi(filePath);
if (fi.open(QIODevice::ReadOnly)) {
QPixmap pix;
pix.loadFromData(fi.readAll());
fi.close();
根据该方法,可以判断某个文件是否为图片,代码如下:
// 根据文件路径,判断文件是否为图片
bool isImage(const QString &filePath)
bool bRet = false;
QFile fi(filePath);
if (fi.open(QIODevice::ReadOnly)) {
QPixmap pix;
pix.loadFromData(fi.readAll());
bRet = !pix.isNull();
fi.close();
return bRet;
相对路径load("/test.png");图片与.pro文件放在同一个目录;
绝对路径load(“c:\test.png”);图片放在c盘下面;
欢迎使用Markdown编辑器
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
我们对Markdown...
转载自:http://blog.csdn.net/mangobar/article/details/52311963在debug 目录下建立images目录,放入图片Linux.jpgQPainter painter(this);
QPixmap pix;pix.load(“images/linux.jpg”);painter.drawPixmap(0,0,100,100,pix);
painter
QPixmap pixmap;
pixmap.load(“C:\1.jpg”);
总是返回false在QT的IDE环境中是能成功加载的,而单独运行却一直加载jpg图片失败。
原因是因为运行exe时,差一个库:imageformats\qjpeg.dllgif文件需要
imageformats\qgif.dll
QString filePath = qApp->applicationDirPath()+"/test.png";
QImage image(filePath);
qDebug()<<image.isNull()<<image.width()<<image.height()
输出为:true 0 0
这里用到了QImage的构造函数:QImage: