Захват в буфер QT

Я пытаюсь захватить изображение с помощью QT и записать буфер изображения в объект класса QBuffer вместо сохранения его в файл.

Это мой код до сих пор:

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();

Возможно ли захватить изображение в буфер, не сохраняя его в файл?

0

Решение

Может как то так?

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();
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]