Как сделать фон прозрачным при сохранении

На so нашёл код, который рисует в круге текст. Все работает, но когда сохраняю картинки, фон остается, а хочется чтобы он был transparent

public static System.Drawing.Image DrawUserCircle(System.Drawing.Size PicSize, System.Drawing.Brush Brush, string Texto, System.Drawing.Font Fuente, System.Drawing.Color BackColor)
        {
            System.Drawing.Image Canvas = new System.Drawing.Bitmap(PicSize.Width, PicSize.Height);

            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(Canvas);

            System.Drawing.Rectangle outerRect = new System.Drawing.Rectangle(-1, -1, Canvas.Width + 1, Canvas.Height + 1);
            System.Drawing.Rectangle rect = System.Drawing.Rectangle.Inflate(outerRect, -2, -2);

            
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
            g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
            g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
            

            using (System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath())
            {
                g.FillRectangle(new System.Drawing.SolidBrush(BackColor),
                    new System.Drawing.RectangleF(0, 0, PicSize.Width, PicSize.Height));

                path.AddEllipse(rect);
                g.FillPath(Brush, path);

                
                System.Drawing.SizeF stringSize = g.MeasureString(Texto, Fuente); //<- Obtiene el tamaño del Texto en pixeles                                                                                 
                int posX = Convert.ToInt32((PicSize.Width - stringSize.Width) / 2); //<- Calcula la posicion para centrar el Texto
                int posY = Convert.ToInt32((PicSize.Height - stringSize.Height) / 2);

                g.DrawString(Texto, Fuente, new System.Drawing.SolidBrush(BackColor), new System.Drawing.Point(posX, posY));
            }
            return Canvas;
        }

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