34

I'm trying to generate a PNG file using C#. Everything I google seems to be WPF related. My issue is, I need to create a PNG 50x50 square filled with green in .NET 2.0.

My question is, how do I do this? I was looking in the System.Drawing namespace. But after all of that, I feel I'm way off. Can someone give me some pointers?

Ciro Santilli OurBigBook.com
  • 347,512
  • 102
  • 1,199
  • 985
Villager
  • 6,569
  • 22
  • 65
  • 87

3 Answers3

64

You can create a bitmap with the size you want, then create a Graphics object to be able to draw on the bitmap. The Clear method is the simplest way to fill the image with a color. Then save the image using the PNG format:

using (Bitmap b = new Bitmap(50, 50)) {
  using (Graphics g = Graphics.FromImage(b)) {
    g.Clear(Color.Green);
  }
  b.Save(@"C:\green.png", ImageFormat.Png);
}
Guffa
  • 687,336
  • 108
  • 737
  • 1,005
11

Here is the code for you:

Bitmap bmp = new Bitmap(50,50);
Graphics g = Graphics.FromImage(bmp);
g.FillRectangle(Brushes.Green, 0, 0, 50, 50);
g.Dispose();
bmp.Save("filepath", System.Drawing.Imaging.ImageFormat.Png);
bmp.Dispose();
James Skemp
  • 8,018
  • 9
  • 64
  • 107
honibis
  • 811
  • 1
  • 5
  • 13
3

You can generate png file by the following way -

FileInfo fi = new FileInfo(@"D:\bango.png");
FileStream fstr = fi.Create();
Bitmap bmp = new Bitmap(50, 50);
bmp.Save(fstr, ImageFormat.Png);
fstr.Close();
fi.Delete();
James Skemp
  • 8,018
  • 9
  • 64
  • 107
Kiva Yor
  • 31
  • 1