使用asp.net c将base64字符串转换为图像#

时间:2013-11-12 11:10:47

标签: c# image wcf base64

我正在使用此功能将base64转换为图像。

public Image Base64ToImage(string base64String)
{
    // Convert Base64 String to byte[]
    byte[] imageBytes = Convert.FromBase64String(base64String);
    using (var ms = new MemoryStream(imageBytes, 0,imageBytes.Length))
    {
        // Convert byte[] to Image
        ms.Write(imageBytes, 0, imageBytes.Length);
        //Image image = Image.FromStream(ms, true);
        Image image = Image.FromStream(ms,true,true);
        return image;
    }
}

但它不起作用。请帮帮我。

1 个答案:

答案 0 :(得分:0)

我不需要在这里写ms调用。

 using (var ms = new MemoryStream(imageBytes, 0,imageBytes.Length))
        {
            // Convert byte[] to Image
            ms.Write(imageBytes, 0, imageBytes.Length);

您正在有效地从byteArray构造流,因此ms.Write调用将在流中追加数据两次。这可能会导致Image对象出现问题。要么使用流的默认构造函数,要么再次删除Write和test。

编辑: Zey删除了他的答案,但我认为他在那里有一个很好的观点。您也可以考虑删除使用块。我的记忆可能会让我失望,但我认为Image对象需要让源流保持打开状态。不再需要时处理Image对象。