Delphiでお手軽プログラミング

Delphiでお手軽プログラミングメニュー

Delphi(FMX)のエフェクト(TxxxxxxEffect)クラス

Delphi(FMX)の様々なエフェクト(TxxxxxxEffect)クラスをImageに適用する


以下サンプルについて

以下サンプル画像は、
IDEを起動し、[ファイル]⇒[新規作成]⇒[マルチデバイスアプリケーション -Delphi]をクリックし、
[空のアプリケーション]を選択し、
フォームに、TPanel(Panel1)をドラッグ&ドロップし、
Panel1に、TImage(Image1)をドラッグドロップし、
Image1に、TxxxxxEffectを適用しています。

クラス 説明
プロパティ

エフェクトなし

エフェクトなし

TShadowEffect

影効果(輪郭の外側)

Direction
影の方向(単位:度)右方向が0度で時計回り
Distance
影が適用されるオブジェクトとの間の距離
Opacity
影の不透明度(0-1)
ShadowColor
影の色
Softness
影に適用されるぼかしの量(0-3)

TBlurEffect

ぼかし効果

Softness
ぼかしの量(0-9)

TGlowEffect

グロー効果(輪郭の外側にぼかした枠)

GlowColor
グローの色
Opacity
グローの不透明度(0-1)
Softness
ぼかしの量(0-9)

TInnnerGlowEffect

内側グロー(輪郭の内側にぼかし枠)効果

GlowColor
グローの色
Opacity
グローの不透明度(0-1)
Softness
ぼかしの量(0-9)

TBevelEffect

ベベル効果(輪郭内側に奥行きのある傾斜)
(バグってる?)

Direction
光の方向
Size
傾斜の縁のサイズ

TRefrectionEffect

鏡面反射効果(外側下部に鏡面反射効果)

Length
反射の長さ(0.1[10%]~1.0[100%])
Offset
オブジェクトと反射の隙間の距離
Opacity
反射の不透明度(0-1)

TRippleEffect

波紋を重ね合わせる効果

Amplitude
波紋の大きさ(0.00~1.00)
AspectRatio
波紋の幅と高さ間の割合(0.50~2.00)
Frequency
波紋の頻度(0.00~100.00)
Phase
波紋のフェーズ(-20.00~20.00)

TSwirlEffect

らせん状の渦巻きにする効果

AspectRatio
渦巻きの幅と高さ間の割合(0.5~2.0)
SpiralStrength
渦巻きの強度(-70~70)

TMagnifyEffect

円形領域を拡大する効果

AspectRatio
虫眼鏡範囲の幅と高さ間の割合(0.5~2.0)
Magnification
虫眼鏡の拡大倍率(1.0~5.0)
Radius
虫眼鏡拡大された円形範囲の半径(0.00[0%]~1.00[100%])

TSmoothMagnifyEffect

円形領域をスムーズに拡大する効果効果

AspectRatio
虫眼鏡範囲の幅と高さ間の割合(0.5~2.0)
InnerRadius
虫眼鏡拡大された円形範囲の内側半径(0.00[0%]~1.00[100%])
Magnification
虫眼鏡の拡大倍率(1.0~5.0)
OuterRadius
虫眼鏡拡大された円形範囲の外側半径(0.00[0%]~1.00[100%])

TBandsEffect

明るい領域の縞を作成する効果

BandDensity
縞の密度(0.0~150.0)。大きいと縞が多くなる
BandIntensity
縞の明度の強さの最大値(0.0~1.0)

TWaveEffect

波模様を施す効果

Time
波のようす、波が適用される時間(0.0~2048.0)
この値をアニメーションさせると変化がシミュレーションできる
WaveSize
波の小ささ(32.00~256.00)
この値を大きくすると波が小さくなる

TWrapEffect

2本の曲線に沿って折りたたむ効果

LeftControl1
左Bezier曲線の第1制御点(上)の水平座標を決定するための値(0.0~1.0)
LeftControl2
左Bezier曲線の第2制御点(下)の水平座標を決定するための値(0.0~1.0)
LeftEnd
左Bezier曲線の終了点の水平座標を決定するための値(0.0~1.0)
(左下点が右に何%移動するか)
LeftStart
左Bezier曲線の開始点の水平座標を決定するための値(0.0~1.0)
(左上点が右に何%移動するか)
RightControl1
右Bezier曲線の第1制御点(上)の水平座標を決定するための値(0.0~1.0)
RightControl2
右Bezier曲線の第2制御点(下)の水平座標を決定するための値(0.0~1.0)
RightEnd
右Bezier曲線の終了点の水平座標を決定するための値(0.0~1.0)
(右下点が右に何%移動するか)
RightStart
右Bezier曲線の開始点の水平座標を決定するための値(0.0~1.0)
(右上点が右に何%移動するか)

