将QML场景渲染成纹理并保存

Render a QML scene into a texture and save it

本文关键字:纹理 保存 QML      更新时间:2023-10-16

如何将QML场景(如矩形,图像等)转换为纹理并保存?有人试过吗?如果我可以将组件转换为纹理,那么我应该可以保存粒子系统或shaderEffects处理后的图像

的例子:

Rectangle{
  id:root
  widht:640
  height: 480
  ToTexture{ id: toTexture} //a new type created by c++
  MouseArea{
     anchors.fill: parent
     onClicked: {         
         toTexture.saveAsTexture(root)
     }
  }
}

问题是,我如何设计一个像ToTexture这样的新类型?"场景图- OpenGL在QML下"的例子向我们展示了如何渲染一个qml场景,但我找不到一个例子告诉我们如何将QML场景转换为纹理。

如果没有这个函数,我就不能保存生成的图形QtQuick

我找到了另一个解决方案,在这个帖子

采取截图

我们可以截取qml场景的截图,然后我们可以对它做任何事情,包括将其渲染为纹理