Тип QML MaskedBlur
Применяет эффект размытия с изменяющейся интенсивностью. Подробнее...
| Заявление об импорте: | import QtGraphicalEffects 1.15 |
| С: | 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 : псевдоним
Это свойство определяет расстояние соседних пикселей, которые влияют на размытие отдельного пикселя. Более большой радиус увеличивает эффект размытия.
В зависимости от значения 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/qt-5.15/qml-qtgraphicaleffects-maskedblur.html