您的位置:首页 > 编程语言 > ASP

Asp.Net中图片大小的缩放

2015-11-13 10:59 621 查看
在Asp.Net中显示图片的时候,如果给定一个固定大小的容器,如<Table>,图片的大小如何根据容器的大小进行比例缩放呢。以下是一个比较简单的函数,根据图片的宽高比例进行计算,缩放后保持比例不变。

//ViewSize 外框大小


//ImageSize 图片的实际大小


public Size Resize(Size ViewSize, Size ImageSize)

{

Size MySize = new Size();

if(ViewSize.Width > ViewSize.Height)//宽大于高

{

if(ImageSize.Width > ImageSize.Height)//按比例

{

float scale = ImageSize.Height / (float)ImageSize.Width;

if(ViewSize.Height / (float)ViewSize.Width < scale)

{

MySize.Height = ViewSize.Height;

MySize.Width = (int)(ViewSize.Height / scale);

}

else

{

MySize.Width = ViewSize.Width;

MySize.Height = (int)(ViewSize.Width * scale);

}

}

else if(ImageSize.Height > ImageSize.Width)//非比例

{

float scale = ImageSize.Width / (float)ImageSize.Height;

MySize.Height = ViewSize.Height;

MySize.Width = (int)(ViewSize.Height * scale);

}

else

{

MySize.Height = ViewSize.Height;

MySize.Width = ViewSize.Height;

}

}

else if(ViewSize.Width < ViewSize.Height)//高大于宽

{

if(ImageSize.Width < ImageSize.Height)//按比例

{

float scale = ImageSize.Width / (float)ImageSize.Height;

if(ViewSize.Width / (float)ViewSize.Height < scale)

{

MySize.Width = ViewSize.Width;

MySize.Height = (int)(ViewSize.Width / scale);

}

else

{

MySize.Height = ViewSize.Height;

MySize.Width = (int)(ViewSize.Height * scale);

}

}

else if(ImageSize.Height < ImageSize.Width)//非比例

{

float scale = ImageSize.Height / (float)ImageSize.Width;

MySize.Width = ViewSize.Width;

MySize.Height = (int)(ViewSize.Width * scale);

}

else

{

MySize.Height = ViewSize.Width;

MySize.Width = ViewSize.Width;

}

}

else

{

if(ImageSize.Width > ImageSize.Height)//宽大于高

{

float scale = ImageSize.Height / (float)ImageSize.Width;

MySize.Width = ViewSize.Width;

MySize.Height = (int)(ViewSize.Width * scale);

}

else if(ImageSize.Width < ImageSize.Height)//高大于宽

{

float scale = ImageSize.Width / (float)ImageSize.Height;

MySize.Height = ViewSize.Height;

MySize.Width = (int)(ViewSize.Height * scale);

}

else

{

MySize.Height = ViewSize.Height;

MySize.Width = ViewSize.Height;

}

}

return MySize;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: