Qt无法加载图片,用的QImage::load() 5C

毕设用Qt,但是一直读不了图片,用的是QImage,图片格式为.jpg和.png,死活都读不出来。
代码如下
图片就放在当前文件夹内 T.T

     QString filename = "test.png";
    QImage* img=new QImage;
    if(! ( img->load(filename) ) ) {
            ui->labelMap->setText("图片加载失败.");
            delete img;
            return;
    }
        ui->labelMap->setPixmap(QPixmap::fromImage(*img));

img->load() 的返回值一直是false,求助各位大佬啊。

5个回答

要注意下,这样写文件的路径默认是在编译出来的程序目录里开始的。不是源码目录

楼上说的很对,你可以用qss来加载,也可以用setStyleSheet()函数

可执行程序所在的同一级目录中有对应的图片吗?如果没有,请使用绝对路径或者资源路径!

github_34965845
还需要再学习一个 怎么使用绝对路径啊,需要怎么修改?
一年多之前 回复

我也遇到过类似问题。最后我只能用BMP格式来加载。 JPG和PNG死活打不开

图片太大引起的,我试过

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
QT QImage 无法加载图片 png jpg
需要在Debug(或者Release)目录下面放置imageformats  : Debug\imageformats imageformats  在 Qt安装目录的plugins下面,直接拷贝过来就可以了。 记得确认一下目录:QImage(":/images/posy.jpg") 是当面代码目录的images文件夹。
QImage加载图片
QImage::loadFromData(const uchar * data, int len, const char * format = 0) 这个函数怎么用?
Qt中用QPixmap::load来加载图片
QPixmap
自学qt之QImage
QImage 纯软件绘图QImage image(size(),QImage::Format ARGB32 Premultiplied); QPainter imagepainter(&image); enum DrawTap{Butterfly,Dog}; DrawType drawType; QImage butterflyImage;
Qt使用QImage裁剪图片
今天想搞一个放大镜的功能,首先要解决如何裁剪图片的需求,于是翻遍网络好像没有和我想法一致的需求,我是需要移动框,然后框会自动裁剪当前的图片,于是查了下文档,自己写了一个Image的裁剪功能,记录如下:这样会成功截取图片,只使用QImage发现也会,但是位置会裁剪不准,至于放大镜功能,等搞完了看我另外一篇博客,到时会附上demo。如有更好思路请评论告知。...
QT的QImage应用代码
QT的,QImage的应用,绘图参考源代码。代码在在WinCE上测试通过。
【Qt】QImage使用总结
图像格式转换由 RGB 格式转换成 BGR 格式QImage::rgbSwapped() 返回一个QImage,其中所有像素的红色和蓝色组件的值被交换,有效地将RGB图像转换为BGR图像。QImage image(fileName); QImage bgr = image.rgbSwapped();将彩色图转换成 灰度图使用QImage::convertToFormat()函数, 参数选择QIm
Qt之图像处理QImage
1.QImage 这几天在处理gif格式的图片,目的是:将gif图片的背景设置为透明第一步,将gif的每一帧分离出来,这里偷懒了,直接度娘了一个分离工具直接分离了。 第二部,设置透明色(这个是重点)首先认识下几个会用到的接口(QImage的): bytesPerLine() :图像每一行的字节数(需要注意字节对齐问题,这个应该会根据图像的格式来规定对齐规则,具体还没有仔细研究) byteCo
Linux Qt QImage QPixmap
在Linux系统中, Qt程序使用QImage时rnQImage pixmap;rnbool ret = pixmap.load(m_FileName);
Qt学习——Qimage和Mat
一、Qimage 资料来源:http://doc.qt.io/qt-5/qimage.html 简介 Qimage类提供独立于硬件的图像描述,其允许直接对像素数据进行访问,同时可以作为绘画对象使用。 Qt提供了四个用于图像数据处理的类:QImage,QPixmap,QBitmap和QPicture。 QImage:主要用于I / O和对图像像素直接访问和操作。 QPixmap:主要用于...
延迟加载图片 Lazy Load
Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加 载长页面中的图片 . 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的. 在包含很多大图片长页面中延迟加载图片可以加快页面加载速度. 浏览器将会在加载可见图片之后即进入就绪状态. 在某些情况下还可以帮助降低服务器负...
QT用QImage读取图片问题
在A电脑上开发的程序,用QImage读取图片,把依赖的QT等所有动态库连同exe一起打包,放到B电脑上,QImage读图片失败,rn类似代码:rnQImage Image(fileName);rnQImage img;rnimg.load(fileName)rnrn上面两种方法遇到同样的错误。
无法加载图片
rnimport java.awt.*;rnimport java.awt.geom.*;rnimport javax.swing.*;rnpublic class ImageTest rn public static void main(String []args)rn rn rn JFrame frame =new DrawFrame();rn frame.setTitle("DrawTest");rn frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);rn frame.setVisible(true);rn rn rnrnclass DrawFrame extends JFramern public DrawFrame() rn add(new DrawComponent());rn pack();rn rnrnrnclass DrawComponent extends JComponentrn private static final int DEFAULT_WIDTH=400;rn private static final int DEFAULT_HEIGHT=400;rn public void paintComponent(Graphics g)rn rn Image img= new ImageIcon("stars.gif").getImage();rn g.drawImage(img, 0,0,100,100,null);rn rn rn public Dimension getPreferredSize() rn return new Dimension(DEFAULT_WIDTH,DEFAULT_HEIGHT);rn rnrn这是java核心技术书 上的一道例题,不知道为什么,就是不能显示出图片来,我使用的是eclipse,不管我是把将图片放在str新建的包中,还是和类文件中,都无无法在窗口中显示出来图片rn放在同一个包中
QT QImage使用方法(Qt学习1)
参考链接: 1、http://blog.csdn.net/feiyangyangfei/article/details/8672748 Qt信号与槽 以及图像在label缩放显示 //mysignal.h #ifndef MYSIGNAL_H #define MYSIGNAL_H #include #include #include #include #include
【Qt】QImage加载bmp位图数据
QImage直接加载bmp文件 QImage image(image.bmp); QImage加载已经获取的bmp数据 unsigned char *imageData = NULL; int imageLen = (102*3+2)*126+54; imageData = (unsigned char*)malloc(imageLen); FILE*stream; if((stream...
Glide 无法加载图片,加载图片失效
昨天中午遇到一个很奇葩的bug,glide就是不加载图片,而且不显示占位图片和错误图片,各种调试后还是无果; 我先描述下无法加载图片的场景; 我们的IM聊天页面给我们抛出了一个Adapter的实现接口,实现这个接口后可以在未实现的方法里面定义各种布局卡片(其实实现后就和Adapter类似); 由于这些布局卡片,由于这些卡片上的数据是动态的,每次在聊天页面加载卡片的时候就会获取网络请求,然后设置...
Qt QImage像素格式小结
-
Qt QImage 读取图片的问题
请教一个问题rn本人用QImage 加载一张 png 类型的图片,正常, 然后 把一张jpg图片比如a.jpg改为a.png(仅仅是手动的改了下文件名)rn这时QImage 加载是失败的,rnrn请问Qt中有没有什么类或者函数来 判断图片是什么类型的,就是根据图片的内容来判断,而不是根据图片的后缀名?谢谢。。。
Opencv Qt QImage转Mat
目的:在Qt creator中用QImage读取内存里的一张图片,转换成cv::Mat格式(或Iplimage格式)进行图像算法处理rn我实验用本地磁盘里的一张24位或者8位图像,可以顺利从QImage转成Mat,但从内存读取的图像就不行。rn读取本地图片代码如下:(8位图像,只用了一个通道)rn[code=c] QImage image("E:/Test_Picture/ver.tif");rn qDebug()<m_pRawBuffer,1000,700,QImage::Format_RGB888);rnMat mat =Mat(image.height(),image.width(),rnCV_8UC3, (uchar*)image.bits(), image.bytesPerLine());rnMat mat2 =Mat(mat.rows, mat.cols, CV_8UC3 );rnint from_to[] = 0,0,1,1,2,2;rnmixChannels(&mat,1,&mat2,1,from_to,3);rnrnnamedWindow("test");rnimshow("test",mat2);[/code]rnrn按道理说都是三个通道不应该出错啊,问题出在了哪里呢? rn第三段代码中如果QImage以Format_Index8格式读取的话,只拷贝第一个通道也是可以的,但是图片的结果是全部是蓝色,也就是Mat中B这个通道。求高手解答。rnrnrnrn或者从内存中能不能直接用Mat格式或者Iplimage格式读取,这样我就不用QImage转Mat了。rn
CImage::Load 加载图片失败,求助~
在MFC中用CImage::Load (path)加载一个20M的jpg文件时,load失败。rnrnCImage SrcImage;rnif(!SUCCEEDED(SrcImage.Load(FileName))) return FALSE; //这里一直失败,原因是下记返回了E_OUTOFMEMORYrnrninline HRESULT CImage::Load( LPCTSTR pszFileName ) throw()rnrn if( !InitGDIPlus() )rn rn return( E_FAIL );rn rnrn Gdiplus::Bitmap bmSrc( (CT2W)pszFileName );rn if( bmSrc.GetLastStatus() != Gdiplus::Ok )rn rn return( E_FAIL );rn rnrn return( CreateFromGdiplusBitmap( bmSrc ) ); // 这里返回了E_OUTOFMEMORYrnrnrn同样的代码在WIN7没问题,XP出问题。rnload失败后,关闭MFC程序,重新启动,再进行Load就可以成功。rn把该图片移动到一个新位置时一定失败(比如C盘移到D盘)。rnload小图片(10M以内)不会有问题。rnrn求大神解答~
QT图片格式转换(QImage和QPixmap、QImage和Mat互转)
废话不说,直接上代码。 QPixmap--&gt;QImage: QPixmap pix(path); QImage img = pix.toImage(); QImage--&gt;QPixmap: QImage img(path); QPixmap pix = QPixmap::fromImage(img); 下面QImage和Mat相互转换的代码,是某位博主写的,忘...
YOLOv3训练时显示无法加载图片cannot load image" "
问题上图。原因是:https://github.com/AlexeyAB/darknet/issues/325,  rain.txt格式不对 解决方法: 应该使用Notepad++                   (1)视图》显示符号》显示所有符号;                  (2)编辑》档案格式转换》转换为UNIX格式;                    确保最后一行有且仅有一个...
qt 动态的加载图片!
qt 怎么动态加载 图片 rn就是 我在数据库中存储了 相对文件夹位置的 图片 rn然后怎么动态的显示 rn就是我查询数据库 读到相应的 url rn然后 显示 rnrn高手指点一下 谢谢
qt 线程加载图片失败
linux 下安装的qt4,在主方法中可以从数据库加载图片,但是用线程就有问题,不知道怎么解决rn[code=c] pthread_t id;rn pthread_create(&id, NULL, reader, this);[/code]rnrnrn[code=c]void MainWindow::Event_Reader(void)rnrn int fRet, ln;rn char szbuz[64];rn uint32_t eid;rn for(;;)rn rn fRet = Mfr_OnEvent(eid, szbuz, sizeof(szbuz), ln);rn if(fRet)continue;rnrn sprintf(szbuz, "%X", eid);rn QSqlQuery query;rn query.prepare("select * from student where uid =:uid");rn query.bindValue(":uid",szbuz);rn query.exec();rn if(query.next())rn QString uid = query.value(0).toString();rn QString name = query.value(1).toString();rn QString sex = query.value(2).toString();rn QString no = query.value(3).toString();rn QString time = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss");rn QImage photo;rn photo.loadFromData(query.value(4).toByteArray(), "JPG");rn ui->PicLabel->setPixmap(QPixmap::fromImage(photo));rn ui->PicLabel->setScaledContents(true);rn ui->l_uid->setText(uid);rn ui->l_name->setText(name);rn ui->l_sex->setText(sex);rn ui->l_class->setText(no);rn ui->l_time->setText(time);rn rn rn[/code]
Qt加载图片(复合模式)
主要代码 #include "imagecomposer.h" #include "ui_imagecomposer.h" static QString mode[35]; static const QSize resultSize(200,200); ImageComposer::~ImageComposer() { delete ui; } void ImageComposer:
vs2013下Qt加载图片的问题
在Qtcreater中点击 .qrc 文件就有一个添加文件, 但是在vs2013中点击 .qrc文件没有,如果我要添加图片的话就得自己往.qrc文件里面一个一个写路径吗,没有简单的方法吗
QT加载图片和移动控件
在qt中移动控件 1、获取控件的位置函数名:QPoint pos() const 例如创建button按钮后 QPoint point = button->pos(); 如果要获取对应(x,y)的坐标, int x = button->pos().x(); int y = button->pos().y();2、移动控件获取控件的位置以后就可以移动控件的位置
QT 动态加载图片
怎样将打开的图片存到窗口,也就是怎样动态向图片库中添加图片。
QT加载图片和绘画
源程序:rn#includern#includern#includern#includern#includern#includern#includern#includernrnvoid paintCar(QPainter *p)rnrn QPointArray a;rn QBrush brush(Qt::yellow,Qt::SolidPattern);rn p->setBrush(brush);rn rn a.setPoints(5,50,50,350,50,450,120,450,250,50,250);rn p->drawPolygon(a);rn rn QFont f("courier",12,QFont::Bold);rn p->setFont(f);rnrn QColor windowColor(120,120,255);rn brush.setColor(windowColor);rn p->setBrush(brush);rn p->drawRect(80,80,250,70);rn p->drawText(180,80,150,70,Qt::AlignCenter,"--Qt --\nTrolltech AS");rnrn QPixmap pixmap;rn if(pixmap.load("jing.bmp"))rn p->drawPixmap(100,85,pixmap);rn p->setBackgroundMode(Qt::OpaqueMode);rn p->setBrush(Qt::DiagCrossPattern);rn p->drawEllipse(90,210,80,80);rn p->setBrush(Qt::CrossPattern);rn p->drawEllipse(310,210,80,80);rnrnrnclass PictureDisplay:public QWidgetrnrnpublic:rn PictureDisplay(const char *fileName);rn ~PictureDisplay();rnprotected:rn void paintEvent(QPaintEvent *);rn void keyPressEvent(QKeyEvent *);rnprivate:rn QPicture *pict;rn QString name;rn;rnrnPictureDisplay::PictureDisplay(const char *fileName)rnrn pict=new QPicture;rn name=fileName;rn if(!pict->load(fileName))rn rn delete pict;rn pict=0;rn name.sprintf("Not able to load picture:%s",fileName);rn rnrnrnPictureDisplay::~PictureDisplay()rnrn delete pict;rnrnrnvoid PictureDisplay::paintEvent(QPaintEvent *)rnrn QPainter paint(this);rn if(pict)rn paint.drawPicture(*pict);rn elsern paint.drawText(rect(),AlignCenter,name);rnrnrnvoid PictureDisplay::keyPressEvent(QKeyEvent *k)rnrn switch(tolower(k->ascii()))rn rn case 'r':rn pict->load(name);rn update();rn break;rn case 'q':rn QApplication::exit();rn break;rn rnrnrnrnint main(int argc,char **argv)rnrn QApplication a(argc,argv);rn const char *fileName="car.pic";rn rn if(argc==2)rn rn fileName=argv[1];rn rn rn if(!QFile::exists(fileName))rn rn QPicture pict;rn QPainter paint;rnrn paint.begin(&pict);rn paintCar(&paint);rn paint.end();rn rn pict.save(fileName);rn QMessageBox::information(0,"Qt Example - Picture","Saved.Run me agein!");rn return 0;rn rn elsern rn PictureDisplay test(fileName);rn a.setMainWidget(&test);rn test.setCaption("Qt Example - Picture");rn test.show();rnrn return a.exec();rn rnrnrnrnrnrn这个例子是QT帮助文档的示例,名字叫picturern运行时怎么加载不了图片,两张图片都和.cpp文件在同一个目录下。rn运行提示为rnQPicture::checkFormat: Incorrect headerrn我看了一下头文件,我都加了怎么还是运行显示不了图片,求解
Qt实用技巧:测试QImage加载解码、QImage使用原数据、QImage格式转换等等的时间消耗
需求        测试Qt软解码时间,测试QImage数据类型转换的时间,确定项目方案。Demo        下载地址:https://download.csdn.net/download/qq21497936/10287385      ReadMe测试耗时项        1.从文件读取二进制转为image再到pixmap的时间        2.image加载文件转换成pixmap的时间...
TWaverUtil.getImage()方法无法加载图片
[code=Java]Image image = TWaverUtil.getImage("images/love.png");[/code]rn运行提示rn[color=#FF0000]can't load image 'images/aa.png'[/color]rn我觉得路径是对的,为什么不能加载图片呢rnrn注:图片在根目录下的images文件的aa.png
Xcode9无法加载图片?
今天在项目中想要使用 UIImageView 显示图片的时候在模拟器上却总是显示不了图片。如果将 UIImageView 的背景颜色设置为黄色的时候,在模拟器上就会看到一个黄色的矩形框,图片仍然没有显示出来。     在网上找了一下,原来Xcode9进行了一些调整。从外部直接拖进项目的图片需要在Xcode里面配置一下,而不像以前一样可以直接使用。我在项目中直接从外面拖了两张图片:下面是配置:
qt QPixmap load 失败
在windows 环境下开发,希望在标签上显示图片。但是一直报图片加载失败。rn QLabel *label = new QLabel;rn QPixmap pic;rn if(pic.load("D:\\test.png"))rn rn lable->setPixmap(pic);rn
django 无法加载图片问题
在HTML模板中无法加载media的图片 !! 经过一系列的查找,总结出以下两种办法: 第一种: 步骤1:在settings.py文件的最后加上以下内容: STATIC_URL = ‘/static/’ STATIC_ROOT = os.path.join(os.path.dirname(file),’static’) 设置图片等静态文件的路径 STATICFILES_DIRS = ( (‘css...
Qt setPixmap load 内存泄露
rt,用QT写了一个东西,需要不断的调用load和setPixmap函数在QLabel上面显示图像,按钮关联调用,不断点击按钮会发现内存不断增加,经排查,内存增加比较严重的地方就是这两个函数这里,不知道如何在不关闭界面的情况下及时释放掉占用的内存?因为这两个函数加载显示图像用完也就完了,后面也无它用,可以释放掉,但是感觉这里并没有释放掉。下面贴一些代码,主要是不断调用下面两个函数,内存一直增加,麻烦大家帮忙看一下,感谢。rn[code=c]void TestDir::on_signal_show_image1(const QString &picture_path)rnrn /*QImageReader reader(picture_path);rn reader.setAutoTransform(true);rn QImage newImage = reader.read();rn ui.image1->setPixmap(QPixmap::fromImage(newImage));*/rnrn /*QPixmap p;rn p.load(picture_path); rn ui.image1->setPixmap(p);*/rnrn ui.image1->clear();rn image.load(picture_path);[color=#FF6600]//吃内存[/color]rn image = image.scaled(image.size(), Qt::KeepAspectRatio);rn ui.image1->setPixmap(QPixmap::fromImage(image));[color=#FF6600]//吃内存[/color]rnrnrn /*QPixmap *p = &QPixmap(picture_path);rn ui.image1->setPixmap(*p);rn delete p;*/rn rnrnvoid TestDir::on_signal_show_image2(const QString &picture_path)rnrn ...............................rn ui.image2->clear();rn ...............................rn IplImage* imageCVShow = ....rnrn cvCvtColor(imageCVShow, imageCVShow, CV_BGR2RGB);rn image = QImage((const unsigned char*)imageCVShow->imageData, imageCVShow->width, imageCVShow->height, QImage::Format_RGB888);rn image = image.scaled(image.size(), Qt::KeepAspectRatio);rn ui.image2->setPixmap(QPixmap::fromImage(image));[color=#FF6600] //吃内存![/color]rn cvReleaseImage(&imageCVShow);rnrnrnrn[/code]
Tomcat无法加载图片-SpringMVC框架下
我的静态资源文件如下: 若是用springMVC,则可在spring.xml配置环境下编写:        其中xml文件需要导入: xmlns:mvc="http://www.springframework.org/schema/mvc" http://www.springframework.org/schema/mvc http://www.sp
Qicon无法加载图片
Qicon仅支持jpg。。。
gdi+ 的bitmap 无法加载图片
rn rnstrPath 是一个CString类型的图片路径rnrnBitmap img(strPath);rn rnBitmap* pThumbnail = static_cast(img.GetThumbnailImage(100, 75, NULL, NULL));rnpThumbnail->GetHBITMAP(Gdiplus::Color(0, 255, 255, 255), &hBmp);rnrn上面代码运行时出现rnUnhandled exception at 0x00f8a9b3 in mfcTester.exe: 0xC0000005: Access violation reading location 0x00000004.rnrn在我单步调试的时候发现Bitmap img(strPath)根本就没有把图片加载成功,在static_cast后pThumbnail的值为0rnrn我在别人的源代码里却可以正常运行和上面差不多的代码rnrnrn// load the bitmaprnstrPath.Format( TEXT("%s\\%s"), m_strImageDir, *iter );rnrnUSES_CONVERSION;rnBitmap img( A2W(strPath) );rnBitmap* pThumbnail = static_cast(img.GetThumbnailImage(THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, NULL, NULL));rn rn// attach the thumbnail bitmap handle to an CBitmap objectrnpThumbnail->GetHBITMAP(NULL, &hBmp);rnpImage = new CBitmap(); rnpImage->Attach(hBmp);rnrn请问这是为什么,上下两段代码没有什么区别吧,它么加载同一张图片,上面的失败了,下面的成功~~rn下面的代码时候是在ansi下运行的,上面的是unicodern
opencv1.0无法加载图片
在vs2010中,用opencv1.0,为什么无法加载并且显示图片???????????rn
QT学习(8) 绘图设备之QImage
继续讨论绘图设备,QImage适合多线程绘图。可以执行像素点操作。 重写Widget构造函数如下: Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui-&amp;gt;setupUi(this); //创建一个绘图设备,Format设置为背景透明 QImage ...
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件