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?
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);