Asp.net MVC4中的图像溢出

时间:2013-06-04 10:12:39

标签: asp.net-mvc-4

如果这个问题太愚蠢或以前被问到,请原谅我。我需要在我的网络应用程序中显示一个图像,图像以db为单位存储在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"  />

2 个答案:

答案 0 :(得分: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");
    }
}

答案 1 :(得分:0)

尝试下面提到的图像标签,高度为&amp;使用样式而不是单独声明的宽度,将在所有浏览器中提供内容剪辑。

<img style="width:220px;height:115px;" alt="" src="@Url.Action("ByteToImage", "User")"/>