8

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

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

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

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

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

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

谢谢

4

1 回答 1

11

控制器动作需要返回一个 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" />
于 2012-12-09T23:38:29.990 回答