当用户上传任何图像时,我们可以将其缩放到 1600 X 700 吗?
我正在使用下面的代码来缩放 1996 X 1442 的图像,但它永远不会缩放到 1600 X 700。
有没有更好的方法或其他方法来实现它?
private static Image resizeImage(Image imgToResize, Size size)
{
int sourceWidth = imgToResize.Width;
int sourceHeight = imgToResize.Height;
float nPercent = 0;
float nPercentW = 0;
float nPercentH = 0;
nPercentW = ((float)size.Width / (float)sourceWidth);
nPercentH = ((float)size.Height / (float)sourceHeight);
if (nPercentH < nPercentW)
nPercent = nPercentH;
else
nPercent = nPercentW;
int destWidth = (int)(sourceWidth * nPercent);
int destHeight = (int)(sourceHeight * nPercent);
Bitmap b = new Bitmap(destWidth, destHeight);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
g.Dispose();
return (Image)b;
}
如果您查看下面的评论,他们说如果不丢失宽高比就无法存档,但如果我看到 HERO 图像,airbnb
他们有 1600 X 700 的图像......
所以我认为这是可能的,但我不知道如何实现它......