当前位置:   article > 正文

【QT】QT调用电脑摄像头并拍照

qt调用电脑摄像头并拍照

建议搭配视频食用:

【【QT】QT调用电脑摄像头并拍照】 https://www.bilibili.com/video/BV1pc411G7qy/?share_source=copy_web&vd_source=c0d9dd4e64b88e4dbf93ac009c2010dc

一、在pro文件中添加‘multimedia multimediawidgets’

二、在ui界面创建一个widget并改名为camera用于展示摄像头内容和pushbutton 用于拍照,并右键pushbutton点击转到槽备用

三、对.h文件的操作

添加头文件

  1. //摄像头
  2. #include <QCameraImageCapture>
  3. #include <QCamera>

 在private中创建两个摄像头对象

  1. //创建两个摄像头对象
  2. QCamera *ca;
  3. QCameraImageCapture *capture;

四、对.cpp文件的操作

添加头文件

  1. //调用摄像头
  2. #include <QCameraInfo>
  3. #include <QCamera>
  4. #include <QCameraViewfinder>
  5. #include <QCameraImageCapture>
  6. #include <QPixmap>
  7. //弹窗
  8. #include <QMessageBox>

 编写调用摄像头代码

  1. //获取可用摄像头设备并输出在控制台
  2. QList<QCameraInfo> infos = QCameraInfo::availableCameras();
  3. qDebug() << infos.value(0).deviceName() << ":" <<infos.value(0).description();
  4. QString camera = infos.value(0).deviceName();
  5. qDebug() << camera;
  6. //显示摄像头
  7. ca =new QCamera(camera.toUtf8() ,this );
  8. ui->camera->show();
  9. QCameraViewfinder *v2 = new QCameraViewfinder(ui->camera);
  10. v2->resize(ui->camera->size());
  11. ca->setViewfinder(v2);
  12. v2->show();
  13. ca->start();

编写点击按钮时的拍照代码

  1. //截取用户打卡时的图片
  2. capture = new QCameraImageCapture(ca);
  3. capture->capture("E://你的文件夹//命名.jpg");
  4. QMessageBox::information(this, "good", "good!");

五、最后运行

补档

如何让每次截图照片文件的命名不一样

解决方法:每次截图时加上时间做以区分,代码如下

添加头文件

#include <QDateTime>

将点击事件函数改为如下格式

  1. void MainWindow::on_pushButton_clicked()
  2. {
  3. //截取用户打卡时的图片
  4. capture = new QCameraImageCapture(ca);
  5. QDateTime time = QDateTime::currentDateTime();//获取当前时间
  6. QString nameseed = time.toString("yy-MM-dd hh-mm-ss");//将当前时间格式化,注意:时分秒之间不能用:连接,因为文件命名时不可以使用:
  7. capture->capture("E://RuanJianGongCheng//capture//"+ nameseed +".jpg");
  8. QMessageBox::information(this, "good", "good!!!");
  9. }

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号