Cuando sea necesario mostrar en vistas MVC imágenes generadas on the fly, basta con exponer un método en el controller que devuelva un FileResult con los bytes y el mime type de la imagen, y llamar al método en el attributo src del elemento img.
A modo de ejemplo, el siguiente método del controller que genera el FileResult:
public ActionResult GetImage()
{
System.Drawing.Image image = new System.Drawing.Bitmap(400, 200);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image);
g.DrawLine(System.Drawing.Pens.Blue, new System.Drawing.Point(0, 0), new System.Drawing.Point(400, 200));
g.DrawLine(System.Drawing.Pens.Red, new System.Drawing.Point(0, 200), new System.Drawing.Point(400, 0));
System.IO.MemoryStream stream = new System.IO.MemoryStream();
image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
return File(stream.ToArray(), "image/jpeg");
}
Y el siguiente elemento renderiza la imagen:
<img id="myImg" alt="" src="@Url.Content("~/Home/GetImage")" />