我想解碼Base64圖像並將其放置到WPF圖像源中。但是,我正在使用的代碼有一個錯誤:Base64圖像到WPF圖像源錯誤沒有適合的成像組件
找不到適合完成此操作的成像組件。
我有雙重檢查的Base64編碼字符串我有,事實上,通過使用在線Base64編碼解碼器正確的Base64編碼,所以我知道它不是。
我的代碼:
byte[] binaryData = Convert.FromBase64String(desc.Icon_Path);
MemoryStream ms = new MemoryStream(binaryData, 0, binaryData.Length);
ms.Write(binaryData, 0, binaryData.Length);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);
icon.Source = ToWpfImage(image);
ms.Dispose();
public BitmapImage ToWpfImage(System.Drawing.Image img)
{
MemoryStream ms = new MemoryStream();
img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
BitmapImage ix = new BitmapImage();
ix.BeginInit();
ix.CacheOption = BitmapCacheOption.OnLoad;
ix.StreamSource = ms;
ix.EndInit();
return ix;
}
我應該怎麼做不正確的?
我不認爲你需要ms.Write行嗎?如果你這樣做,你需要在寫入之後設置ms.position = 0。這是因爲在寫入之後流的位置將會在最後。 –
您是否必須將Base64字符串轉換爲System.Drawing.Image? – Jamleck
作爲一個方面說明,我還發現用ImageFormat.Png替換ImageFormat.Bmp似乎解決了這個問題。 – Jamleck