QImage显示时程序崩溃

_LinGM 2018-04-13 11:39:34
有一帧图像QVideoFrame frame;构造成QImage类型

QImage::Format imageFormat = QVideoFrame::imageFormatFromPixelFormat(frame.pixelFormat());
QImage img((uchar*)frame.bits(), frame.width(), frame.height(), frame.bytesPerLine(), imageFormat);
通过img.save()保存时没问题。

当图像显示在label上时:ui.image_label_->setPixmap(QPixmap::fromImage(img));
大概在执行QPixmap::fromImage(img)时程序崩溃了,中断跳转到此处:




1.崩溃的原因?怎么解决
2.如何绕开此处,显示QImage;
...全文
2965 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
_优秀的码农 2020-08-20
  • 打赏
  • 举报
回复
问下,是否是QImage这种构造初始化导致的错误,不能直接用结构体的里面的指针数据,我用了之后运行一段时间之后就会出错了,提示这个地方free两次失败了,是不是要拷贝出来处理?
超级皮皮猪 2018-06-22
  • 打赏
  • 举报
回复
请问你是怎么解决的呢,我现在是从YUV420转换成ARGB32的格式,然后把图片数据存到uchar的数组里面,用QImage的构造函数 QImage tmpImg((uchar *)image,640,480,QImage::Format_ARGB32);可以成功,并且也是可以save成jpg格式,但是一想用QPixmap渲染到QLabel上面的时候,QPixmap::fromImage(img);就会崩掉。。。
_LinGM 2018-04-19
  • 打赏
  • 举报
回复 1
已解决,用了QImage的copy方法,把图像拷贝出来。
_LinGM 2018-04-13
  • 打赏
  • 举报
回复
用了另一种方法绕开,先把QImage存储起来再显示出来
萧洛 2018-04-13
  • 打赏
  • 举报
回复
不要直接用QVideoFrame frame构建QImage。 申请一个空间,把QVideoFrame frame图像数据拷出来,再用这个空间构建QImage。

16,154

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