I am also struggling to follow exactly what you want but lets start with a simple grayscale display of any supported image format file (JPG,BMP, PNG, GIF & TIFF)
public static Bitmap MakeGrayscale(Image original)
{
Bitmap newBitmap = new Bitmap(original.Width, original.Height);
Graphics g = Graphics.FromImage(newBitmap);
ColorMatrix colorMatrix = new ColorMatrix(
new float[][]
{
new float[] {.3f, .3f, .3f, 0, 0},
new float[] {.59f, .59f, .59f, 0, 0},
new float[] {.11f, .11f, .11f, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {0, 0, 0, 0, 1}
});
ImageAttributes attributes = new ImageAttributes();
attributes.SetColorMatrix(colorMatrix);
g.DrawImage(original, new Rectangle(0, 0, original.Width, original.Height),
0, 0, original.Width, original.Height, GraphicsUnit.Pixel, attributes);
g.Dispose();
return newBitmap;
}
A sample call from say a simple form with a a button would look like
private void button1_Click(object sender, EventArgs e)
{
Graphics graph = CreateGraphics();
Image img = Image.FromFile("Image.jpg");
Bitmap b = MakeGrayscale(img);
graph.DrawImage(b, 0, 0);
}
Hope that helps as a start