我想调整大图像的大小,使其宽度为150像素,高度将固定。 然后将图像保存到我网站的文件夹中。
示例:(宽度,高度) 如果我调整300px * 300px的图像大小,我将获得150px * 150px的调整大小的图像。 如果我调整图像450px * 300px的大小,我将获得150px * 100px的调整大小的图像。
重点是宽度和高度之间的比率将始终保持150像素的宽度。
任何帮助?
答案 0 :(得分:2)
我发现了这个(不是我的)here
private Bitmap ScaleImage(Image oldImage)
{
double resizeFactor = 1;
if (oldImage.Width > 150 || oldImage.Height > 150)
{
double widthFactor = Convert.ToDouble(oldImage.Width) / 150;
double heightFactor = Convert.ToDouble(oldImage.Height) / 150;
resizeFactor = Math.Max(widthFactor, heightFactor);
}
int width = Convert.ToInt32(oldImage.Width / resizeFactor);
int height = Convert.ToInt32(oldImage.Height / resizeFactor);
Bitmap newImage = new Bitmap(width, height);
Graphics g = Graphics.FromImage(newImage);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.DrawImage(oldImage, 0, 0, newImage.Width, newImage.Height);
return newImage;
}
答案 1 :(得分:0)
您可以使用样式表来完成此操作。首先,定义以下样式:
.thumb {
max-width: 150px;
max-height: 150px;
width: expression(this.width > 150 ? "150px" : true);
height: expression(this.height > 150 ? "150px" : true);
}
然后,将此样式添加到图像标记中,如下所示:
<img class="thumb" ...>
这次不要包含高度和宽度元素。
该风格的前半部分适用于支持max-width和max-height属性的浏览器 - Chrome,Firefox,Opera和Safari。下半部分是IE的黑客攻击,但不是。
以下是一个示例:jsFiddle