Тип QML MaskedBlur
Применяет эффект размытия с переменной интенсивностью. Подробнее...
| Оператор импорта: | import QtGraphicalEffects 1.0 |
| С момента: | QtGraphicalEffects 1.0 |
| Наследуется от: |
Свойства
- cached : псевдоним
- maskSource : псевдоним
- radius : псевдоним
- samples : псевдоним
- source : псевдоним
Подробное описание
MaskedBlur — эффект смягчает изображение, размывая его. Интенсивность размытия может контролироваться для каждого пикселя с помощью maskSource, так что некоторые части источника будут размыты сильнее, чем другие.
Выполнение размытия в реальном времени — ресурсоёмкая операция. Полное гауссово размытие всего экрана даже с умеренным количеством выборок будет работать только с 60 кадрами в секунду на высокопроизводительных графических процессорах.
| Источник | MaskSource | Применяемый эффект |
|---|---|---|
Пример
Следующий пример демонстрирует, как применить эффект.
import QtQuick 2.0
import QtGraphicalEffects 1.0
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 : псевдоним
Это свойство определяет расстояние соседних пикселей, которые влияют на размытие отдельного пикселя. Больший радиус увеличивает эффект размытия.
В зависимости от значения radius, значение samples должно быть достаточно большим, чтобы обеспечить визуальное качество.
Значение варьируется от 0.0 (без размытия) до бесконечности. По умолчанию свойство установлено в 0.0 (без размытия).
| Примеры вывода с различными значениями радиуса | ||
|---|---|---|
| radius: 0 | radius: 8 | radius: 16 |
| samples: 25 | samples: 25 | samples: 25 |
samples : псевдоним
Это свойство определяет количество выборок, взятых на пиксель при вычислении размытия. Большее значение обеспечивает лучшее качество, но рендеринг происходит медленнее.
В идеале это значение должно быть в два раза больше наибольшего необходимого значения radius плюс 1, например, если radius анимируется между 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/archives/qt-5.6/qml-qtgraphicaleffects-maskedblur.html