大家好!
我现在在用QT做一个基于摄像头的视频监控程序。在使用QImage类时遇到一个问题,向大家请教!
我首先将摄像头拍摄的图像数据读入一个unsigned char的数组rgb_buffer,然后用一个QByteArray结构的变量aa将BMP头和图像数据rgb_buffer放在一起,最后,然后将aa通过loadFromData函数赋给一个QImage变量。具体代码如下:
frame = new QImage(rgb_buffer,640,480,QImage::Format_RGB888);
QByteArray aa((const char*)0,14+40+640*480*3);
aa.append((char *)&bf,14);
aa.append((char *)&bi,40);
aa.append((char *)rgb_buffer,640*480*3);
bool flag;
flag = frame->loadFromData(aa,"BMP");
这样写程序可以编译和执行,但是在程序执行到 flag = frame->loadFromData(aa,"BMP");这句时总是会输出一个警告:QBuffer::seek: Invalid pos: 3538944
我不知道这个警告是怎么产生的,是不是loadFromData的用法不对?我将QImage的变量指针frame写成Widget类的一个成员变量了。是不是这里有问题?