0

この質問がばかげているか、以前に尋ねられた場合は、ご容赦ください。Web アプリで画像を表示する必要があり、画像は db にバイトとして保存され、バイトから画像を生成しましたが、問題は、Web アプリで画像を表示しているときに、画像フレーム サイズが100x100 ですが、画像は実際の解像度になります。これを解決する方法私の現在のコードを以下に示します

コントローラ

[HttpPost]
        public ActionResult ByteToImage()
        {
            ImageDL getImage = new ImageDL();
            byte[] image = getImage.CreateImage();
            return File(image,"Image/jpeg");
        }

かみそり

<img alt="" src="@Url.Action("ByteToImage", "User")" height="100" width="100"  />
4

2 に答える 2

0

Image を byte[] 形式で取得したら、イメージを任意の高さ幅に再描画できます。

public FileContentResult GetImage(byte[] imgData, int WIDTH, int HEIGHT)
{
    MemoryStream ms = new MemoryStream(imgData);

    using (var srcImage = Image.FromStream(ms))
    using (var newImage = new Bitmap(WIDTH, HEIGHT))
    using (var graphics = Graphics.FromImage(newImage))
    using (var stream = new MemoryStream())
    {
        graphics.DrawImage(srcImage, new Rectangle(0, 0, WIDTH, HEIGHT));
        newImage.Save(stream, ImageFormat.Jpeg);//Set your desired image format
        return File(stream.ToArray(), "image/jpeg");
    }
}
于 2013-06-04T10:36:32.103 に答える