GaussianBlur QML Type
Applique un effet de flou de meilleure qualité. En savoir plus...
| Import Statement: | import Qt5Compat.GraphicalEffects |
| Since: | QtGraphicalEffects 1.0 |
| Inherits: |
Propriétés
- cached : bool
- deviation : real
- radius : real
- samples : int
- source : variant
- transparentBorder : bool
Description détaillée
Remarque : le composant MultiEffect offre un effet de flou présentant certains avantages en termes de performances. Pour les nouveaux codes, il convient de l'envisager comme une alternative à l'utilisation de Qt Graphical Effects.
L'effet GaussianBlur adoucit l'image en la rendant floue grâce à un algorithme qui utilise la fonction gaussienne pour calculer l'effet. Cet effet offre une meilleure qualité que FastBlur, mais son rendu est plus lent.
En particulier, la modification des propriétés du flou gaussien nécessite souvent de reconstruire le code du shader à partir de zéro ; par conséquent, l’animation des propriétés de cet effet peut entraîner de mauvaises performances et nécessiter un espace de cache important. C’est pourquoi FastBlur est généralement préférable pour les flous animés.
| Source | Effet appliqué |
|---|---|
|
|
Remarque : cet effet est disponible lors de l’exécution sous OpenGL.
Exemple
L'exemple suivant montre comment appliquer l'effet.
import QtQuick
import QtGraphicalEffects
Item {
width: 300
height: 300
Image {
id: bug
source: "images/bug.jpg"
sourceSize: Qt.size(parent.width, parent.height)
smooth: true
visible: false
}
GaussianBlur {
anchors.fill: bug
source: bug
radius: 8
samples: 16
}
}L'application d'un flou en temps réel est une opération coûteuse en ressources. Un flou gaussien en 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.
Documentation des propriétés
cached : bool
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 un tampon de mémoire 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 ».
deviation : real
Cette propriété est un paramètre de la fonction gaussienne utilisée pour calculer les poids des pixels voisins lors de l'application du flou. Un écart plus important rend l'image plus floue, mais réduit également la qualité du flou. Une valeur d'écart très élevée donne un effet un peu similaire à celui produit, par exemple, par un algorithme de flou de type « box blur ». Une valeur d'écart trop faible rend l'effet négligeable pour les pixels proches du rayon.

L'image ci-dessus illustre la fonction gaussienne avec deux valeurs de déviation différentes : jaune (1) et cyan (2,7). L'axe des y représente les poids, tandis que l'axe des x représente la distance entre les pixels.
La valeur varie de 0,0 (aucun écart) à inf (écart maximal). Par défaut, la déviation est liée au rayon. Lorsque le rayon augmente, la déviation augmente automatiquement de manière linéaire. Avec une valeur de rayon de 8, la valeur par défaut de la déviation devient environ 2,7034. Cette valeur offre un compromis entre la qualité du flou et le degré global de flou.
| Exemples de résultats avec différentes valeurs d’écart | ||
|---|---|---|
|
|
|
| écart : 1 | écart : 2 | écart : 4 |
| radius: 8 | radius: 8 | radius: 8 |
| samples: 16 | samples: 16 | samples: 16 |
radius : real
Cette propriété définit la distance entre les pixels voisins qui influencent le flou d'un pixel donné. Un rayon plus grand renforce l'effet de flou.
Le flou idéal s'obtient en choisissant samples et radius de manière à ce que samples = 1 + radius * 2, par exemple :
| Rayon | Échantillons |
|---|---|
| 0 (pas de flou) | 1 |
| 1 | 3 |
| 2 | 5 |
| 3 | 7 |
La valeur varie de 0,0 (pas de flou) à l'infini. Par défaut, la propriété est définie sur floor(samples / 2.0).
| Exemples de résultats avec différentes valeurs de rayon | ||
|---|---|---|
|
|
|
| rayon : 0 | rayon : 4 | rayon : 8 |
| samples: 16 | samples: 16 | samples: 16 |
| deviation: 3 | deviation: 3 | deviation: 3 |
Remarque : la propriété ` radius ` sert à calculer la taille du tampon hors écran de l'effet. Des valeurs plus élevées entraîneront des allocations de mémoire plus importantes.
samples : int
Cette propriété définit le nombre d'échantillons prélevés par pixel lors du calcul du flou. Une valeur plus élevée offre une meilleure qualité, mais ralentit le rendu.
Idéalement, cette valeur devrait être égale au double de la valeur maximale requise pour le rayon, plus 1. Par exemple, si le rayon est animé entre 0,0 et 4,0, le nombre d'échantillons devrait être défini sur 9.
Par défaut, la propriété est définie sur 9.
Remarque : 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 : variant
Cette propriété définit l'élément source qui va être flouté.
Remarque : il n'est pas possible de faire en sorte que l'effet s'applique à lui-même, par exemple en définissant la source sur le parent de l'effet.
transparentBorder : bool
Cette propriété définit le comportement du flou à proximité des bords de l'élément, où le flou des pixels est influencé par les pixels situés à l'extérieur des bords de la source.
Si la propriété est définie sur « true », les pixels situés en dehors de la source sont considérés comme transparents, ce qui est similaire à l'extension « clamp-to-border » d'OpenGL. Le flou s'étend légèrement au-delà de la zone de l'élément concerné.
Si la propriété est définie sur « false », les pixels situés en dehors de la source sont interprétés comme contenant la même couleur que les pixels situés au bord de l’élément, ce qui s’apparente au comportement « clamp-to-edge » d’OpenGL. Le flou ne s’étend pas en dehors de la zone de l’élément d’effet.
Par défaut, la propriété est définie sur « false ».
© 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.









