C++ 捕获到缓冲区QT
我正在尝试使用QT捕获一个图像,并将图像缓冲区写入QBuffer类的对象中,而不是将其保存到文件中 这是我目前的代码:C++ 捕获到缓冲区QT,c++,qt,camera,qbuffer,C++,Qt,Camera,Qbuffer,我正在尝试使用QT捕获一个图像,并将图像缓冲区写入QBuffer类的对象中,而不是将其保存到文件中 这是我目前的代码: mBuffer->open(QBuffer::ReadWrite); mCameraImageCapture->setCaptureDestination(QCameraImageCapture::CaptureToBuffer); QImageEncoderSettings imageEncoderSettings; imageEncoderSettings.se
mBuffer->open(QBuffer::ReadWrite);
mCameraImageCapture->setCaptureDestination(QCameraImageCapture::CaptureToBuffer);
QImageEncoderSettings imageEncoderSettings;
imageEncoderSettings.setCodec("image/BMP");
mCameraImageCapture->setEncodingSettings(imageEncoderSettings);
mCamera->setCaptureMode(QCamera :: CaptureStillImage);
mCamera->start();
mCamera->searchAndLock();
mCamera->unlock();
mBuffer->close();
是否可以在不将图像保存到文件的情况下将图像捕获到缓冲区?可能是这样的情况
QApplication app(argc, argv);
QCamera *cam = new QCamera;
cam->setCaptureMode(QCamera::CaptureStillImage);
QCameraViewfinder *viewfinder = new QCameraViewfinder;
viewfinder->show();
QCameraImageCapture *cap = new QCameraImageCapture(cam);
cap->setCaptureDestination(QCameraImageCapture::CaptureToBuffer);
cam->setViewfinder(viewfinder);
QObject::connect(cap, &QCameraImageCapture::imageCaptured, [=] (int id, QImage img) {
QByteArray buf;
QBuffer buffer(&buf);
buffer.open(QIODevice::WriteOnly);
img.save(&buffer, "PNG");
});
QObject::connect(cap, &QCameraImageCapture::readyForCaptureChanged, [=] (bool state) {
if(state == true) {
cam->searchAndLock();
cap->capture();
cam->unlock();
}
});
cam->start();
app.exec();
也许是这样的
QApplication app(argc, argv);
QCamera *cam = new QCamera;
cam->setCaptureMode(QCamera::CaptureStillImage);
QCameraViewfinder *viewfinder = new QCameraViewfinder;
viewfinder->show();
QCameraImageCapture *cap = new QCameraImageCapture(cam);
cap->setCaptureDestination(QCameraImageCapture::CaptureToBuffer);
cam->setViewfinder(viewfinder);
QObject::connect(cap, &QCameraImageCapture::imageCaptured, [=] (int id, QImage img) {
QByteArray buf;
QBuffer buffer(&buf);
buffer.open(QIODevice::WriteOnly);
img.save(&buffer, "PNG");
});
QObject::connect(cap, &QCameraImageCapture::readyForCaptureChanged, [=] (bool state) {
if(state == true) {
cam->searchAndLock();
cap->capture();
cam->unlock();
}
});
cam->start();
app.exec();
您的问题是什么?是否可以在不将图像保存到文件的情况下将图像捕获到缓冲区?使用
capture()
或每帧时是否要捕获图像?使用capture()时您的问题是什么?是否可以在不将图像保存到文件的情况下将图像捕获到缓冲区?使用capture()
或每帧时是否要捕获图像?使用capture()时