这个代码对于geckofx33是有效的,但是对于geckofx45和60,我有一个例外。(补充说明: Value不能为空。在gecko45中)或(附加信息:无法编译脚本。在壁虎60中)。请帮我处理这些异常。这些例外与函数有关: Gecko.Utils.SaveImageElement.ConvertGeckoImageElementToPng(geckoWeb,图像,(浮点数)0,(浮点数)0,200,70);
private void LoadCapcha()
{
foreach (var element in geckoWeb.Document.GetElementsByTagName("img"))
{
if (element.GetAttribute("id") == "CaptchaImage")
{
Gecko.DOM.GeckoImageElement image = (Gecko.DOM.GeckoImageElement)element;
byte[] byteImage = Gecko.Utils.SaveImageElement.ConvertGeckoImageElementToPng(geckoWeb, image, (float)0, (float)0, 200, 70);
File.WriteAllBytes("test.png", byteImage);
pictureCapchaBox.Image = Image.FromStream(new MemoryStream(byteImage));
}
}
}我希望图像元素显示在pictureCapchaBox中。
发布于 2019-09-11 02:06:22
它看起来像是GeckoFX-45中有一个bug,阻止你访问capturing an image element inside an iframe。
建议的解决方法是改用ImageCreator类:
Gecko.ImageCreator ic = new Gecko.ImageCreator(GeckoWebBrowser1);
ic.CanvasGetPngImage(img.OffsetLeft, img.OffsetTop, img.Width, img.Height);https://stackoverflow.com/questions/56580670
复制相似问题