C++ 将QML场景渲染为纹理并保存
如何将QML场景(如矩形、图像等)转换为纹理并保存? 以前有人试过吗?如果我能将组件转换为纹理,那么我应该能够保存 通过粒子系统或着色器效果处理后的图像 例如:C++ 将QML场景渲染为纹理并保存,c++,qt,qml,C++,Qt,Qml,如何将QML场景(如矩形、图像等)转换为纹理并保存? 以前有人试过吗?如果我能将组件转换为纹理,那么我应该能够保存 通过粒子系统或着色器效果处理后的图像 例如: Rectangle{ id:root widht:640 height: 480 ToTexture{ id: toTexture} //a new type created by c++ MouseArea{ anchors.fill: parent onClicked: {
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这样的新类型?
“场景图-QML下的OpenGL”的示例向我们展示了如何
渲染qml场景,但我找不到示例来演示如何
将qml场景传输到纹理
如果没有这个函数,我就无法保存QtQuick生成的图形。我在这篇文章中找到了另一个解决方案
我们可以拍摄qml场景的屏幕截图,然后我们可以对其执行任何操作,包括使用“qml场景”将其渲染为纹理,你的意思是整个qml场景吗?在QtQuick2中,QQuickWindow::setRenderTarget非常简单,我猜QDeclarativeView::render到QImage在QQ1中也是一样的……确切地说,我想做shaderEffectSource所做的事情,将矩形、图像和其他组件渲染到纹理,并获取这些纹理的指针,通过QImage保存纹理。有什么例子吗?我在QML下找到了一个名为OpenGL的,向我们展示了如何渲染QML场景,但没有示例向我们展示如何将QML场景转换为纹理并保存它。在QtQuick2中,我们甚至不能像QQ1那样简单地将图像传输到QImage并保存它。谢谢,ddriver,您知道现在如何提取可视qml组件的原始帧缓冲区数据吗?我想将场景录制为视频,但找不到方法,grabWindow()对于视频来说太慢了