Spec-Zone.ru › Qt 5.13

Тип QML RecursiveBlur

Повторяет размытие, обеспечивая сильный эффект размытия. Подробнее...

Заявление импорта: import QtGraphicalEffects 1.13
С: QtGraphicalEffects 1.0
Наследует:

Элемент

  • Список всех членов, включая унаследованные члены

Свойства

  • cached : bool
  • loops : int
  • progress : real
  • radius : real
  • source : variant
  • transparentBorder : bool

Подробное описание

Эффект RecursiveBlur смягчает изображение, размывая его алгоритмом, использующим рекурсивную обратную связь для многократного размытия источника. Эффект может давать более размытые результаты, чем GaussianBlur или FastBlur, но результат генерируется асинхронно и занимает больше времени.

Источник Применённый эффект

Примечание: Этот эффект доступен при работе с 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
    }

    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/qt-5.13/qml-qtgraphicaleffects-recursiveblur.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API