0
QMLで生成された画面全体をキャプチャする方法はありますか? OpenGLやDirectXでコピー描画バッファのようなもの。このアイデアは、画面全体の出力をキャプチャし、画面のカメラフィードで画像の減算を行うことで、画面上のオブジェクトを検出できるようにすることです。QML描画バッファをキャプチャする方法
ありがとうございます。
QMLで生成された画面全体をキャプチャする方法はありますか? OpenGLやDirectXでコピー描画バッファのようなもの。このアイデアは、画面全体の出力をキャプチャし、画面のカメラフィードで画像の減算を行うことで、画面上のオブジェクトを検出できるようにすることです。QML描画バッファをキャプチャする方法
ありがとうございます。
あなたはQPixmap::grabWindow(...)
が欲しいと思いますが、私はQMLを使用しないので、pixmapを入手するか、それを使用するかはわかりません。 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;
}
};
QPixmap :: grabWidget()は、QMLがQWidgetウィンドウにラップされているため、このケースで動作します。お手伝いありがとうございます。 –