Best way to render System.Drawing.Image in ASP.NET MVC 3 View

d456 picture d456 · Jul 18, 2012 · Viewed 9.7k times · Source

I have an object of type System.Drawing.Image and would like to display this image in a view. What would be the best way to do this?

I have found some custom Html Helper methods that might fit the situation. Also found an example that uses a new action method that returns a FileContentResult in order to pull something like this off. I would like to know what technique is best and easiest to implement.

EDIT

To be more specific, I have the image in a System.Drawing.Image variable in the Controller that I want to display in the view.

Answer

Shyju picture Shyju · Jul 18, 2012
public ActionResult GetImg()
{
    string imageFile = System.Web.HttpContext.Current.
                                 Server.MapPath("~/Content/tempimg/unicorn.jpg");
    var srcImage = Image.FromFile(imageFile);
    using (var streak = new MemoryStream())
    {
      srcImage.Save(streak, ImageFormat.Png);
      return File(streak.ToArray(), "image/png");
    }     
}

Now you can call it in a view like this

<img src="@Url.Action("GetImg","YourControllerName")"  alt="alt text"/>