0

如果这个问题太愚蠢或以前问过,请原谅我。我需要在我的网络应用程序中显示一个图像,图像作为字节存储在 db 中,我从字节生成图像但问题是当我在我的网络应用程序中显示它时,它溢出意味着图像帧大小是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

一旦您拥有 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 回答
0

尝试下面提到的带有样式的高度和宽度的图像标签,而不是独立声明,这将在所有浏览器中提供内容剪辑。

<img style="width:220px;height:115px;" alt="" src="@Url.Action("ByteToImage", "User")"/>
于 2013-06-04T10:42:58.830 回答