Esta es la única forma que pude encontrar. Curioso si alguien más tiene una mejor manera.
Copiado de CodeProject
Hay que añadir una referencia a Microsoft.mshtml y por supuesto de espera para el documento termine de cargarse. Esto guardará las imágenes cargadas en un componente System.Windows.Forms.WebBrowser webBrowser1
, incluso las que no desea.
IHTMLDocument2 doc = (IHTMLDocument2) webBrowser1.Document.DomDocument;
IHTMLControlRange imgRange = (IHTMLControlRange) ((HTMLBody) doc.body).createControlRange();
foreach (IHTMLImgElement img in doc.images)
{
imgRange.add((IHTMLControlElement) img);
imgRange.execCommand("Copy", false, null);
using (Bitmap bmp = (Bitmap) Clipboard.GetDataObject().GetData(DataFormats.Bitmap))
{
bmp.Save(@"C:\"+img.nameProp);
}
}
... hola gracias por responder, Sólo espero que alguien va a venir con otra solución, ya que realmente no puede utilizar el portapapeles así ... – lebhero
bien si el portapapeles está fuera de límites, a continuación, otra que pasar por la memoria caché, la única otra forma puede ser descargar la imagen nuevamente. Pero veamos qué otros vienen con – Asher
Muy útil. Es posible que desee agregar la capacidad de guardar y restaurar los datos antiguos del portapapeles. 'var clipboardData = Clipboard.GetDataObject();' before 'foreach' y' Clipboard.SetDataObject (clipboardData); 'después de' foreach'. – iCantSeeSharp