捕获到缓冲 QT
Capture To Buffer 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();
是否可以在不将其保存到文件的情况下将图像捕获到缓冲区中?
也许是这样的?
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();
相关文章:
- Qt VTK交互风格的信号到小部件
- QT在错误的班级中寻找空位
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 如何在Qt C++中更改光标
- 如何在MS Visual Studio 2019中运行QT UI
- QT通过C++添加映射QML项目
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- Qt双缓冲行为
- Qt 帧缓冲对象甚至不渲染顶点
- Qt有循环缓冲吗?
- Qt OpenGL帧缓冲在一台PC上创建,但在另一台PC上失败
- 捕获到缓冲 QT
- 如何将可折叠元素(Qmenu,Qcombobox)渲染到使用QT的位图缓冲液
- 在跨HTTP的协议缓冲序列化中,空格使用QT
- 什么是Qt帧缓冲工作机制
- 我如何渲染地形使用顶点缓冲对象在Qt
- OpenGL顶点缓冲对象上的窗口-如何运行它?qt窗口