このページでは

GaussianBlur QML Type

より高品質なぼかし効果を適用します。詳細...

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

Item

プロパティ

詳細な説明

注: MultiEffect コンポーネントは 、パフォーマンス面でいくつかの利点を持つぼかし効果を提供します。新規のコードでは、QtのGraphical Effects を使用する代わりに、このコンポーネントを検討すべきです。

GaussianBlurエフェクトは、ガウス関数を用いて効果を計算するアルゴリズムで画像をぼかすことにより、画像を柔らかく仕上げます。このエフェクトはFastBlur よりも高品質ですが、レンダリングに時間がかかります。

特に、ガウスぼかしのプロパティを変更する場合、多くの場合、シェーダーコードを最初から再構築する必要があるため、このエフェクトのプロパティをアニメーション化すると、パフォーマンスが低下するだけでなく、大量のキャッシュ領域を必要とする可能性があります。したがって、アニメーションを伴うぼかし効果には、通常、FastBlur を使用することを推奨します。

出典適用されたエフェクト

葉の上にいる黒いカブトムシ

ガウスぼかしが適用されたカブトムシ

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

例

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

import QtQuick
import QtGraphicalEffects

Item {
    width: 300
    height: 300

    Image {
        id: bug
        source: "images/bug.jpg"
        sourceSize: Qt.size(parent.width, parent.height)
        smooth: true
        visible: false
    }

    GaussianBlur {
        anchors.fill: bug
        source: bug
        radius: 8
        samples: 16
    }
}

ライブでのぼかし処理は、負荷の高い操作です。サンプル数がそれほど多くない場合でも、フルスクリーンのガウスぼかしは、ハイエンドのグラフィックハードウェアでなければ 60 fps で実行できません。

プロパティのドキュメント

cached : bool

このプロパティを有効にすると、エフェクトの出力ピクセルがキャッシュされ、レンダリング性能が向上します。ソースまたはエフェクトのプロパティが変更されるたびに、キャッシュ内のピクセルを更新する必要があります。エフェクトの出力を保存するために追加のメモリバッファが必要となるため、メモリ使用量が増加します。

ソースまたはエフェクトのプロパティがアニメーション化される場合は、キャッシュを無効にすることをお勧めします。

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

deviation : real

このプロパティは、ぼかし処理において隣接するピクセルの重みを計算する際に使用されるガウス関数のパラメータです。偏差の値が大きいほど、画像はよりぼやけて見えますが、ぼかしの品質も低下します。偏差の値を非常に大きくすると、その効果は、例えばボックスぼかしアルゴリズムで生成される結果に少し似たものになります。 偏差の値が小さすぎると、半径付近のピクセルに対する効果がほとんど感じられなくなります。

偏差値の異なるガウス関数の曲線

上の画像は、黄色(1)とシアン(2.7)という 2 つの異なる偏差値を用いたガウス関数を示しています。y 軸は重みを、x 軸はピクセル間隔を示しています。

値の範囲は 0.0(偏差なし)から inf(最大偏差)までです。 デフォルトでは、偏差は半径に連動しています。半径が大きくなると、偏差も自動的に直線的に増加します。半径の値が 8 の場合、偏差のデフォルト値は約 2.7034 になります。この値は、ぼかしの品質と全体的なぼかし具合のバランスが取れた結果となります。

異なる偏差値による出力例

偏差の少ないぼかし

中程度の偏差によるぼかし

偏差の大きいぼかし

偏差: 1 偏差: 2 偏差:4
radius: 8radius: 8radius: 8
samples: 16samples: 16samples: 16

radius : real

このプロパティは、個々のピクセルのぼかしに影響を与える隣接ピクセルとの距離を定義します。半径を大きくすると、ぼかし効果が強まります。

理想的なぼかし効果は、「samples 」と「radius 」を、samples = 1 + radius * 2 となるように選択することで得られます。例えば、次のように設定します。

半径サンプル数
0(ぼかしなし)1
13
25
37

値の範囲は0.0(ぼかしなし)からinfまでです。デフォルトでは、このプロパティはfloor(samples / 2.0) に設定されています。

半径の値を変えた出力例

ぼやけのないカブトムシ

適度なボケのあるカブトムシ

ぼかしが強くかかったビートル

radius: 0 radius: 4 radius: 8
samples: 16samples: 16samples: 16
deviation: 3deviation: 3deviation: 3

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

samples : int

このプロパティは、ぼかしの計算を行う際に、1ピクセルあたり何個のサンプルを採取するかを定義します。値を大きくすると画質は向上しますが、レンダリングに時間がかかります。

理想的には、この値は、必要となる最大半径値の2倍に1を加えた値に設定すべきです。例えば、半径が0.0から4.0の間でアニメーションされる場合、サンプル数は9に設定する必要があります。

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

注:この プロパティは アニメーション化を想定したものではありません。このプロパティを変更すると、基盤となる OpenGL シェーダーが再コンパイルされる可能性があります。

source : variant

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

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

transparentBorder : bool

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

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

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

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

transparentBorder の値を変えた場合の出力例

エッジクランプ付きブラー

縁が透明なぼかし

transparentBorder: false transparentBorder: true
radius: 8radius: 8
samples: 16samples: 16
deviation: 2.7deviation: 2.7

© 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.