关于label显示另一个线程发来的图片的问题
2017-03-06 15:32
465 查看
情景在现:
thread A:从摄像头获取图片不断的发送给主线程去显示
main thread :图片的显示。
result
在电脑上能正常显示,可到了板子上只能显示第一张图,后续的图不显示了。代码运行是正常的,无错。
处理
开始的笨办法是直接把LABEL指针传给分线程,处理显示都在分线程中。由于这样做不是很稳定,后期优化我就试着回到分线程处理,主线程显示的道路上来了。
在直接发送pic的过程中可能出现问题,具体什么我自己也忘了,当时解决了就没管了,应该是如果你在显示图片的方法中加了其它处理导致时间太长,那么分线程上的pic可能又在加载就会导致出现问题。
后来我在做优化时要显示局部图像,因此使用了COPY,这下突然之间板子上也能正常显示图片了!!!!太惊奇了,不理解问题的原因所在。
在发送图片之前做如下处理
thread A:从摄像头获取图片不断的发送给主线程去显示
void CCamWorker::captureLoop(void) { int r=0; int trygetcnt = 0; qDebug()<<QThread::currentThread()<<__FUNCTION__; if(!thread->isRunning()) AnnReturnNone("video thread is no exist."); streamOn(); sleep(2); workstatus = CAPTURING; QReadLocker locker(&datalock); locker.unlock(); QPixmap pic; while(CAPTURING==workstatus) { r = readFrame(5); if(-1==r) { if(trygetcnt++ > 1) { emit resultReady(pic); break; } streamOff(); streamOn(); } else { trygetcnt = 0; locker.relock(); bool ret = pic.loadFromData((uchar *)img.pfile,img.size); locker.unlock(); if(ret&&!pic.isNull()) { emit resultReady(pic); } } } streamOff(); workstatus = QUITED; }
main thread :图片的显示。
connect(this,SIGNAL(resultReady(QPixmap))\ ,this->label,SLOT(setPixmap(QPixmap)));
result
在电脑上能正常显示,可到了板子上只能显示第一张图,后续的图不显示了。代码运行是正常的,无错。
处理
开始的笨办法是直接把LABEL指针传给分线程,处理显示都在分线程中。由于这样做不是很稳定,后期优化我就试着回到分线程处理,主线程显示的道路上来了。
在直接发送pic的过程中可能出现问题,具体什么我自己也忘了,当时解决了就没管了,应该是如果你在显示图片的方法中加了其它处理导致时间太长,那么分线程上的pic可能又在加载就会导致出现问题。
后来我在做优化时要显示局部图像,因此使用了COPY,这下突然之间板子上也能正常显示图片了!!!!太惊奇了,不理解问题的原因所在。
在发送图片之前做如下处理
if(ret&&!pic.isNull()) { QPixmap tmppic = pic.copy(view_rect.x,view_rect.y,view_rect.width,view_rect.height); emit resultReady(tmppic); }
相关文章推荐
- 关于tabBar的图片不能正常显示问题
- 关于Android加载HTML页面中的图片显示问题的解决办法
- WPF 图片无法显示……关于Application及SiteOfOrigin的路径问题
- 关于jsp页面上无法显示图片的问题
- 关于图片资源在android2.1/2.2/2.3下无法显示的问题以及解决方法
- 关于Java Label里设置图片的若干问题
- 关于自定义View显示gif图片的问题解决
- 关于UITabBar 显示图片的问题
- 关于图片文件src路径有空格显示不出来的问题
- 关于UIImageView的显示问题——居中显示或者截取图片的中间部分显示
- 关于播放器锁屏图片不显示问题
- QT 下载图片后label不显示.png的问题
- 关于UIImageView的显示问题——居中显示或者截取图片的中间部分显示
- 关于selector中图片显示的一个小问题
- 关于jar生成exe时出现背景图片无法显示的问题
- Android 关于RecyclerView瀑布流显示图片时Item切换、闪烁等问题优化
- 关于应用程序图片在保存读取显示所遇到的问题。
- windows游戏开发中一个关于Visual Studio的编译链接成功,输出窗口却显示线程已退出。无法运行项目的问题
- 关于jsp页面中显示中文图片问题
- 关于mschart控件在mvc项目中的webform里面显示不出图片的问题