0

我正在尝试将 .jpg 或 .png 文件转换为可写位图。我在另一个源中获取图像并转换为 base64 编码。去掉包装后,我有一个宽度、高度和base64数据。然后我使用:

var base64 = dataurl.Substring(dataurl.IndexOf("base64,") + 7);
binData = Convert.FromBase64String(base64);

这给了我图像的二进制数据。问题真的在于我正在为 windows phone 8 编写这个,所以我可以使用的库和方法受到限制。显而易见的选择是:

using (var stream = new MemoryStream(binData, 0, binDta.Length, true, true))
{
    var wbp = new WriteableBitmap(1,1).LoadJpeg(stream);
}

但我从 WriteableBitmap 库中获得了 System.ArgumentException。任何适用于 Windows Phone 8 的想法?

4

1 回答 1

1

您应该确保 base64 解码数据确实是 JPG 和 PNG 等有效格式。然后我建议您尝试WriteableBitmapEx FromStream 方法:

var wbp  = new WriteableBitmap(1, 1).FromStream(stream);
于 2013-01-25T09:24:30.320 回答