SKPaint クラス

定義

ジオメトリ、テキスト、ビットマップの描画方法に関するスタイルと色の情報を保持します。

public class SKPaint : SkiaSharp.SKObject
継承

簡単な例

次の例は、それぞれ異なるスタイルで描画するように設定された 3 つの異なるペイントを示しています。 呼び出し元は、これらのペイントをそのまま使用するか、図面の進行に合わせて変更することで、これらのペイントを自由に混在させることができます。

var info = new SKImageInfo(256, 256);
using (var surface = SKSurface.Create(info)) {
    SKCanvas canvas = surface.Canvas;

    canvas.Clear(SKColors.White);

    using var font = new SKFont { Size = 64.0f };
    using var scaledFont = new SKFont { Size = 64.0f, ScaleX = 1.5f };

    using var paint1 = new SKPaint {
        IsAntialias = true,
        Color = new SKColor(255, 0, 0),
        Style = SKPaintStyle.Fill
    };

    using var paint2 = new SKPaint {
        IsAntialias = true,
        Color = new SKColor(0, 136, 0),
        Style = SKPaintStyle.Stroke,
        StrokeWidth = 3
    };

    using var paint3 = new SKPaint {
        IsAntialias = true,
        Color = new SKColor(136, 136, 136)
    };

    var text = "Skia!";
    canvas.DrawText(text, 20.0f, 64.0f, SKTextAlign.Left, font, paint1);
    canvas.DrawText(text, 20.0f, 144.0f, SKTextAlign.Left, font, paint2);
    canvas.DrawText(text, 20.0f, 224.0f, SKTextAlign.Left, scaledFont, paint3);
}

上記の例では、次の結果が生成されます。

SKPaint と Text

効果の例

次の例では、単一の色ではなくグラデーションを使用して描画します。 これを行うには、 SKShader がペイントに割り当てられます。 そのペイントで描画されたものはすべて、 SKShader.CreateLinearGradientの呼び出しで指定されたグラデーションで描画されます。

var info = new SKImageInfo(256, 256);
using (var surface = SKSurface.Create(info)) {
    SKCanvas canvas = surface.Canvas;

    canvas.Clear(SKColors.White);

    // create a gradient
    var colors = new[] {
        SKColors.Blue,
        SKColors.Yellow
    };
    var shader = SKShader.CreateLinearGradient(
        new SKPoint(0.0f, 0.0f),
        new SKPoint(256.0f, 256.0f),
        colors,
        null,
        SKShaderTileMode.Clamp);

    // assign the gradient to the paint
    var paint = new SKPaint {
        Shader = shader
    };

    canvas.DrawPaint(paint);
}

上記の例では、次の結果が生成されます。

SKPaint と SKShader

注釈

SkiaSharp で何かを描画し、その色、背景とのブレンド方法、描画するスタイルやフォントを指定する場合は、それらの属性をペイントで指定します。

SKCanvasとは異なり、ペイント オブジェクトは状態の内部スタックを維持しません。 つまり、ペイントに保存/復元はありません。 ただし、ペイント オブジェクトは比較的軽量であるため、クライアントは任意の数のペイント オブジェクトを作成して維持できます。各オブジェクトは特定の用途に合わせて設定されます。

これらの色とスタイルの属性をすべてキャンバス状態から (複数の) ペイント オブジェクトに分解すると、マトリックスとクリップの設定のスタックを維持する必要があるため、 SKCanvas の保存および復元操作をはるかに効率的にすることができます。

エフェクツ

色、ストローク、テキスト値などの単純な属性以外にも、ペイントは効果をサポートします。 これらは描画パイプラインのさまざまな側面のサブクラスであり、描画パイプラインの一部をオーバーライドするために描画パイプラインによって参照される場合に呼び出されます。

ペイント オブジェクトに割り当てることができる効果には、次の 5 種類があります。

Effect 詳細情報
ブレンド モード ブレンド モードと Duff-Porter 転送モード。
カラー フィルター ブレンド モードを適用する前のソース カラーの変更。
マスク フィルター 色分けして描画する前のアルファ マスクの変更 (ぼかしなど)。
パス効果 アルファ マスクが生成される前のジオメトリ (パス) の変更 (ダッシュなど)。
Shader グラデーションとビットマップ パターン。

コンストラクター

名前 説明
SKPaint()

既定の設定を使用して、 SKPaint クラスの新しいインスタンスを初期化します。

プロパティ

名前 説明
Blender

合成用のカスタム SKBlender を取得または設定します。

BlendMode

ブレンド モードを取得または設定します。

Color

ペイントの前景色を取得または設定します。

ColorF

描画の色を SKColorF (浮動小数点 RGBA) として取得または設定します。

ColorFilter

ペイントのカラー フィルターを取得または設定します。

Handle

基になるネイティブ オブジェクトへのハンドルを取得または設定します。

(継承元 SKObject)
IgnorePublicDispose

パブリック Dispose() の呼び出しを no-opするかどうかを示す値を取得します。

(継承元 SKNativeObject)
ImageFilter

イメージ フィルターを取得または設定します。

IsAntialias

