最近在做关于视频的一个东东在VC6.0++下运行正确,现在移植到linux环境下,用qt4.4.3做的,在vc上是这样作的:
现转换:YUV到RGB,RGB数据 保存在指针pBmp上,然后定一个 BITMAPINFO m_BmpInfo
作为hBmp的头,也就是bmp图像的头信息
设置相关大小属性,在定义一个HBITMAP hBmp, 其中
hBmp = CreatDIBitmap( ...... , pBmp ,......) 省去了 前后参数
然后显示。
现在移植到QT下,我是这样做的:
QImage tmp(pBmp, width, height, QImage::Format_RGB32);
QPixmap pixmap = QPixmap::fromImage(tmp);
在显示在QLabel上:setPixmap(pixmap);
但是这样的效果和VC上的不一样。
不知道是什么原因,请大家帮帮我,谢谢
下面是对比图:
qt下的效果:感觉就是出来个轮廓
通过自己的观察发现,QT显示的效果下有4个重影,于是感觉到读的数据多了于是造成了重影效果,
最后修改了下程序:QImage tmp(pBmp, width, height, QImage::Format_RGB888);
后,结果和vc下效果相同了!
再次感谢论坛的朋友!
[ 此贴被zly_0703在2008-10-14 14:34重新编辑 ]