SKPaint クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ジオメトリ、テキスト、ビットマップの描画方法に関するスタイルと色の情報を保持します。
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);
}
上記の例では、次の結果が生成されます。
効果の例
次の例では、単一の色ではなくグラデーションを使用して描画します。 これを行うには、 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);
}
上記の例では、次の結果が生成されます。
注釈
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) |
指定した色空間の浮動小数点カラー値を使用して、ペイントの色を設定します。 |