Тип QML RecursiveBlur
Многократно выполняет размытие, обеспечивая сильный эффект размытия. Подробнее...
| Оператор импорта: | import QtGraphicalEffects 1.0 |
| С момента: | QtGraphicalEffects 1.0 |
| Наследует: |
Свойства
Подробное описание
Эффект RecursiveBlur смягчает изображение, размывая его с помощью алгоритма, использующего рекурсивную обратную связь для многократного размытия источника. Эффект может давать более размытый результат, чем GaussianBlur или FastBlur, но результат генерируется асинхронно и занимает больше времени.
| Источник | Применяемый эффект |
|---|---|
Примечание: Этот эффект доступен при работе с 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
}
RecursiveBlur {
anchors.fill: bug
source: bug
radius: 7.5
loops: 50
}
} Документация по свойствам
cached : bool
Это свойство позволяет кэшировать выходные пиксели эффекта для повышения производительности рендеринга.
Каждый раз, когда изменяются свойства источника или эффекта, пиксели в кэше должны быть обновлены. Потребление памяти увеличивается, так как требуется дополнительный буфер памяти для хранения выходных данных эффекта.
Рекомендуется отключить кэш, когда свойства источника или эффекта анимированы.
По умолчанию свойство установлено в false.
loops : int
Это свойство определяет количество итераций размытия, которые будут выполнены для источника. При изменении свойства процесс итерационного размытия запускается. Если значение уменьшается или меняется с нуля на ненулевое, делается снимок источника. Снимок используется в качестве отправной точки для процесса.
Цикл итераций пытается выполняться как можно быстрее. Скорость может быть ограничена VSYNC или временем, необходимым для одного шага размытия, или обоими. Иногда может быть желательно выполнить размытие с более медленным темпом. В этом случае удобно управлять свойством с помощью анимации, увеличивающей значение.
Значение изменяется от 0 до бесконечности. По умолчанию свойство установлено в 0.
| Примеры вывода с разными значениями loops | ||
|---|---|---|
| loops: 4 | loops: 20 | loops: 70 |
| radius: 7.5 | radius: 7.5 | radius: 7.5 |
progress : real
Это свойство содержит прогресс асинхронного процесса размытия источника, от 0.0 (ничего не размыто) до 1.0 (закончено).
radius : real
Это свойство определяет расстояние между соседними пикселями, влияющими на размытие отдельных пикселей. Более большой радиус обеспечивает лучшее качество, но медленнее рендерится.
Примечание: значение радиуса в данном эффекте не предназначено для частых изменений или анимации. Правильный способ использования - установить правильное значение и сохранить его неизменным на протяжении всего процесса итеративного размытия.
Значение изменяется от 0 (нет размытия) до 16.0 (максимальный шаг размытия). По умолчанию свойство установлено в 0.0 (нет размытия).
| Примеры вывода с разными значениями radius | ||
|---|---|---|
| radius: 2.5 | radius: 4.5 | radius: 7.5 |
| loops: 20 | loops: 20 | loops: 20 |
source : variant
Это свойство определяет элемент-источник, который будет размыт.
Примечание: Не поддерживается включение эффекта в себя, например, установкой источника на родительский элемент эффекта.
transparentBorder : bool
Это свойство определяет поведение размытия вблизи границ элемента, где размытие пикселей зависит от пикселей за пределами границ источника.
Если свойство установлено в true, пиксели за пределами источника интерпретируются как прозрачные, что аналогично расширению OpenGL clamp-to-border. Размытие немного расширяется за область элемента эффекта.
Если свойство установлено в false, пиксели за пределами источника интерпретируются как имеющие тот же цвет, что и пиксели на границе элемента, что аналогично поведению OpenGL clamp-to-edge. Размытие не расширяется за область элемента эффекта.
По умолчанию свойство установлено в false.
| Примеры вывода с разными значениями transparentBorder | ||
|---|---|---|
| transparentBorder: false | transparentBorder: true | |
| loops: 20 | loops: 20 | |
| radius: 7.5 | radius: 7.5 |
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qml-qtgraphicaleffects-recursiveblur.html