它打开一个JPEG图像,但不打开另一个JPEG图像。目录和文件存在于我的系统上。为便于重新设计,以下代码中使用的图片为console test和f2。
#include "mainwindow.h"
#include <QApplication>
#include <QPixmap>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
QPixmap *pixmap = new QPixmap;
pixmap->load("C:/Programs/console test.jpg");
if(pixmap->isNull())
cout << "darn" << endl;
else
cout << "not null" << endl;
pixmap->load("C:/Programs/f2.jpg");
if(pixmap->isNull())
cout << "darn" << endl;
else
cout << "not null" << endl;
return a.exec();
}
上面的代码打印
darn
not null
如果相关,该应用程序是一个QWidget应用程序。
答案 0 :(得分:0)
console test.jpg实际上是一个PNG文件。 - Oktalist
Oktalist回答了这个问题。我天真地使用并将扩展从png改为jpg,期待文件转换。使用相同方法撤消更改后,图像将成功打开。
ifstream src("console print.jpg", ios::binary);
ofstream dest("console print.png", ios::binary);
dest << src.rdbuf();
dest.flush();
现在控制台打印具有正确的文件扩展名。它打开了。还有十亿种其他方法可以做到这一点,但这很容易。
-Sanfer