我正在尝试将base64string转换为Bitmapimage。 下面的代码用于我的Windows Phone项目,它工作正常,但我在我的Windows应用商店项目中重用此代码并收到此错误。我不知道修复这个错误。
错误消息:
'Windows.UI.Xaml.Media.Imaging.BitmapSource.SetSource(Windows.Storage.Streams.IRandomAccessStream)'的最佳重载方法匹配有一些无效的参数
无法从'System.IO.MemoryStream'转换为'Windows.Storage.Streams.IRandomAccessStream'
DATADB.cs
class DATADB
{
public class NewsObject
{
BitmapImage thumb = null;
public BitmapImage Thumb {
get {
if (thumb==null)
{
Regex rgx = new Regex("^[^,]*,");
thumb = Utilities.base64image(rgx.Replace(this.default_photo, ""));
}
return thumb;
}
}
public string date { get; set; }
public string id { get; set; }
public string info { get; set; }
}
}
Utilities.cs
class Utilities
{
public static BitmapImage base64image(string base64string)
{
if (base64string == "" || base64string == null) return null;
byte[] fileBytes = Convert.FromBase64String(base64string);
using (MemoryStream ms = new MemoryStream(fileBytes, 0, fileBytes.Length))
{
ms.Write(fileBytes, 0, fileBytes.Length);
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.SetSource(ms); //Getting error message here.
return bitmapImage;
}
}
}
答案 0 :(得分:0)
尝试使用InMemoryRandomAccessStream
代替MemoryStream
。
答案 1 :(得分:0)
尝试使用
bitmapImage.SetSource(new MemoryRandomAccessStream(ms));
而不是
bitmapImage.SetSource(ms);