Здесь: http://pietschsoft.com/post/2008/07/C-Generate-WebPage-Thumbmail-Screenshot-Image.aspx
Пример использования метода WebBrowser.DrawToBitmap.
После того как вы сгенерировали свое растровое изображение, вы можете сжать его, используя любую кодировку, какую захотите.
Вот пример из MSDN для сжатия в PNG (без потерь и маленький):
Как: кодировать и декодировать изображение PNG
Удачи:)
EDIT:
Чтобы получить байтовый массив, вы можете использовать поток памяти в качестве выходного потока.
Вот рабочий пример того, как что-то подобное будет работать:
public static void Main(string[] args)
{
byte[] test = new byte[] { 2, 5, 6, 1, 9 };
MemoryStream ms = new MemoryStream();
ms.Write(test, 0, 5);
byte[] image = new byte[ms.Length];
Buffer.BlockCopy(ms.GetBuffer(), 0, image, 0, (int)ms.Length);
for (int i = 0; i < ms.Length; i++)
Console.WriteLine(image[i]);
Console.ReadKey();
}
А вот пример того, как это будет работать в вашем случае:
public static void Main(string[] args)
{
MemoryStream ms = new MemoryStream();
// You have a PNGBitmapEncoder, and you call this:
encoder.Save(ms);
byte[] image = new byte[ms.Length];
Buffer.BlockCopy(ms.GetBuffer(), 0, image, 0, (int)ms.Length);
for (int i = 0; i < ms.Length; i++)
Console.WriteLine(image[i]);
Console.ReadKey();
}