public Image GetImageFromElement(IHTMLElement Element)
{
int width = (int)Element.style.width;
int height = (int)Element.style.height;
IHTMLElementRender2 render = (IHTMLElementRender2)Element;
Bitmap screenCapture = new Bitmap(width, height);
Rectangle drawRectangle = new Rectangle(0, 0, width, height);
this.DrawToBitmap(screenCapture, drawRectangle);
Graphics graphics = Graphics.FromImage(screenCapture);
IntPtr graphicshdc = graphics.GetHdc();
render.DrawToDC(graphicshdc);
graphics.ReleaseHdc(graphicshdc);
graphics.Dispose();
return screenCapture as Image;
}
Это метод, который я использую для генерируемых php изображений. Это связано с моим собственным WebBrowserClass, который расширяет элемент управления веб-браузером.
(так "это" = WebBrowser)
Но мы должны импортировать интерфейс IHTMLElementRender2, чтобы использовать этот метод.
[Guid("3050f669-98b5-11cf-bb82-00aa00bdce0b"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown),
ComVisible(true),
ComImport]
interface IHTMLElementRender2
{
void DrawToDC([In] IntPtr hDC);
void SetDocumentPrinter([In, MarshalAs(UnmanagedType.BStr)] string bstrPrinterName, [In] IntPtr hDC);
};
Я нашел этот метод в сети около 1 года назад, поэтому, если вы его ищете, вы можете найти более подробную информацию.
Iwan
Да я мог бы использовать это, но с каждым запросить изображение меняется ... PHP код создает новый образ на каждом запросе, так что мне нужно точно как в WatiN. Может быть, привязка к IHtmlDocument или что-то еще? –
@Baptiste Pernet - Спасибо за ответ, он решил мою проблему. Еще раз спасибо. :) – Bibhu