Тип QML MaskedBlur
Применяет эффект размытия с изменяющейся интенсивностью. Подробнее...
| Заявление импорта: | import QtGraphicalEffects 1.14 |
| С момента: | QtGraphicalEffects 1.0 |
| Наследует: |
Свойства
- cached : псевдоним
- maskSource : псевдоним
- radius : псевдоним
- samples : псевдоним
- source : псевдоним
Подробное описание
Эффект MaskedBlur смягчает изображение, размывая его. Интенсивность размытия можно контролировать для каждого пикселя с помощью maskSource, так что некоторые части источника размываются сильнее, чем другие.
Выполнение размытия в реальном времени является дорогостоящей операцией. Полностью-экранное гауссово размытие даже с умеренным количеством образцов будет выполняться только со скоростью 60 кадров в секунду на графическом оборудовании высокого класса.
| Источник | MaskSource | Применяемый эффект |
|---|---|---|
Примечание: Этот эффект доступен при работе с OpenGL.
Пример
Следующий пример демонстрирует, как применить эффект.
import QtQuick 2.12
import QtGraphicalEffects 1.12
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
}
} Документация свойств
cached : псевдоним
Это свойство позволяет кэшировать пиксели вывода эффекта для повышения производительности рендеринга. Каждый раз, когда изменяются свойства источника или эффекта, пиксели в кэше должны быть обновлены. Потребление памяти увеличивается, так как требуется дополнительный буфер памяти для хранения вывода эффекта.
Рекомендуется отключить кэш, когда свойства источника или эффекта анимируются.
По умолчанию свойство установлено в false.
maskSource : псевдоним
Это свойство определяет элемент, контролирующий окончательную интенсивность размытия. Значение канала альфа пикселя из maskSource определяет фактический радиус размытия, который будет использоваться для размытия соответствующего пикселя источника.
Непрозрачные пиксели maskSource создают размытие с заданным радиусом, а прозрачные пиксели полностью подавляют размытие. Полупрозрачные пиксели maskSource создают размытие с радиусом, который интерполируется в зависимости от уровня прозрачности пикселя.
radius : псевдоним
Это свойство определяет расстояние соседних пикселей, которые влияют на размытие отдельного пикселя. Больший радиус увеличивает эффект размытия.
В зависимости от значения радиуса, значение samples должно быть достаточно большим, чтобы обеспечить визуальное качество.
Значение варьируется от 0,0 (без размытия) до бесконечности. По умолчанию свойство установлено в 0.0 (без размытия).
| Примеры вывода с разными значениями радиуса | ||
|---|---|---|
| radius: 0 | radius: 8 | radius: 16 |
| samples: 25 | samples: 25 | samples: 25 |
samples : псевдоним
Это свойство определяет, сколько образцов берётся на пиксель при расчёте размытия. Большее значение обеспечивает лучшее качество, но замедляет рендеринг.
В идеале это значение должно быть вдвое больше наибольшего требуемого значения радиуса плюс 1, например, если радиус анимируется между 0,0 и 4,0, samples должно быть установлено на 9.
По умолчанию свойство установлено в 9.
Это свойство не предназначено для анимации. Изменение этого свойства может привести к перекомпиляции базовых шейдеров OpenGL.
source : псевдоним
Это свойство определяет элемент-источник, который будет размываться.
Примечание: Не допускается включение эффекта в себя, например, установкой source в родительский элемент эффекта.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qml-qtgraphicaleffects-maskedblur.html