您好,我們在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