Sur cette page

GaussianBlur QML Type

Applique un effet de flou de meilleure qualité. En savoir plus...

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

Item

Propriétés

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.

SourceEffet appliqué

Coléoptère noir sur une feuille

Coléoptère avec un flou gaussien 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.

Courbes de la fonction gaussienne avec différentes valeurs d'écart

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

Flou à faible écart

Flou à écart moyen

Flou dû à un écart important

écart : 1 écart : 2 écart : 4
radius: 8radius: 8radius: 8
samples: 16samples: 16samples: 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
13
25
37

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

Coléoptère sans flou

Coléoptère avec un flou modéré

Coléoptère avec un flou prononcé

rayon : 0 rayon : 4 rayon : 8
samples: 16samples: 16samples: 16
deviation: 3deviation: 3deviation: 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 ».

Exemples de rendu avec différentes valeurs de `transparentBorder`

Flou avec verrouillage des contours

Flou avec des bords transparents

transparentBorder : false transparentBorder : true
radius: 8radius: 8
samples: 16samples: 16
deviation: 2,7deviation: 2,7

© 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.