Exemplo n.º 1
0
        public static void DrawBitmap(this SKCanvas canvas, SKBitmap bitmap, SKRect dest,
                                      SKStretch stretch,
                                      SKAlignment horizontal = SKAlignment.Center,
                                      SKAlignment vertical   = SKAlignment.Center,
                                      SKPaint paint          = null)
        {
            if (stretch == SKStretch.Fill)
            {
                canvas.DrawBitmap(bitmap, dest, paint);
            }
            else
            {
                float scale = 1;
                switch (stretch)
                {
                case SKStretch.None:
                    break;

                case SKStretch.Uniform:
                    scale = Math.Min(dest.Width / bitmap.Width, dest.Height / bitmap.Height);
                    break;

                case SKStretch.UniformToFill:
                    scale = Math.Max(dest.Width / bitmap.Width, dest.Height / bitmap.Height);
                    break;
                }
                SKRect display = CalculateDisplayRect(dest, scale * bitmap.Width, scale * bitmap.Height, horizontal, vertical);
                canvas.DrawBitmap(bitmap, display, paint);
            }
        }
Exemplo n.º 2
0
        void ExecuteSwitchStretchCommand()
        {
            switch (Stretch)
            {
            case SKStretch.None:
                Stretch = SKStretch.Fill;
                break;

            case SKStretch.Fill:
                Stretch = SKStretch.Uniform;
                break;

            case SKStretch.Uniform:
                Stretch = SKStretch.UniformToFill;
                break;

            case SKStretch.UniformToFill:
                Stretch = SKStretch.None;
                break;
            }
        }