我正在开发基本的Web服务。用户发送以64为基数的字符串,并且发球必须返回图片。
我上了这个课:
public class myImage
{
public Byte[] Matrix { get; set; }
public int Width { get; set; }
public int Height { get; set; }
}
矩阵是一个字节数组,其中包含灰度像素值。
我看到了很多有关将字节数组转换为Image的主题(例如this one或this one),但是它对我没有用。我添加了对System.Drawing的引用,但出现了错误:
在名称空间“ System.Drawing”中找不到类型名称“ Image”。此类型已转发给程序集'System.Drawing.Common,版本= 0.0.0.0,区域性=中性,PublicKeyToken = cc7b13ffcd2ddd51',考虑添加对该程序集的引用。
我看到我必须返回一个FileResult
,但是如果我不能使用System.Drawing.Image
,我将无法创建结果:
[HttpPost]
[Route("CreateImage")]
public FileResult PostSealCryptItem([FromBody]String base64)
{
MyImage myImg = createImg(base64);
FileResult result = ?;
return result;
}
如何从我的字节数组创建FileResult
?
答案 0 :(得分:2)
您可以执行以下操作。
public HttpResponseMessage PostSealCryptItem([FromBody]String base64)
{
MyImage myImg = createImg(base64);
Image img = convertMyImgToImage(myImg);
using(MemoryStream ms = new MemoryStream())
{
img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new ByteArrayContent(ms.ToArray());
result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
return result;
}
}