Hi i am trying to record my camera with qcamera but i dont have many experience.
I declare in headers this:
#include <QPixmap>
#include <QDir>
#ifdef Q_WS_WIN
#include <windows.h>
#include <vfw.h>
#endif
class QCamera;
class QCameraViewfinder;
class QCameraImageCapture;
void encender();
void apagar();
#include <QPixmap>
#include <QDir>
#ifdef Q_WS_WIN
#include <windows.h>
#include <vfw.h>
#endif
class QCamera;
class QCameraViewfinder;
class QCameraImageCapture;
class QVBoxLayout;
class QMenu;
class QAction;
QAction *mEncenderAction;
QAction *mApagarAction;
QAction *mCapturarAction;
QPixmap capturar();
void encender();
void apagar();
To copy to clipboard, switch view to plain text mode
cpp file:
#include "../headers/webcamwin.h"
#include <QFile>
#include <QCamera>
#include <QCameraViewfinder>
#include <QCameraImageCapture>
#include <QVBoxLayout>
#include <QMenu>
#include <QAction>
#include <QFileDialog>
void encender()
{
connect(mApagarAction,&QAction::triggered,&{
mCamera->start();
});
}
void apagar()
{
mCamera->stop();
}
{
connect(mCapturarAction,&QAction::triggered,[&](){
auto filename
= QFileDialog::getSaveFileName(this,
"Capturar",
"/",
"Imagen(*.jpg;*.jpeg)");
if(filename.isEmpty()){
return;
}
mCameraImageCapture->setCaptureDestination(
QCameraImageCapture::CaptureToFile);
QImageEncoderSettings imageEncoderSettings;
imageEncoderSettings.setCodec("image/jpeg");
imageEncoderSettings.setResolution(1600,1200);
mCameraImageCapture->setEncodingSettings(imageEncoderSettings);
mCamera->setCaptureMode(QCamera::CaptureStillImage);
mCamera->start();
mCamera->searchAndLock();
mCameraImageCapture->capture(filename);
mCamera->unlock();
});
}
#include "../headers/webcamwin.h"
#include <QFile>
#include <QCamera>
#include <QCameraViewfinder>
#include <QCameraImageCapture>
#include <QVBoxLayout>
#include <QMenu>
#include <QAction>
#include <QFileDialog>
void encender()
{
connect(mApagarAction,&QAction::triggered,&{
mCamera->start();
});
}
void apagar()
{
mCamera->stop();
}
QPixmap capturar()
{
connect(mCapturarAction,&QAction::triggered,[&](){
auto filename = QFileDialog::getSaveFileName(this,"Capturar","/",
"Imagen(*.jpg;*.jpeg)");
if(filename.isEmpty()){
return;
}
mCameraImageCapture->setCaptureDestination(
QCameraImageCapture::CaptureToFile);
QImageEncoderSettings imageEncoderSettings;
imageEncoderSettings.setCodec("image/jpeg");
imageEncoderSettings.setResolution(1600,1200);
mCameraImageCapture->setEncodingSettings(imageEncoderSettings);
mCamera->setCaptureMode(QCamera::CaptureStillImage);
mCamera->start();
mCamera->searchAndLock();
mCameraImageCapture->capture(filename);
mCamera->unlock();
});
}
To copy to clipboard, switch view to plain text mode
Obviously doesnt work. I only want that when i call one determined function, the camera do (up,off, or record)
Bookmarks