TBandedSwirlEffect

縞をらせん状に回転させる効果

AspectRatio
渦の幅と高さの割合(0.5~2.0)
Bands
回転帯の数(0~20)
Strength
竜巻効果の回転の量(-70.0~70.0)
負数は渦巻が時計回り

TPinchEffect

円形領域をつまむ効果

AspectRatio
つままれた範囲の幅と高さの割合(0.5~2.0)
Radius
つままれた範囲の半径(0.0~1.0)
Strength
適用されるねじりの量(0.0~20.0)

TTilerEffect

タイル効果

HorizontalOffset
水平オフセット(0.0~1.0[タイルの幅])
(バグってる?)
HorizontalTileCount
水平タイル数(横方向に同じ画像を何回並べるか)
VerticalOffset
垂直オフセット(0.0~1.0[タイルの幅])
(バグってる?)
VerticalTileCount
垂直タイル数(横方向に同じ画像を何回並べるか)

TPixelateEffect

モザイク効果

BlockCount
縦及び横方向のモザイクタイルの数

TEmbossEffect

エンボス効果(浮き出させる効果)

Amount
浮き出しの強さ(0.0~1.0)

TSharpenEffect

鮮明にする効果

Amount
鮮明(シャープ)にする度合い(0.0~2.0)

TToonEffect

漫画のような陰影を付ける効果

Levels
色レベルの数(3.0~15.0)
小さければ小さいほど漫画化する

TSepiaEffect

セピア効果

Amount
セピア効果の量(0.0~1.0)

TPaperSketchEffect

スケッチ効果

blushSize
ブラシサイズ(0.6~10.0)

TPencilStrokeEffect

鉛筆ストローク効果
(鉛筆で描いたような効果)

brushSize
ストロークサイズ(1.0~19.0)

TFillEffect

単色で塗りつぶす効果

Color
塗りつぶす色

TFillRGBEffect

非透明ピクセルを塗りつぶす効果

Color
塗りつぶす色

TNormalBlendEffect

2つの画像の標準ブレンド効果

Target
ブレンドする画像を指定
(この画像の透明な部分は元のオブジェクトを透過表示)

THueAdjustEffect

全体的な色相を変更する効果

Hue
色相の変化量(-1.0~1.0)

TContrastEffect

明るさとコントラストを変更する効果

Brightness
明るさの変更度合い(-1.0~1.0)
Contrast
コントラストの乗数(0.0~2.0)

TBloomEffect

明るい領域をさらに明るくする効果

BaseIntensity
基本イメージの輝度(0.0~1.0)
BaseSaturation
基本イメージの彩度(0.0~1.0)
BloomIntensity
明るい領域の明度(0.0~1.0)
BloomSaturation
明るい領域の彩度(0.0~1.0)

TGloomEffect

暗い領域をさらに暗くする効果

BaseIntensity
基本イメージの輝度(0.0~1.0)
BaseSaturation
基本イメージの彩度(0.0~1.0)
GloomIntensity
暗い領域の明度(0.0~1.0)
GloomSaturation
暗い領域の彩度(0.0~1.0)

TInvertEffect

色を反転させる効果

TMonochromeEffect

モノクロ効果

TColorKeyAlphaEffect

特定の色のピクセルを透明にする効果

ColorKey
透明になる色
Tolerance
色の許容範囲(0.0~1.0)

TMaskToAlphaEffect

グレースケール画像をアルファでマスクされた白画像に変換する効果


エフェクトが適用された画像(TBitmap)の取り出し方

エフェクトがImage1内部に対して適用される場合は Image1.MakeScreenshot() でTBitmapを返してくれます。
エフェクトがImage1外部に対して適用される場合は、上記サンプルの場合、親オブジェクトであるPanel1に適用されるため、
Panel1.MakeScreenshot() でTBitmapを返してくれます。

procedure TForm1.Button1Click(Sender: TObject);
var bmp:TBitmap;
begin
  //内側に適用されるエフェクトの場合
  bmp:=Image1.MakeScreenshot();
  //何らかの処理
  bmp.Free;

  //外側に適用されるエフェクトの場合
  bmp:=Panel1.MakeScreenshot();
  //何らかの処理
  bmp.Free;
end;

Copyright 2021 Mam