How to load a bitmap file in a .NET console application

user1741137 picture user1741137 · Feb 18, 2014 · Viewed 8k times · Source

I'm trying to make a Console Application with C# that starts by loading an 8-bit gray level bitmap file (typically BMP) and transform it into a two dimensional byte array, where (as you would expect) the byte at position x,y is the intensity of pixel x,y. I then have a lot of code that will do some work on the bitmap as array.

The trouble is that I've seen this done with calls from WPF modules which just are not available in a console application. I don't want to use System.Windows.Media.Imaging for example.

Does anyone have any suggestion as to how I can do this without too much trouble?

Answer

Daniel A.A. Pelsmaeker picture Daniel A.A. Pelsmaeker · Feb 18, 2014

You can add the System.Drawing.dll assembly to your project's references. Then you can use the System.Drawing.Bitmap class.

Add the following to the top of your code file to add the namespace System.Drawing:

using System.Drawing;

To load a bitmap:

Bitmap bitmap = (Bitmap)Image.FromFile(@"mypath.bmp");

When you're done with the bitmap:

bitmap.Dispose();

You can get the width, the height, and any pixels within the bitmap:

int width = bitmap.Width;
int height = bitmap.Height;
Color pixel00 = bitmap.GetPixel(0, 0);