public void CanDrawPatch() { var cubics = new SKPoint[12] { // top points new SKPoint(100, 100), new SKPoint(150, 50), new SKPoint(250, 150), new SKPoint(300, 100), // right points new SKPoint(250, 150), new SKPoint(350, 250), // bottom points new SKPoint(300, 300), new SKPoint(250, 250), new SKPoint(150, 350), new SKPoint(100, 300), // left points new SKPoint(50, 250), new SKPoint(150, 150) }; var baboon = SKImage.FromEncodedData(Path.Combine(PathToImages, "baboon.jpg")); var tex = new SKPoint[4] { new SKPoint(0, 0), new SKPoint(baboon.Width, 0), new SKPoint(baboon.Width, baboon.Height), new SKPoint(0, baboon.Height), }; using var bmp = new SKBitmap(new SKImageInfo(400, 400)); using var canvas = new SKCanvas(bmp); using var paint = new SKPaint { IsAntialias = true, Shader = baboon.ToShader(), }; canvas.DrawPatch(cubics, null, tex, paint); }