微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 QML 中保存 QtGraphicalEffects 应用的效果

如何解决如何在 QML 中保存 QtGraphicalEffects 应用的效果

我有一个基于 QML 的应用程序,它将提供基本的图像编辑。我已经实现了裁剪,现在我想添加QtGraphicalEffects提供的效果。我已经将效果添加到 QML 中,并添加了相应的滑块,因此我可以将效果添加到我的图像中,效果很好。

但是,我的问题是,如何将这些效果保存回图像文件?问题是,我正在缩小图像以适应屏幕尺寸,因此,直接从 QML/javascript 保存会导致图像缩小。

对于裁剪部分,我通过在 C++ 中进行裁剪解决了这个问题,并重新打开未缩放的原始图像,并将裁剪应用于原始图像。

我可以在 QML 中做类似的事情吗?例如。当按下保存按钮时,以原始大小(屏幕外,因此不可见)再次渲染原始图像,应用效果,然后保存?这可能吗?

解决方法

您应该能够使用具有 Image 的未缩放 Item::visible: false,渲染所有效果,然后在生成的渲染上使用 Item::grabToImage 以保存结果。

您可以使用 Image::implicitWidthImage::implicitHeight 获取原始 Image(缩放前)的原生高度和宽度。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。