在Windows Phone上将base64字符串转换为C#中的图像

zi3*_*guw 5 .net c# base64 windows-phone

我有一个base64字符串,我想将其转换为图像并将Image控件的Source设置为该结果.

通常我会这样做Image.FromStream,类似于:

Image img;
byte[] fileBytes = Convert.FromBase64String(imageString);
using(MemoryStream ms = new MemoryStream())
{
    ms.Write(fileBytes, 0, fileBytes.Length);
    img = Image.FromStream(ms);
}
Run Code Online (Sandbox Code Playgroud)

但是,该Image.FromStream方法在Windows Phone上不存在,并且随意搜索仅显示依赖于该方法的结果.

zi3*_*guw 11

你可以使用这样的方法:

    public static BitmapImage base64image(string base64string)
    {
        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);
            return bitmapImage;
        }
    }
Run Code Online (Sandbox Code Playgroud)

将图像添加到XAML,例如:

    <Image x:Name="myWonderfulImage" />
Run Code Online (Sandbox Code Playgroud)

然后,您可以设置源,如下所示:

myWonderfulImage.Source = base64image(yourBase64string);
Run Code Online (Sandbox Code Playgroud)