2012-07-18 12 views
7

Ho un oggetto di tipo System.Drawing.Image e vorrei visualizzare questa immagine in una vista. Quale sarebbe il modo migliore per farlo?Il modo migliore per eseguire il rendering di System.Drawing.Image in ASP.NET MVC 3 Visualizza

Ho trovato alcuni metodi Html Helper personalizzati che potrebbero adattarsi alla situazione. Ho anche trovato un esempio che utilizza un nuovo metodo di azione che restituisce un FileContentResult per estrarre qualcosa di simile. Mi piacerebbe sapere quale tecnica è la migliore e più facile da implementare.

EDIT

Per essere più precisi, ho l'immagine in una variabile System.Drawing.Image nel controller che voglio visualizzare nella vista.

risposta

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

Ora si può chiamare in una vista come questa

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

ho l'immagine in una variabile System.Drawing.Image nel controller che voglio visualizzare nella vista. Vorrei evitare di dover salvare su un file immagine reale per visualizzare l'immagine, se possibile. – d456

+0

puoi semplicemente le prime 2 righe quindi. La variabile chiamata src è di tipo Drawing.Image. Quindi usa il tuo nome variabile (che ha l'Immagine) invece di srcImage nella mia risposta – Shyju

+2

Grazie. Proprio quello che stavo cercando allora. – d456