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