Using LinearGradientBrush in C#
Well during my CSS change over I needed some background images for my
headers. I wanted some simple gradient looks, but I only have 2 picture programs
installed mspaint and Paint.Net, neither one of those
does gradients (at least that I could find). I could download and install some
picture program that has gradients but that is too much work and
not much fun :)
So what do I do? I remember that there is some sort of Gradient
stuff in GDI+ that I have never used. Then I do a simple google
search and I turn up a nice walk through on how to
use LinearGradientBrush
on Bob Powell's GDI+ FAQ page. Then I open
Visual Studio.Net and coded a little routine to generate a
gradient image for my header. Here is the code for reference:
1 using System.Drawing;
2 using System.Drawing.Imaging;
3 using System.Drawing.Drawing2D;
4
5 ...
6
7 public static void OutputGradientImage()
8 {
9 using (Bitmap bitmap = new Bitmap(25, 75))
10 using (Graphics graphics = Graphics.FromImage(bitmap))
11 using (LinearGradientBrush brush = new LinearGradientBrush(
12 new Rectangle(0, 0, 25, 75),
13 Color.OliveDrab,
14 Color.LightGreen,
15 LinearGradientMode.Vertical))
16 {
17 brush.SetSigmaBellShape(0.25f, 0.75f);
18 graphics.FillRectangle(brush, new Rectangle(0, 0, 25, 75));
19 bitmap.Save("gradient.jpg", ImageFormat.Jpeg);
20 }
21 }
It is amazing how easy this is to in .Net. Here is the image that the
above code generated:

I used that image as the background image for my top header. Then I changed
the size to (25, 25) and generated the image for my sidebar / post headings.
At any rate I accomplished what I wanted to do, even it I had to code it
myself. How big of a geek am I? ;)