gpt4 book ai didi

javascript - getContext(2d) & drawImage > toDataURL > undefiend 问题

转载 作者:行者123 更新时间:2023-12-03 04:06:14 25 4
gpt4 key购买 nike

这是 C# 方法和 js 函数:

    public static string JsGetImgBase64String(Awesomium.Windows.Forms.WebControl wb, string getElementQuery, bool leaveOnlyBase64Data = true)
{
string data = wb.ExecuteJavascriptWithResult(@"
function getImgBase64String(img)
{
alert(img.attr('src'));
var cnv = document.createElement('CANVAS');
var ctx = cnv.getContext('2d');
ctx.drawImage(img, 0, 0);
return cnv.toDataURL();
}
" + String.Format("getImgBase64String({0});", getElementQuery));

if (data == "undefined")
return string.Empty;

if (leaveOnlyBase64Data && data.Contains(","))
{
data = data.Substring(data.IndexOf(",") + 1);
}

return data;
}

这是该图像:

@"$(""img[src$='/Appointment/ShowCaptchaImage']"")"

这是警报结果:/Appointment/ShowCaptchaImage

这是该函数的结果(无错误):该函数的返回值是 undefiend

现在问题是什么?
如何使用 jquery 或 javascript 解决 undefiend 问题?

<小时/>这是该方法的 C# 调用吗?

string imgBase64 = JsGetImgBase64String(webControl_1, @"$(""img[src$='/Appointment/ShowCaptchaImage']"")");
byte[] imgBytes = Convert.FromBase64String(imgBase64);

我在 byte[] imgBytes = 上出现错误!

最佳答案

img.attr('src')是一个 jquery 函数。既然这样有效,您就可以放心地假设您正在使用 jquery 对象。

ctx.drawImage()不接受 jquery 元素。

尝试使用ctx.drawImage(img[0], 0, 0);反而。使用[0]确保您获得实际的 DOM 元素而不是 JQuery 元素。

关于javascript - getContext(2d) & drawImage > toDataURL > undefiend 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44541014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com