#include #include #include #include #include #include #include #include #include int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QMediaCaptureSession captureSession; auto camera = new QCamera; captureSession.setCamera(camera); auto imageCapture = new QImageCapture; imageCapture->setResolution(1000,1000); captureSession.setImageCapture(imageCapture); qDebug() << "QImageCapture" << imageCapture->isReadyForCapture() << imageCapture->isAvailable(); QObject::connect(imageCapture,&QImageCapture::imageCaptured,[](int id,const QImage &image){ qDebug() << "QImageCapture::imageCaptured" << id << image; image.save(QString("CapturedImage_%1.png").arg(QTime::currentTime().toString("HH-mm-ss-zzz"))); }); QObject::connect(imageCapture,&QImageCapture::imageAvailable,[](int id, const QVideoFrame &frame){ qDebug() << "QImageCapture::imageAvailable" << id << frame; }); QObject::connect(imageCapture,&QImageCapture::readyForCaptureChanged,[imageCapture](bool ready){ qDebug() << "QImageCapture::readyForCaptureChanged" << ready; if(ready) { qDebug() << "captureToFile called"; imageCapture->captureToFile(); } qDebug() << "MetaData" << imageCapture->metaData().keys(); }); QObject::connect(imageCapture,&QImageCapture::errorOccurred,[](int id, QImageCapture::Error error, const QString &errorString) { qDebug() << "QImageCapture::errorOccurred" << id << error << errorString; }); QObject::connect(imageCapture,&QImageCapture::imageSaved,[](int id, const QString &fileName) { qDebug() << "QImageCapture::imageSaved" << id << fileName; }); QObject::connect(camera, &QCamera::activeChanged, [imageCapture](bool active){ qDebug() << "QCamera::activeChanged" << active; }); QObject::connect(camera, &QCamera::errorOccurred, [](){ qDebug() << "Camera::errorOccurred";}); camera->start(); qDebug() << "Start Eventloop"; QTimer::singleShot(10000, &a, &QCoreApplication::quit); QTimer::singleShot(5000, [imageCapture](){ qDebug() << "-------------------------------------------- captureToFile in timers"; imageCapture->capture(); qDebug() << "-------------------------------------------- captureToFile in timers" << imageCapture->resolution(); }); int rtn = a.exec(); }