2012-07-18 5 views
7

Tengo un objeto de tipo System.Drawing.Image y me gustaría mostrar esta imagen en una vista. Cuál sería la mejor forma de hacer esto?La mejor manera de representar System.Drawing.Image en ASP.NET MVC 3 Ver

He encontrado algunos métodos Html Helper personalizados que pueden adaptarse a la situación. También encontré un ejemplo que usa un nuevo método de acción que devuelve un FileContentResult para quitar algo como esto. Me gustaría saber qué técnica es mejor y más fácil de implementar.

EDITAR

Para ser más específico, tengo la imagen en una variable System.Drawing.Image en el controlador que quiero mostrar en la vista.

Respuesta

11
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"); 
    }  
} 

Ahora se puede llamar así, en una vista como esta

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

tengo la imagen en una variable System.Drawing.Image en el controlador que quiero mostrar en la vista. Me gustaría evitar tener que guardar en un archivo de imagen real para mostrar la imagen si es posible. – d456

+0

puede simplemente primero 2 líneas a continuación. La variable llamada src es de tipo Drawing.Image. Así que usa tu nombre de variable (que tiene la Imagen) en lugar de srcImage en mi respuesta – Shyju

+2

Gracias. Justo lo que estaba buscando entonces. – d456

Cuestiones relacionadas