Как сохранить веб-страницу как изображение - PullRequest
4 голосов
/ 17 марта 2011

у меня есть строка с источником веб-страницы; как я могу сохранить его в байте [] как изображение?

Ответы [ 3 ]

4 голосов
/ 17 марта 2011

Здесь: 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();
}
2 голосов
/ 17 марта 2011

Вы также можете взглянуть на следующую статью и на эту , а также на один из способов сделать снимок экрана веб-страницы и сохранить его в виде изображения. Компонент WPFChromium также позволяет вам достичь этого без зависимости от Internet Explorer.

0 голосов
/ 17 марта 2011
...