WebBrowser.DrawtoBitmap() генерирует пустые изображения для нескольких сайтов последовательно

Я использовал WebBrowser.DrawtoBitmap() на моей странице asp.net, работающей в отдельном потоке STA, для захвата веб-страниц в виде изображения. Но я обнаружил, что постоянно получаю пустые изображения для нескольких сайтов. Я знаю, что этот метод не "официально" поддерживается, но было бы неплохо, если бы кто-то мог предоставить мне причину или обойти эту проблему с пустыми изображениями.

3 ответа

Решение

DrawToBitmap имеет ограничения и не всегда работает, как ожидалось. Попробуй вместо этого работать с родным GDI+

Вот пример

Вы не попадаете на страницы с помощью Flash?

Я должен был сделать это, чтобы получить мой WebBrowser управление работой:

using System;
using System.Windows.Forms;

public class WebBrowserEx : WebBrowser
{
   public WebBrowserEx()
   {
   }

   protected override void WndProc(ref Message m)
   {
      switch (m.Msg)
      {
         case 0x021:
         case 0x201:
         case 0x204:
         case 0x207:
             base.DefWndProc(ref m);
             return;
      }
      base.WndProc(ref m);
   }
}

Я серьезно понятия не имею, что я делал, я просто нашел это где-то, и это должно было включить Flash. Но я думаю, что с тех пор у меня не было особых проблем с этим.

Я использую это, чтобы делать скриншоты. Я запускаю его в отдельном потоке STA (как служба Windows - ничего не видно).

Эту проблему можно решить, сосредоточив внимание на элементе управления, чтобы он рисовал правильно.

Это будет вариант, но элемент управления должен быть видимым: WebBrowser.DrawToBitmap () или другие методы?

Насколько я слышал, проблема в том, что она устранена, когда вы нажимаете webbrowsercontrol. Поэтому выполнение этой программы должно решить проблему:)

Я не проверял это, но в теории я думаю, что можно запустить форму окна в приложении asp.net. Ссылка на system.windows.forms и на чертеж, затем используйте application.run в отдельном потоке. Примечание: я разговариваю по телефону, поэтому не могу проверить его, но он может действительно работать.

Другие вопросы по тегам