ペイントの基本を、実際に試しながら見てみましょう。
とりあえず描いてみる
基本的に、すべての描画メソッドは、ペイントを引数に持ちます。とりあえず、何も設定せずにペイントを作って、円を描いてみましょう。
ペイントはアンマネージドリソースです。明示的にDisposeするか、using宣言を使いましょう。
// 白く塗りつぶす
canvas.Clear( SKColors.White );
// ペイントオブジェクトを作る
using var paint = new SKPaint();
// 円を描く(中心(150,100), 半径80)
canvas.DrawCircle( 150, 100, 80, paint );
シンプルな黒い丸が出てきました。
色を設定してみる
今日は紫色の気分なので、紫にしてみましょう。ペイントに色を設定します。
paint.Color = SKColors.BlueViolet; // すみれ色
紫色になりました。
アンチエイリアスを設定してみる
よく見ると、輪郭がギザギザしていて格好悪いですね。アンチエイリアスをONにしてみましょう。
paint.IsAntialias = true; // アンチエイリアスON
滑らかになりました。
塗りつぶさない
では、塗りつぶした円ではなく、輪郭線の円を描くにはどうしたらいいでしょうか?
Skiaでは、塗りつぶした円を描くメソッドとか、輪郭線の円を描くメソッド、というようには分かれていません。ペイントに、描きたいのは線である旨と、線の太さを設定するだけです。
paint.Style = SKPaintStyle.Stroke; // 描きたいのは線
paint.StrokeWidth = 10; // 線の太さ
少し太めの輪になりました。
影を付けてみる
最後に、格好良く、影を落としてみましょう。
普通なら、影の輪を描いてから、紫色の輪を重ねて描く、というような面倒な処理になりますが、Skiaでは、イメージフィルターというものをペイントに設定します。
paint.ImageFilter = SKImageFilter.CreateDropShadow(
5, 5, // 影の距離
3, 3, // 影のぼけ具合
SKColors.Gray // 影の色
);
簡単ですね!
まとめ
Skiaでは、ペイントがあらゆる描画をコントロールします。そして、ドロップシャドーのような高度なエフェクトまで、ペイントの設定だけで実現できてしまいます。
総合目次




