如何在 QML 中保存 QtGraphicalEffects 应用的效果
How to save effects applied by QtGraphicalEffects in QML
我有一个基于 QML 的应用程序,它可以提供基本的图像编辑功能。我实现了裁剪,现在我想添加QtGraphicalEffects
提供的效果。我已经在QML中添加了效果,并添加了相应的滑块,所以我可以将效果添加到我的图像中,效果很好。
但是,我的问题是,如何才能将这些效果保存回图像文件?问题是,我正在缩小图像以适应屏幕尺寸,因此,直接从 QML / javascript 保存会导致图像缩小。
对于裁剪部分,我通过在 C++ 中进行裁剪,重新打开未缩放的原始图像,并将裁剪应用到原始图像来解决这个问题。
我可以在 QML 中做类似的事情吗?例如。当按下保存按钮时,再次以原始大小渲染原始图像(屏幕外,因此它不可见),应用效果,然后保存它?这可能吗?
您应该能够使用具有 Item::visible: false
的未缩放 Image
,渲染所有效果,然后对生成的渲染使用 Item::grabToImage
以保存结果。
您可以使用 Image::implicitWidth
和 Image::implicitHeight
获取原始 Image
(缩放前)的原始高度和宽度。
我有一个基于 QML 的应用程序,它可以提供基本的图像编辑功能。我实现了裁剪,现在我想添加QtGraphicalEffects
提供的效果。我已经在QML中添加了效果,并添加了相应的滑块,所以我可以将效果添加到我的图像中,效果很好。
但是,我的问题是,如何才能将这些效果保存回图像文件?问题是,我正在缩小图像以适应屏幕尺寸,因此,直接从 QML / javascript 保存会导致图像缩小。
对于裁剪部分,我通过在 C++ 中进行裁剪,重新打开未缩放的原始图像,并将裁剪应用到原始图像来解决这个问题。
我可以在 QML 中做类似的事情吗?例如。当按下保存按钮时,再次以原始大小渲染原始图像(屏幕外,因此它不可见),应用效果,然后保存它?这可能吗?
您应该能够使用具有 Item::visible: false
的未缩放 Image
,渲染所有效果,然后对生成的渲染使用 Item::grabToImage
以保存结果。
您可以使用 Image::implicitWidth
和 Image::implicitHeight
获取原始 Image
(缩放前)的原始高度和宽度。