如何在不拉伸图像的情况下增加图像的高度和宽度

时间:2014-07-05 05:45:31

标签: c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 c#-4.0

我有一个宽度为1000px和290像素高度的div部分。如果我上传宽度为500px且高度为400px的图像,并从代码中增加高度和宽度,这里是我的代码示例,它可以拉伸图像

  var thumbnailImg = new Bitmap(newWidth, newHeight);
        var thumbGraph = Graphics.FromImage(thumbnailImg);
        thumbGraph.CompositingQuality = CompositingQuality.HighQuality;
        thumbGraph.SmoothingMode = SmoothingMode.HighQuality;
        thumbGraph.InterpolationMode = InterpolationMode.HighQualityBicubic;

        //Bitmap bmpImage = new Bitmap(img);

        var imageRectangle = new Rectangle(0, 0, newWidth, newHeight);
        //Bitmap bmpcrop = bmpImage.Clone(imageRectangle, bmpImage.PixelFormat);
        //return (Image)bmpcrop;
        thumbGraph.DrawImage(img, imageRectangle);
        MemoryStream stram = new MemoryStream();
        thumbnailImg.Save(stram, img.RawFormat);
        byte[] imagebytes = stram.ToArray();
        return imagebytes;

1 个答案:

答案 0 :(得分:0)

要调整图像大小以确保其比例相同,初始高度x宽度(h x w)的比率必须与最终h x w相同。

在您的情况下,您的初始比率为500:400,而最终比例为1000:290。

从500:400,你可以使它成为1000:800,使其大2倍。这里的初始比率与最终比率相同。

但是,这不符合指定div的宽度。

另一种方法是将宽度减小到290,这意味着要按比例减小高度,你必须将高度减少一倍(1000 *(290/400)),这将小于1000。

因此,如果您想要完美契合,唯一的方法是更改​​初始图片尺寸或div尺寸。