Se ejecuta el siguiente código, pero el mapa de bits generado se desplaza hacia abajo aproximadamente media pulgada y el límite en la parte inferior. Comprobé el ancho y el alto de la imagen y está creando una imagen del tamaño correcto, solo el contenido de la imagen se desplaza hacia abajo y se corta. Estoy perplejo ... ¿Alguna idea?Guardar imágenes desde un control WebBrowser
using mshtml;
using System.Drawing;
using System.Runtime.InteropServices;
[ComImport, InterfaceType((short)1), Guid("3050F669-98B5-11CF-BB82-00AA00BDCE0B")]
private interface IHTMLElementRenderFixed
{
void DrawToDC(IntPtr hdc);
void SetDocumentPrinter(string bstrPrinterName, IntPtr hdc);
}
public Bitmap GetImage(string id)
{
HtmlElement e = webBrowser1.Document.GetElementById(id);
IHTMLImgElement img = (IHTMLImgElement)e.DomElement;
IHTMLElementRenderFixed render = (IHTMLElementRenderFixed)img;
Bitmap bmp = new Bitmap(img.width, img.height);
Graphics g = Graphics.FromImage(bmp);
IntPtr hdc = g.GetHdc();
render.DrawToDC(hdc);
g.ReleaseHdc(hdc);
return bmp;
}
¿Sería realmente necesario el desplazamiento para imágenes grandes? Mi control WebBrowser ni siquiera es visible. Pensaría que renderizarlo desde el objeto gráfico funcionaría tanto si la imagen está a la vista como si no. Voy a necesitar experimentar con eso. – toby
Utilizo el procesador para páginas completas o grandes tablas HTML. Ahí tengo que desplazarme. –