gpt4 book ai didi

c++ - 如何捕获 QML 绘图缓冲区

转载 作者:行者123 更新时间:2023-11-28 03:45:03 26 4
gpt4 key购买 nike

有没有办法捕获 QML 生成的整个屏幕?类似于 OpenGL 或 DirectX 中的复制绘图缓冲区。这个想法是捕获整个屏幕的输出,然后使用屏幕的摄像头进行图像减法,这样我们就可以检测屏幕顶部的物体。

谢谢。

最佳答案

我想你想要QPixmap::grabWindow(...) ,但恐怕我不使用 QML,所以我不确定您将如何获取或使用像素图。

查看一些 Qt 文档表明子类化 QDeclarativeImageProvider将是一个很好的起点。像这样的东西:

class cScreenGrabber : public QDeclarativeImageProvider
{
public:
cScreenGrabber ()
: QDeclarativeImageProvider(QDeclarativeImageProvider::Pixmap) { }

QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize)
{
QWidget *ViewWidget = //get the widget containing your view//
QPixmap Pixmap = QPixmap::grabWindow(ViewWidget.winId(), 0, 0,
requestedSize.width() > 0 ? requestedSize.width() : -1,
requestedSize.height() > 0 ? requestedSize.height() : -1);

if (size)
*size = QSize(Pixmap.width(), Pixmap.height());

return Pixmap;
}
};

关于c++ - 如何捕获 QML 绘图缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7910586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com