注意部分:
见下图,这里的所有为海康SDK32位的dll文件且在工程中引入到lib库中,我比较懒,索性把所有都加入了。。。
另外注意IP地址等网络摄像机的配置,192.168.1.64是海康网络摄像机的地址,admin是用户名
这样就可以运行了
//打开海康摄像头
NET_DVR_Init();
NET_DVR_DEVICEINFO_V30 info;
lusrid = NET_DVR_Login_V30("192.168.1.64", 8000, "admin", "admin123", &info);
if(lusrid < 0)
{
qDebug()<<"login Err="<winId();
//struPlayInfo.hPlayWnd = NULL;
struPlayInfo.lChannel = 1; //预览通道号
struPlayInfo.dwStreamType = 0; //0-主码流,1-子码流,2-码流3,3-码流4,以此类推
struPlayInfo.dwLinkMode = 0; //0- TCP方式,1- UDP方式,2- 多播方式,3- RTP方式,4-RTP/RTSP,5-RSTP/HTTP
ui.label->hide();
lhandle = NET_DVR_RealPlay_V40(lusrid, &struPlayInfo, NULL, NULL);
if(lhandle < 0)
{
//退出登录/释放资源/返回错误
}
else
{
timerForHIK->start(10);
}
picName=QString("1.jpg");
NET_DVR_SetCapturePictureMode(1);
NET_DVR_CapturePicture(lhandle, picName.toUtf8().data());
QPixmap ap;
ap.load(picName);
//ui.label->setPixmap(QPixmap::fromImage(image));//将图片显示到界面的label上
if(!ap.isNull())
{
QImage test_QImage= ap.toImage().scaled(ui.label_test->width(),ui.label_test->height());
ui.label_test->setPixmap(QPixmap::fromImage(test_QImage));//将图片显示到界面的label上}
下面是改变图像大小与控件label的大小相当
QImage newImg = image.scaled(Label->width(), Label->height()); Label->setPixmap(QPixmap::fromImage(newImg));