How do I fill a bitmap with a solid color?
This should do what you need it to. It will fill the entire bitmap with the specified color.
Bitmap Bmp = new Bitmap(width, height);
using (Graphics gfx = Graphics.FromImage(Bmp))
using (SolidBrush brush = new SolidBrush(Color.FromArgb(redvalue, greenvalue, bluevalue)))
{
gfx.FillRectangle(brush, 0, 0, width, height);
}
Bitmap bmp = new Bitmap(width, height);
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.Green);
It depends on what you are trying to accomplish, but usually you would use GDI+ by getting a graphics object and then drawing to it:
Graphics g = Graphics.FromImage(bitmap);
Its actually a big subject, here are some beginner tutorials: GDI+ Tutorials
Here is a snippet from the tutorial on drawing a rectangle with a gradient fill.
Rectangle rect = new Rectangle(50, 30, 100, 100);
LinearGradientBrush lBrush = new LinearGradientBrush(rect, Color.Red, Color.Yellow, LinearGradientMode.BackwardDiagonal);
g.FillRectangle(lBrush, rect);
You could use LockBits to speedup writing the pixels (pointer access instead of method call per pixel).
You're spoilt for choice here :-)
An alternative to using GDI+ is to use WPF (see RenderTargetBitmap.Render.)
Also see this question.