我有一个应用程序,用户可以通过文件输入选择图像。选择图像后,我通过AJAX将图像上传到控制器并将其转换为灰度。转换方法返回一个System.Drawing.Image对象。我想要的是在AJAX成功函数上返回这个灰度图像对象,并将其显示在原始图像上传的同一页中的另一个div上。请注意,这个图像从来没有存储在任何地方,所以没有理由在我的控制器中使用文件返回操作。 我能做什么? 问候 路易斯。返回从MVC控制器和显示器的图像类型
1
A
回答
1
你会做什么是Base64编码,图像,并将其发送回客户端,然后在客户端做这样的事情在HTML:
<img src="data:image/png;base64,' + data + '" />
0
public class ImageResult : ActionResult
{
private Image Image { get; private set; }
private ImageFormat ImageFormat { get; private set; }
public ImageResult(Image image, ImageFormat imageFormat = ImageFormat.Png)
{
if (image == null) throw new ArgumentNullException("image");
this.Image = image;
this.ImageFormat = format;
}
public override void ExecuteResult(ControllerContext context)
{
var httpContext = context.HttpContext;
httpContext.Response.Clear();
httpContext.Response.ContentType = this.GetContentType();
this.Image.Save(httpContext.Response.OutputStream, this.ImageFormat);
}
private String GetContentType()
{ // borrowed: http://stackoverflow.com/a/15261265/298053
var imageCodecInfos = ImageCodecInfo.GetImageEncoders();
var codec = imageCodecInfos.FirstOrDefault(x => x.FormatID == this.ImageFormat.Guid);
return codec != null ? codec.MimeType : "application/octet-stream";
}
}
然后,你应该能够做到例如:
Image bwImage = /* service call */;
return new ImageResult(bwImage, ImageFormat.Png);
相关问题
- 1. API控制器MVC 4 - 返回类型
- 2. Spring MVC控制器返回类型
- 3. 返回从MVC控制器
- 4. 从控制器返回不同类型
- 5. 从控制器返回图像symfony2
- 6. 从MVC控制器返回数据返回相同的视图
- 7. 如何使用视图和控制器显示图像ASP.NET MVC
- 8. 从laravel控制器显示图像
- 9. Spring MVC:如何从控制器返回图像?
- 10. ASP.NET MVC:从控制器返回CDN图像
- 11. 从视图模型返回到C#MVC控制器表
- 12. 在从控制器返回的视图中显示数据
- 13. Spring MVC图像控制器,在JSP中显示图像字节
- 14. C#从MVC控制器返回纯Json
- 15. 从mvc控制器返回json
- 16. 从MVC 5控制器返回部分视图和JSON
- 17. 断言MVC控制器的返回类型操作
- 18. 单个Spring MVC控制器的多种返回类型
- 19. MVC 4 - 从控制器返回错误消息 - 在视图中显示
- 20. 从Spring控制器返回JSON数据类型/视图
- 21. MVC范例:从视图中揭示模型和控制器
- 22. MVC +控制器视图不显示
- 23. 从视图控制器显示新的视图控制器
- 24. 从模型返回值到控制器
- 25. CakePHP MVC控制器可以返回图像吗?
- 26. MVC 3显示在控制器中创建的动态图像
- 27. MVC - 为编辑配置文件从控制器返回模型
- 28. .NET MVC返回从控制器查看无模型
- 29. 从MVC控制器返回不同的视图
- 30. ASP.NET MVC显示从查看页面中的控制器返回的数据?