アンチエイリアシングが有効かどうかを示す値を取得または設定します。

IsDisposed

オブジェクトが既に破棄されているかどうかを示す値を取得します。

(継承元 SKNativeObject)
IsDither

ディザリングが有効かどうかを示す値を取得または設定します。

IsStroke

ストロークを塗りつぶすか塗りつぶすかを示す値を取得または設定します。

MaskFilter

描画時に使用するマスク フィルターを取得または設定します。

OwnsHandle

このオブジェクトがハンドルを所有し、破棄されるときにネイティブ オブジェクトを破棄する必要があるかどうかを示す値を取得または設定します。

(継承元 SKNativeObject)
PathEffect

描画時に使用するパス効果を取得または設定します。

Shader

描画時に使用するシェーダーを取得または設定します。

StrokeCap

ストロークされた線とパスの開始と終了の処理方法を示す値を取得または設定します。

StrokeJoin

パスの結合の種類を取得または設定します。

StrokeMiter

ペイントのマイター制限を取得または設定します。

StrokeWidth

ペイントのストローク幅を取得または設定します。

Style

描画スタイルを取得または設定します。

メソッド

名前 説明
Clone()

現在のペイントのコピーを作成します。

Dispose()

この SKNativeObjectで使用されているすべてのリソースを解放します。

(継承元 SKNativeObject)
Dispose(Boolean)

SKPaintによって使用されるアンマネージ リソースを解放し、必要に応じてマネージド リソースを解放します。

DisposeInternal()

破棄をトリガーし、 IgnorePublicDisposeの値を無視します。

(継承元 SKNativeObject)
DisposeManaged()

マネージド オブジェクトを破棄するために派生 SKObject 型によって実装されます。

(継承元 SKObject)
DisposeNative()

ネイティブ オブジェクトを破棄するために派生 SKObject 型によって実装されます。

DisposeUnownedManaged()

派生 SKObject 型によって実装され、このインスタンスが所有していないマネージド オブジェクトを破棄します。

(継承元 SKObject)
GetFillPath(SKPath, Single)

すべての効果をソース パスに適用した結果から新しいパスを作成します。

GetFillPath(SKPath, SKMatrix)

変換行列を使用してソース パスに対してすべての効果を適用した結果から新しいパスを作成します。

GetFillPath(SKPath, SKPath, Single)
古い.

すべての効果をソース パスに適用し、変換先で結果を返します。

GetFillPath(SKPath, SKPath, SKMatrix)
古い.

変換行列を使用してソース パスに対してすべての効果を適用し、結果を変換先に書き込みます。

GetFillPath(SKPath, SKPath, SKRect, Single)
古い.

すべての効果をソース パスに適用し、変換先で結果を返します。

GetFillPath(SKPath, SKPath, SKRect, SKMatrix)
古い.

カリングと変換を使用してソース パスに対してすべての効果を適用し、結果を変換先に書き込みます。

GetFillPath(SKPath, SKPath, SKRect)
古い.

すべての効果をソース パスに適用し、変換先で結果を返します。

GetFillPath(SKPath, SKPath)
古い.

すべての効果をソース パスに適用し、変換先で結果を返します。

GetFillPath(SKPath, SKPathBuilder, Single)

指定した解像度スケールでソース パスの塗りつぶしジオメトリを計算し、結果を宛先パス ビルダーに書き込みます。

GetFillPath(SKPath, SKPathBuilder, SKMatrix)

変換行列を適用した後、ソース パスの塗りつぶされたジオメトリを計算し、変換先パス ビルダーに結果を書き込みます。

GetFillPath(SKPath, SKPathBuilder, SKRect, Single)

指定した解像度スケールで、カリング四角形内のソース パスの塗りつぶしジオメトリを計算し、結果を宛先パス ビルダーに書き込みます。

GetFillPath(SKPath, SKPathBuilder, SKRect, SKMatrix)

変換行列を適用した後、カリング四角形内のソース パスの塗りつぶされたジオメトリを計算し、変換先パス ビルダーに結果を書き込みます。

GetFillPath(SKPath, SKPathBuilder, SKRect)

カリング四角形内のソース パスの塗りつぶしジオメトリを計算し、結果を宛先パス ビルダーに書き込みます。

GetFillPath(SKPath, SKPathBuilder)

このペイントのスタイルを使用してソース パスの塗りつぶしジオメトリを計算し、変換先パス ビルダーに結果を書き込みます。

GetFillPath(SKPath, SKRect, Single)

すべての効果をソース パスに適用した結果から新しいパスを作成します。

GetFillPath(SKPath, SKRect, SKMatrix)

カリングと変換を使用してソース パスに効果を適用した結果から新しいパスを作成します。

GetFillPath(SKPath, SKRect)

すべての効果をソース パスに適用した結果から新しいパスを作成します。

GetFillPath(SKPath)

すべての効果をソース パスに適用した結果から新しいパスを作成します。

Reset()

すべてのペイント プロパティを既定値にリセットします。

SetColor(SKColorF, SKColorSpace)

指定した色空間の浮動小数点カラー値を使用して、ペイントの色を設定します。

適用対象