我有一個應用程序,用戶可以通過文件輸入選擇圖像。選擇圖像後,我通過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顯示從查看頁面中的控制器返回的數據?