从Bitmap对象将图像渲染到ASP.NET MVC网页上

时间:2012-12-09 23:16:01

标签: .net asp.net-mvc asp.net-mvc-4

我的代码已经在.NET Bitmap对象中生成了Qr代码的图像。当在页面上按下按钮时,将调用生成此代码的代码,如下所示:

    public ActionResult GenerateQrCode()
    {
        Bitmap qrCodeImage = Generate();
        return RedirectToAction("QrCodeGenerator");
    }

这是页面的MVC控制器中的方法。

按下按钮时,会生成图像,然后我们将导航回页面。

因此,从这里开始,我需要采取哪些步骤将此位图图像输出到我的网页(.cshtml文件)。请记住我正在使用ASP.NET MVC。

我在网上看到的一件事是人们将图像保存到'Response.OutputStream'。我不太确定这是否与ASP.NET MVC相关。

由于

1 个答案:

答案 0 :(得分:5)

控制器操作需要返回FileStreamResult。你就是这样做的

public static byte[] ConvertToByteArray(this Image img)
{
    using (var stream = new MemoryStream())
    {
        img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
        return stream.ToArray();
    }
}

public ActionResult GenerateQrCode()
{
   Bitmap qrCodeImage = Generate();
   //write your own methode to convert your bit map to byte array, here is a link
   //http://stackoverflow.com/questions/7350679/convert-a-bitmap-into-a-byte-array-in-c
   byte[] byteArray = qrCodeImage.ConvertToByteArray();
   return File(byteArray, "image/jpeg");
} 

在您看来,您可以做这样的事情

<img src="@Url.Action("GenerateQrCode")" alt="qr code" />