Spec-Zone.ru › Qt 5.12

Тип QML RecursiveBlur

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

Заявление об импорте: import QtGraphicalEffects 1.12
С момента: 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

Это свойство определяет расстояние соседних пикселей, которые влияют на размытие отдельных пикселей. Более большой радиус обеспечивает лучшее качество, но медленнее отрисовывается.

Примечание: значение радиуса в этом эффекте не должно часто изменяться или анимироваться. Правильный способ его использования — установить правильное значение и оставить его неизменным в течение всего процесса итеративного размытия.

Значение изменяется от (без размытия) до 16.0 (максимальный шаг размытия). По умолчанию свойство установлено в 0.0 (без размытия).

Примеры выходных данных с разными значениями radius

radius: 2.5 radius: 4.5 radius: 7.5
loops: 20 loops: 20 loops: 20

source : variant

Это свойство определяет элемент-источник, который будет размыт.

Примечание: Не поддерживается включение эффекта в себя, например, установкой source в родительский элемент эффекта.

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

Spec-Zone.ru

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