我有一个宽度为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;
答案 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尺寸。