Javascript 将图像从HTML画布发送到C#服务器

Javascript 将图像从HTML画布发送到C#服务器,javascript,c#,html,canvas,websocket,Javascript,C#,Html,Canvas,Websocket,目前,我在接收图像的c#服务器上有以下代码: BitmapSource bmp = Method.BitmapFromBase64(data.Substring(22)); public static BitmapSource BitmapFromBase64(string b64string) { var bytes = Convert.FromBase64String(b64string); using (var stream = new MemoryStream(byt

目前,我在接收图像的c#服务器上有以下代码:

BitmapSource bmp = Method.BitmapFromBase64(data.Substring(22));

public static BitmapSource BitmapFromBase64(string b64string)
{
    var bytes = Convert.FromBase64String(b64string);

    using (var stream = new MemoryStream(bytes))
    {
        return BitmapFrame.Create(stream,
            BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
    }
}
我的服务器接收使用JavaScript中的
Canvas.toDataURL()
方法创建的图像。现在,不管出于什么原因,这段代码都会抛出一个关于Base64字符无效的异常

现在我真正的问题是:我如何才能让这段代码工作,或者什么是一个好的替代方案

编辑


我刚刚把这个问题缩小了很多。这与服务器接收到与原始Base64不同的字符串有关。它包含一堆垃圾字符

数据URI包括基64。您需要对其进行解析,以删除不使用该方法的部分@charliefl是的,这就是我使用
子字符串(22)
的原因,但是感谢您的回复。您在浏览器中验证过它是子字符串(22)了吗?在我看来,在浏览器中解析将更有意义
Substring(0,25)
返回“data:image/png;base64,iVB”,因此
Substring(22)
works只是尝试在浏览器中解析它,并得到了相同的结果数据URI包括base64。您需要对其进行解析,以删除不使用该方法的部分@charliefl是的,这就是我使用
子字符串(22)
的原因,但是感谢您的回复。您在浏览器中验证过它是子字符串(22)了吗?在我看来,在浏览器中解析将更有意义
Substring(0,25)
返回“data:image/png;base64,iVB”,因此
Substring(22)
works只是尝试在浏览器中解析它,无论如何都得到了相同的结果