建议搭配视频食用:
【【QT】QT调用电脑摄像头并拍照】 https://www.bilibili.com/video/BV1pc411G7qy/?share_source=copy_web&vd_source=c0d9dd4e64b88e4dbf93ac009c2010dc
一、在pro文件中添加‘multimedia multimediawidgets’
二、在ui界面创建一个widget并改名为camera用于展示摄像头内容和pushbutton 用于拍照,并右键pushbutton点击转到槽备用
三、对.h文件的操作
添加头文件文章来源:https://www.toymoban.com/news/detail-521129.html
//摄像头
#include <QCameraImageCapture>
#include <QCamera>
在private中创建两个摄像头对象
//创建两个摄像头对象
QCamera *ca;
QCameraImageCapture *capture;
四、对.cpp文件的操作
添加头文件
//调用摄像头
#include <QCameraInfo>
#include <QCamera>
#include <QCameraViewfinder>
#include <QCameraImageCapture>
#include <QPixmap>
//弹窗
#include <QMessageBox>
编写调用摄像头代码
//获取可用摄像头设备并输出在控制台
QList<QCameraInfo> infos = QCameraInfo::availableCameras();
qDebug() << infos.value(0).deviceName() << ":" <<infos.value(0).description();
QString camera = infos.value(0).deviceName();
qDebug() << camera;
//显示摄像头
ca =new QCamera(camera.toUtf8() ,this );
ui->camera->show();
QCameraViewfinder *v2 = new QCameraViewfinder(ui->camera);
v2->resize(ui->camera->size());
ca->setViewfinder(v2);
v2->show();
ca->start();
编写点击按钮时的拍照代码
//截取用户打卡时的图片
capture = new QCameraImageCapture(ca);
capture->capture("E://你的文件夹//命名.jpg");
QMessageBox::information(this, "good", "good!");
五、最后运行
补档
如何让每次截图照片文件的命名不一样
解决方法:每次截图时加上时间做以区分,代码如下
添加头文件
#include <QDateTime>
将点击事件函数改为如下格式文章来源地址https://www.toymoban.com/news/detail-521129.html
void MainWindow::on_pushButton_clicked()
{
//截取用户打卡时的图片
capture = new QCameraImageCapture(ca);
QDateTime time = QDateTime::currentDateTime();//获取当前时间
QString nameseed = time.toString("yy-MM-dd hh-mm-ss");//将当前时间格式化,注意:时分秒之间不能用:连接,因为文件命名时不可以使用:
capture->capture("E://RuanJianGongCheng//capture//"+ nameseed +".jpg");
QMessageBox::information(this, "good", "good!!!");
}
到了这里,关于【QT】QT调用电脑摄像头并拍照的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!