我有一个想要在某些情况下具有圆角并为灰度的图像。因此,我尝试使用OpacityMask绘制圆角,并使用Colorize将其设为灰度。每当我运行程序时,此消息就会显示在控制台上:
ShaderEffectSource:渲染时必须将“递归”设置为true 递归地。
并且不应用“着色”。 我将代码移到了一个简单的程序上,当我运行该程序时,会显示相同的消息,但同时应用了两种效果(显示了一个圆角的灰度图像) 这是我的代码的简化版本:
Image
{
id: gameIcon;
anchors.left: parent.left
anchors.leftMargin: 5
source: "NAME-YOUR-OWN-ROSE-2-2009.jpg"
fillMode: Image.PreserveAspectFit
width: 300
Colorize
{
saturation: 0
anchors.fill: parent
source: gameIcon
}
layer.enabled: true;
layer.effect: OpacityMask
{
maskSource: Item
{
width: gameIcon.width
height: gameIcon.height
Rectangle
{
id : maskId
anchors.centerIn: parent
width: Math.min(gameIcon.width, gameIcon.height)
height: width
radius: Math.min(width, height) * 0.5
}
}
}
}
这是怎么了?