8

Qrコードの画像を.NETビットマップオブジェクトに生成したコードがあります。これを生成するコードは、次のように、ページでボタンが押されたときに呼び出されます。

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

これは、ページのMVCコントローラーのメソッドです。

ボタンを押すと画像が生成され、ページに戻ります。

したがって、ここから、このビットマップイメージをWebページ(.cshtmlファイル)に出力するためにどのような手順を実行する必要がありますか。ASP.NETMVCを使用していることを念頭に置いてください。

私がオンラインで見たものの1つは、人々が画像を「Response.OutputStream」に保存していたことです。それがASP.NETMVCに関連しているかどうかはよくわかりません。

ありがとう

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 に答える