このページでは

RecursiveBlur QML Type

繰り返しぼかし処理を行い、強力なぼかし効果を生み出します。詳細...

Import Statement: import Qt5Compat.GraphicalEffects
Since: QtGraphicalEffects 1.0
Inherits:

Item

プロパティ

詳細な説明

RecursiveBlur エフェクトは、再帰的なフィードバックループを用いてソース画像を複数回ぼかすアルゴリズムにより、画像を柔らかくぼかします。このエフェクトは、GaussianBlur やFastBlur よりもぼかし効果が強くなる場合がありますが、処理は非同期で行われるため、より多くの時間を要します。

ソースエフェクト適用後

葉の上の黒いカブトムシ

再帰的なぼかし効果を施したカブトムシ

注:この エフェクトは 、OpenGL で実行している場合に利用可能です。

例

以下の例は、このエフェクトを適用する方法を示しています。

import QtQuick
import Qt5Compat.GraphicalEffects

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 や 1 回のぼかし処理に必要な時間、あるいはその両方の影響を受けて制限される場合があります。場合によっては、より遅いペースでぼかし処理を実行した方が望ましいこともあります。その場合は、値を増加させるアニメーションを使用してこのプロパティを制御すると便利です。

値の範囲は0からinfです。デフォルトでは、このプロパティは0 に設定されています。

異なるループ値を用いた出力例

4つのぼかしループを持つビートル

20個のブラーループを持つビートル

70個のブラーループを持つビートル

loops: 4 loops: 20 loops: 70
radius: 7.5radius: 7.5radius: 7.5

progress : real

このプロパティは、非同期のソースぼかし処理の進行状況を、0.0(ぼかし処理なし)から1.0(完了)までの範囲で保持します。

radius : real

このプロパティは、個々のピクセルのぼかしに影響を与える隣接ピクセルの距離を定義します。半径を大きくすると画質は向上しますが、レンダリングに時間がかかります。

注:このエフェクトの半径値は、頻繁に変更したりアニメーション化したりすることを想定していません。正しい使用方法は、適切な値を設定し、反復的なぼかし処理の全期間を通じてその値を変更しないことです。

値の範囲は(ぼかしなし)から16.0(最大ぼかしステップ)までです。デフォルトでは、このプロパティは0.0 (ぼかしなし)に設定されています。

半径値を変えた出力例

半径2.5のビートル

半径4.5のビートル

半径7.5のビートル

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

注: radius プロパティは 、エフェクトのオフスクリーンバッファのサイズを計算するために使用されます。値が大きいほど、割り当てられるメモリ容量も大きくなります。

source : variant

このプロパティは、ぼかし処理の対象となるソース項目を指定します。

注: エフェクトの親をソースとして設定するなど、エフェクト自体を効果の対象に含めることはサポートされていません。

transparentBorder : bool

このプロパティは、アイテムの端付近におけるぼかし挙動を定義するもので、ソースの端の外側にあるピクセルの影響を受けてピクセルがぼかされる。

このプロパティが `true` に設定されている場合、ソースの外側のピクセルは透明であると解釈されます。これは、OpenGLのclamp-to-border拡張機能と同様です。ぼかしは、エフェクト対象のアイテム領域の外側にわずかに広がります。

このプロパティが `false` に設定されている場合、ソースの外側のピクセルは、アイテムの端のピクセルと同じ色を含むものと解釈されます。これは、OpenGL の `clamp-to-edge` 動作に似ています。ぼかしは、エフェクトアイテム領域の外側には広がりません。

デフォルトでは、このプロパティは `false` に設定されています。

transparentBorder の値が異なる場合の出力例

透明な枠線を無効にしたぼかし

透明な枠線を有効にしたぼかし

transparentBorder: false transparentBorder: true
loops: 20loops: 20
radius: 7.5radius: 7.5

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.