繁体   English   中英

当我尝试在C#中将base64string转换为Image时

[英]When i try to convert base64string to Image in c#

当我尝试将base64string转换为C#中的Image时,我得到的输出为“ System.Drawing.Bitmap”,而不是实际的Image:

点击查看图片

public Image DownFile(string base64String)//string file
{
    //Convert Base64 String to byte[]
    byte[] imageBytes = Convert.FromBase64String(base64String);
    MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
    //Convert byte[] to Image
    ms.Write(imageBytes, 0, imageBytes.Length);
    Image image = Image.FromStream(ms, true);
    image.Save("E:/Project Utilitie Connection/FileDownloadTask/Images", System.Drawing.Imaging.ImageFormat.Jpeg);

    return image;
}

尝试对MemoryStream使用using语句,如下所示:

    byte[] bytes = Convert.FromBase64String(base64String);

    Image image;
    using (MemoryStream ms = new MemoryStream(bytes))
    {
        image = Image.FromStream(ms);
    }

    return image;

该框架将Image对象转换为字符串,这就是为什么您看到System.Drawig.Bitmap

创建一个响应,为它提供转换后的base64字符串中的字节,然后设置响应的内容类型,以便客户端知道如何呈现内容。

public class ValuesController : ApiController {
    [HttpGet]
    public IHttpActionResult DownFile(string base64String) {
        if (!string.IsNullOrWhiteSpace(base64String)) {
            byte[] imageBytes = Convert.FromBase64String(base64String);
            var response = Request.CreateResponse(HttpStatusCode.OK);
            response.Content = new ByteArrayContent(imageBytes);
            response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpg");
            return ResponseMessage(response);
        }
        return BadRequest();
    }
}

这是一个非常简单的示例,演示了如何完成此操作。 花一些时间查看并了解已完成的操作,以便可以将其实施到您的特定方案中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM