流水线处理多个QtGraphicalEffects效果



我有一张图片,我想在它上面应用两个QtGraphicalEffects效果:混合(正片叠底模式)和色相/饱和度。引用自文档:

将多个效果串连在一起是一种创建均匀效果的简单方法更令人印象深刻的输出

Item {
    Image {
        id: image1
        source: "image1.png"
        visible: false
        smooth: true
    }
    Image {
        id: image2
        source: "image2.png"
        visible: false
        smooth: true
    }
    Blend {
        id: blendImage
        anchors.fill: image2
        source: image2
        foregroundSource: image1
        mode: "multiply"
        visible: false
    }
    HueSaturation {
        anchors.fill: image1
        source: image2
        saturation: -1.0
    }
}

这段代码没有产生想要的结果,似乎混合丢失或甚至没有考虑HueSaturation结果的输出。我如何将一个效果置于另一个效果之上?

如果你想合并效果,你需要堆叠它们(你的第二个效果的来源必须是你的第一个效果)。

您只需将HueSaturation的来源更改为blendImage

    HueSaturation {
            anchors.fill: image1
            source: blendImage
            saturation: -1.0
    }

试试这个:

    Item {
        Image {
            id: image1
            source: "image1.png"
            visible: false
            smooth: true
        }
        Image {
            id: image2
            source: "image2.png"
            visible: false
            smooth: true
        }
        Blend {
            id: blendImage
            anchors.fill: image2
            source: image2
            foregroundSource: image1
            mode: "multiply"
            visible: true
        }
        HueSaturation {
            anchors.fill: image1
            source: blendImage
            saturation: -1.0
        }
    }

相关内容

  • 没有找到相关文章

最新更新