GaussianBlur QML Type
Applique un effet de flou de meilleure qualité. Plus d'informations...
| 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
Note : Le composant MultiEffect fournit un effet de flou avec quelques avantages en termes de performances. Pour les nouveaux codes, il devrait être considéré 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. L'effet produit une meilleure qualité que FastBlur, mais est plus lent à rendre.
En particulier, la modification des propriétés de l'effet de flou gaussien nécessitera dans de nombreux cas de reconstruire le code du shader à partir de zéro, de sorte que l'animation des propriétés de l'effet risque d'être peu performante et de nécessiter une grande quantité d'espace cache. C'est pourquoi il est préférable d'utiliser FastBlur pour les flous animés.
| Source | Effet appliqué |
|---|---|
|
|
Remarque : cet effet est disponible lorsqu'il est exécuté avec 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 effet de flou en direct est une opération coûteuse. Le 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 sur les 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 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.
deviation : real
Cette propriété est un paramètre de la fonction gaussienne utilisée pour calculer les poids des pixels voisins pour le 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 à l'effet un aspect un peu similaire à ce que produit, par exemple, un algorithme de flou de boîte. Une valeur d'écart trop faible rend l'effet insignifiant pour les pixels proches du rayon.

L'image ci-dessus montre la fonction gaussienne avec deux valeurs d'écart différentes, jaune (1) et cyan (2,7). L'axe des y indique les poids, l'axe des x indique la distance entre les pixels.
La valeur va de 0,0 (pas de déviation) à inf (déviation maximale). Par défaut, l'écart est lié au rayon. Lorsque le rayon augmente, l'écart est automatiquement augmenté de façon linéaire. Avec un rayon de 8, la valeur par défaut de l'écart est d'environ 2,7034. Cette valeur permet d'obtenir un compromis entre la qualité du flou et le flou global.
| 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 affectent le flou d'un pixel individuel. Un rayon plus grand augmente l'effet de flou.
Le flou idéal est obtenu en sélectionnant samples et radius de telle sorte que samples = 1 + radius * 2, par exemple :
| Rayon | Échantillons |
|---|---|
| 0 (pas de flou) | 1 |
| 1 | 3 |
| 2 | 5 |
| 3 | 7 |
La valeur est comprise entre 0,0 (pas de flou) et inf. Par défaut, la propriété est définie sur floor(samples / 2.0).
| Exemples de sortie avec différentes valeurs de rayon | ||
|---|---|---|
|
|
|
| rayon : 0 | rayon : 4 | radius : 8 |
| samples: 16 | samples: 16 | samples: 16 |
| deviation: 3 | deviation: 3 | deviation: 3 |
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 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.
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 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.
transparentBorder : bool
Cette propriété définit le comportement du flou près des bords de l'élément, où le flou des pixels est affecté par les pixels à l'extérieur des bords de la source.
Si la propriété est définie sur true, les pixels situés à l'extérieur de la source sont interprétés comme étant transparents, ce qui est similaire à l'extension de la pince à la bordure d'OpenGL. Le flou est légèrement étendu en dehors de la zone de l'élément d'effet.
Si la propriété vaut false, les pixels situés à l'extérieur 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 est similaire au comportement "clamp-to-edge" d'OpenGL. Le flou ne s'étend pas en dehors de la zone de l'élément à 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.









