这里只公开一种哈:).另外一种效果会好些,代码更简单,但是是公司实现,不敢公开,而且对视频流本身有要求:
大家写视频程序,可以参考Vicat:
将QT调用摄相头的方法公布如下哈:(完成代码,在timeout事件中):
int x, y;
int i=0;
grab(&vd); //grab为自己实现的读取摄相头数据的程序
unsigned char *bit= vd.grab_data;
QImage img;
QRgb *point;
int r, g, b;
if(img.create(320, 240, 32, 0, QImage::IgnoreEndian))
{
for(x=0; x<240; x++){
for(y=0; y<320; y++){
r=(int)bit[i+2];
g=(int)bit[i+1];
b=(int)bit ;
point= (QRgb *)img.scanLine(x)+ y;
*point = qRgb(r,g,b);
i+=3;
}
}
}
paint.begin(this);
paint.drawImage(0, 0, img);
paint.end();
int x, y;
int i=0;
grab(&vd); //grab为自己实现的读取摄相头数据的程序
unsigned char *bit= vd.grab_data;
QImage img;
QRgb *point;
int r, g, b;
if(img.create(320, 240, 32, 0, QImage::IgnoreEndian))
{
for(x=0; x<240; x++){
for(y=0; y<320; y++){
r=(int)bit[i+2];
g=(int)bit[i+1];
b=(int)bit ;
point= (QRgb *)img.scanLine(x)+ y;
*point = qRgb(r,g,b);
i+=3;
}
}
}
paint.begin(this);
paint.drawImage(0, 0, img);
paint.end();