c++ - Qt Qml中的圆形图像

标签 c++ image qt qml

我想在 Qt Qml 中实现圆形图像。我在以下代码中使用图像元素。

Rectangle {
                id: mask
                anchors.centerIn: parent
                width: 200
                height: 200
                radius: 100
                clip:true
            }

            Image {
                id: image
                anchors.fill: mask
                source: "test.jpg"
            }

但它不起作用。如果您对此有任何想法,请帮助我。谢谢。

最佳答案

剪裁总是应用于项目的矩形边界框。因此,您不能使用带裁剪的矩形来生成圆形图像。

但是您可以使用 OpacityMask去实现你想要的。 在链接的文档中可以找到一个很好的例子。

或者你可以使用这个:

import QtQuick 2.7
import QtQuick.Window 2.0
import QtGraphicalEffects 1.0

Window {
    id: root
    width: 1024
    height: 800
    visible: true

    Image {
        id: img
        source: 'ImageSource...'
        width: 500
        height: 500
        fillMode: Image.PreserveAspectCrop
        layer.enabled: true
        layer.effect: OpacityMask {
            maskSource: mask
        }
    }

    Rectangle {
        id: mask
        width: 500
        height: 500
        radius: 250
        visible: false
    }
}

关于c++ - Qt Qml中的圆形图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42432456/

相关文章:

c++ - 这里发生溢出了吗?

c++ - "Attempting to reference a deleted function"

c++ - 获取适当的哈希索引 C++

swift - 通过 iOS 相机上传到 firebase 的图像在 Android 和 Web 上向左旋转 90 度

html - 处理大页面加载

WPF - 如何对裁剪后的图像应用效果?

c++ - 如何记录与 Q_PROPERTY 同名的访问器函数?

qt - 奇怪的//! Quick Controls 2.0 QML 源中的注释语法

c++ - 如何在给定 PID 的情况下隐藏进程的控制台?

c++ - boost spirit语法的不一致行为