Sur cette page

MaskedBlur QML Type

Applique un effet de flou avec une intensité variable. Plus d'informations...

Import Statement: import Qt5Compat.GraphicalEffects
Since: QtGraphicalEffects 1.0
Inherits:

Item

Propriétés

Description détaillée

L'effet MaskedBlur adoucit l'image en la rendant floue. L'intensité du flou peut être contrôlée pour chaque pixel à l'aide de maskSource afin que certaines parties de la source soient plus floues que d'autres.

Effectuer un flou en direct est une opération coûteuse. Le flou gaussien plein écran, même avec un nombre modéré d'échantillons, ne fonctionnera qu'à 60 images par seconde sur du matériel graphique haut de gamme.

SourceMasqueSourceEffet appliqué

Note : Cet effet est disponible avec OpenGL.

Exemple

L'exemple suivant montre comment appliquer l'effet.

import QtQuick
import Qt5Compat.GraphicalEffects

Item {
    width: 300
    height: 300

    Image {
        id: bug
        source: "images/bug.jpg"
        sourceSize: Qt.size(parent.width, parent.height)
        smooth: true
        visible: false
    }

    LinearGradient {
        id: mask
        anchors.fill: bug
        gradient: Gradient {
            GradientStop { position: 0.2; color: "#ffffffff" }
            GradientStop { position: 0.5; color: "#00ffffff" }
        }
        start: Qt.point(0, 0)
        end: Qt.point(300, 0)
        visible: false
    }

    MaskedBlur {
        anchors.fill: bug
        source: bug
        maskSource: mask
        radius: 16
        samples: 24
    }
}

Documentation sur les propriétés

cached : alias

Cette propriété permet de mettre en cache les pixels de sortie de l'effet afin d'améliorer les performances de rendu. Chaque fois que les propriétés de la source ou de l'effet sont modifiées, les pixels du cache doivent être mis à jour. La consommation de mémoire augmente, car une mémoire tampon supplémentaire est nécessaire pour stocker la sortie de l'effet.

Il est recommandé de désactiver le cache lorsque les propriétés de la source ou de l'effet sont animées.

Par défaut, la propriété est définie sur false.

maskSource : alias

Cette propriété définit l'élément qui contrôle l'intensité finale du flou. La valeur du canal alpha du pixel de maskSource définit le rayon de flou réel qui sera utilisé pour flouter le pixel source correspondant.

Les pixels opaques de maskSource produisent un flou avec la valeur radius spécifiée, tandis que les pixels transparents suppriment complètement le flou. Les pixels semi-transparents de maskSource produisent un flou avec un rayon interpolé en fonction du niveau de transparence du pixel.

radius : alias

Cette propriété définit la distance entre les pixels voisins qui affectent le flou d'un pixel individuel. Un rayon plus grand augmente l'effet de flou.

En fonction de la valeur du rayon, la valeur de samples doit être suffisamment grande pour garantir la qualité visuelle.

La valeur va de 0,0 (pas de flou) à inf. Par défaut, la propriété est définie sur 0.0 (pas de flou).

Exemples de résultats avec différentes valeurs de rayon

rayon : 0 rayon : 8 rayon : 16
samples: 25samples: 25samples: 25

samples : alias

Cette propriété définit le nombre d'échantillons prélevés par pixel lors du calcul du flou. Une valeur plus élevée permet d'obtenir une meilleure qualité, mais le rendu est plus lent.

Idéalement, cette valeur devrait être deux fois plus grande que la plus grande valeur de rayon requise plus 1, par exemple, si le rayon est animé entre 0.0 et 4.0, les échantillons devraient être fixés à 9.

Par défaut, la propriété est définie sur 9.

Cette propriété n'est pas destinée à être animée. La modification de cette propriété peut entraîner la recompilation des shaders OpenGL sous-jacents.

source : alias

Cette propriété définit l'élément source qui sera rendu flou.

Remarque : il n'est pas possible de laisser l'effet s'inclure lui-même, par exemple en définissant la source sur le parent de l'effet.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.