Разрезка картинки на несколько частей

Реализация картинки круглой

Я смог реализовать постепенное движение обводки в зависимости от времени перезарядки способности. Для этого исходную обводку разбиваю на 100 частей и затем использую. Хотел тоже самое проделать с другой, не круглой, но возникла проблема, что код обрезал и подстраивал закругленную под круг.

Оригинальный файл

После обработки, видно что вырезал под круг

{
    for (int i = 0; i <= 100; i++)
    {
        Bitmap bitmap2 = Pie(bitmap, i);
        var ms = new MemoryStream();
        bitmap2.Save(ms, ImageFormat.Png);
        RendererManager.LoadImage("NewVisuals.roundedRect" + i, ms);
    }
}

public static Bitmap Pie(System.Drawing.Image source, int pct)
{
    Bitmap bitmap = new Bitmap(source.Width, source.Height);
    using GraphicsPath graphicsPath = new GraphicsPath();
    graphicsPath.AddArc(0, 0, source.Width, source.Height, -90f, 3.6f * (float)pct);
    using Graphics graphics = Graphics.FromImage(bitmap);
    graphics.SetClip(graphicsPath);
    graphics.DrawImage(source, 0, 0, source.Width, source.Height);
    return bitmap;
}

Это код который я использовал, но он не подходит для моей закругленной картинке. Что я делаю не так. Как я могу исправить ошибку?


Ответы (0 шт):