public static Bitmap GenerateAlphaBitmap()
{
// Alpha values
int alpha25 = (int)(255 * 0.25f); // 25% opacity
int alpha50 = (int)(255 * 0.50f); // 50% opacity
int alpha75 = (int)(255 * 0.75f); // 75% opacity
int alpha100 = 255; // 100% opacity
// Some drawing tools needed later
Pen blackBorder = new Pen(Color.Black, 2.0f);
Brush violet25 = new SolidBrush(Color.FromArgb(alpha25, Color.Violet));
Brush red50 = new SolidBrush(Color.FromArgb(alpha50, Color.Red));
Brush green75 = new SolidBrush(Color.FromArgb(alpha75, Color.Green));
Brush blue100 = new SolidBrush(Color.FromArgb(alpha100, Color.Blue));
Font font = new Font("Tahoma", 16);
Brush text100 = new SolidBrush(Color.FromArgb(255, Color.White));
// Create a 256x256 ARGB bitmap
Bitmap bmp = new Bitmap(256, 256, PixelFormat.Format32bppArgb);
Graphics g = Graphics.FromImage(bmp);
// Do antialiased drawings
g.SmoothingMode = SmoothingMode.AntiAlias;
g.TextRenderingHint = TextRenderingHint.AntiAlias;
// Clear the bitmap with complete transparency
g.Clear(Color.Transparent);
// Draw serveral cicles with various Alpha values
g.FillEllipse(violet25, 9, 9, 110, 110);
g.DrawEllipse(blackBorder, 9, 9, 110, 110);
g.DrawString("25%", font, text100, 40, 50);
g.FillEllipse(red50, 137, 9, 110, 110);
g.DrawEllipse(blackBorder, 137, 9, 110, 110);
g.DrawString("50%", font, text100, 170, 50);
g.FillEllipse(green75, 9, 137, 110, 110);
g.DrawEllipse(blackBorder, 9, 137, 110, 110);
g.DrawString("75%", font, text100, 40, 180);
g.FillEllipse(blue100, 137, 137, 110, 110);
g.DrawEllipse(blackBorder, 137, 137, 110, 110);
g.DrawString("100%", font, text100, 170, 180);
// Release GDI+ objects
blackBorder.Dispose();
violet25.Dispose();
red50.Dispose();
green75.Dispose();
blue100.Dispose();
font.Dispose();
text100.Dispose();
g.Dispose();
// return the bitmap
return bmp;
}