网页上常有图片过大撑开网页的情况,显示当然就不美观了,就想着用什么办法来取得网页中的所以图片并把他适当的调慗调整!
静态的页面好办啊,用JS和CSS就可以了!今天试着用net来实现,结果发现还不太好弄,不过经过努力,还是成功了!
网页上常有图片过大撑开网页的情况,显示当然就不美观了,就想着用什么办法来取得网页中的所以图片并把他适当的调慗调整!
静态的页面好办啊,用JS和CSS就可以了!今天试着用net来实现,结果发现还不太好弄,不过经过努力,还是成功了!
Code
public class PicTool
{
public static void FindImage(ControlCollection ctrllist, int MaxWidth, int MaxHeight)
{
foreach (Control ctrl in ctrllist)
{
if (ctrl.HasControls())
{
FindImage(ctrl.Controls, MaxWidth, MaxHeight);
}
else if (ctrl is Image)
{
Image img = (Image)ctrl;
string strPath = img.ImageUrl;
string pPath = System.Web.HttpContext.Current.Server.MapPath(strPath);
FileInfo file = new FileInfo(pPath);
if (file.Exists)
{
System.Drawing.Image image = System.Drawing.Image.FromFile(pPath);
int width = image.Width;
int height = image.Height;
if (width > MaxWidth || height > MaxHeight)
{
UpdateIamgesSize(img, MaxWidth, MaxHeight, width, height);
}
}
}
}
}
public static void UpdateIamgesSize(Image image, int maxWidth, int maxHeight, int width, int heigth)
{
double widthHeight = (double)width / heigth;
double heightWidth = (double)heigth / width;
if (width > maxWidth)
{
image.Width = maxWidth;
image.Height = Unit.Parse((maxHeight * heightWidth).ToString());
}
else if (heigth > maxHeight)
{
image.Height = maxHeight;
image.Width = Unit.Parse((maxWidth * widthHeight).ToString());
}
}
}
用的时候调用一下就oK了,像这样!
PicTool.FindImage(this.Page.Controls, 100, 80);
//这里的100和80就是你想要更改后的图片大小!
当然,这种做法也有局限性!但里面避免了UNit类型的出现!处理图片但遇到Unit类型的朋友,不防从这里找找灵感!!