1

我有一个程序可以从网页复制图像并将它们保存在本地。在某些网页上,保存的图像是一个完全黑屏。首先,我认为这是代码中的一个问题,没有拍出好照片。于是我开始调查。我手动转到这些页面并尝试复制图像(右键单击,复制图像),但它仍然返回黑色图像。有人可以告诉我如何从代码中绕过它吗?这是当前代码,适用于大多数图片

IHTMLDocument2 doc = (IHTMLDocument2)webBrowser1.Document.DomDocument;
        IHTMLControlRange imgRange = (IHTMLControlRange)((HTMLBody)doc.body).createControlRange();

        foreach (IHTMLImgElement img in doc.images)
        {
            if (img.alt != "my image alt")
                continue;
            imgRange.add((IHTMLControlElement)img);

            imgRange.execCommand("Copy", false, null);

            using (Bitmap bmp = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap))
            {
                if (bmp != null)
                {
                    bmp.Save("testimg.jpg");
                }
            }
        }
4

1 回答 1

1

该图像具有透明背景。
因此,图像中的每个像素都是黑色的,除了大部分是完全透明的。

由于.jpg文件不支持透明度,因此将其保存为.jpg黑色图像。

如果将其保存为.png文件(确实支持透明度),它应该可以工作。

于 2012-10-14T12:59:31.417 回答