您好,我们在wpf页面上使用InkCanvas控件。我们正在数据库中保存Base64String字符串。见代码从墨水池底座64中获取错误字符串
private void submitButtonsCommand_Event(object sender)
{
byte[] sigByte;
InkCanvas icSignature = sender as InkCanvas;
using (var memoryStream = new MemoryStream())
{
icSignature.Strokes.Save(memoryStream);
sigByte = memoryStream.ToArray();
}
ServiceCallReportSignatureModel.SigCustomerSignature = Convert.ToBase64String(sigByte);
UpdateRecord();
}
当我们从数据库中检索数据并转换成FromBase64String后,当我们创建图像,然后我们得到的错误。
public Image LoadImage(base64string)
{
//data:image/gif;base64,
//this image is a single pixel (black)
byte[] bytes = Convert.FromBase64String(base64string);
Image image;
using (MemoryStream ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}
return image;
}
我不知道为什么会发生这种情况。请帮我找出错误。 我们的base64字符串是: “AIwBAwxIEEWfARsCAAb/RjURAACAPx8JEQAAAAAAAPA/Cmwsh/EgR4kP + ETW/ojDWG7NZ8OZQxBN5otEzmU1mk04I7DnATcLHomzzUbxw/h3Dtp16yhlTQ2UsoTQh + uE64XgjsN6Js2UZpAZmFpmaZTKzzKZ4ctFmw3Mlmm0Bw9h/DtpTPKu79CYgm + VJqA =”
其实我们从墨迹画布控制采取的签名,我们要显示在当我们需要的时候。所以我们希望从基础数据64中创建图像,但是我们正在收到错误信息。
你会得到什么错误/异常? –
我们正在收到数据不匹配的错误。 –
显然这是行不通的。当您以[* Ink Serialized Format *](https://msdn.microsoft.com/en-us/library/ms590544(v = vs.110).aspx)存储StrokeCollection时,您正尝试读取位图。这是两件完全不同的事情。 – Clemens