C# 当我尝试将base64string转换为c语言中的图像时#
当我尝试将Base64字符串转换为C#中的图像时,得到的输出是“System.Drawing.Bitmap”,而不是实际图像:C# 当我尝试将base64string转换为c语言中的图像时#,c#,asp.net-web-api,C#,Asp.net Web Api,当我尝试将Base64字符串转换为C#中的图像时,得到的输出是“System.Drawing.Bitmap”,而不是实际图像: public Image DownFile(string base64String)//string file { //Convert Base64 String to byte[] byte[] imageBytes = Convert.FromBase64String(base64String); MemoryStream ms = new
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使用语句,如下所示:
byte[] bytes = Convert.FromBase64String(base64String);
Image image;
using (MemoryStream ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}
return 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();
}
}
这是一个非常简单的示例,用于演示如何执行此操作。花些时间回顾和理解所做的工作,以便将其实施到您的特定场景中。应该有帮助请说明您是如何准备的base64String@Steve仍然是原来的输出没有变化。我无法返回图像,但给出了使用(image img=image.FromStream)下载图像的路径(new MemoryStream(imageBytes)){img.Save(“带有文件名和扩展名的路径”,ImageFormat.Jpeg);返回img;}当我使用浏览器运行它时,它显示错误错误:找不到资源将URL更改为api/controller,但显示一些异常