.net控制图片的显示尺寸/C#控制图片的显示尺寸/.net取得图片尺寸/.net更改图片尺寸/Unit转换...

网页上常有图片过大撑开网页的情况,显示当然就不美观了,就想着用什么办法来取得网页中的所以图片并把他适当的调慗调整!

静态的页面好办啊,用JS和CSS就可以了!今天试着用net来实现,结果发现还不太好弄,不过经过努力,还是成功了!

 

ContractedBlock.gif ExpandedBlockStart.gif Code
public class PicTool
ExpandedBlockStart.gifContractedBlock.gif    
{
        
public static void FindImage(ControlCollection ctrllist, int MaxWidth, int MaxHeight)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
foreach (Control ctrl in ctrllist)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                
if (ctrl.HasControls())
ExpandedSubBlockStart.gifContractedSubBlock.gif                
{
                    FindImage(ctrl.Controls, MaxWidth, MaxHeight);
                }


                
else if (ctrl is Image)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
{
                    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)
ExpandedSubBlockStart.gifContractedSubBlock.gif                    
{
                        System.Drawing.Image image 
= System.Drawing.Image.FromFile(pPath);
                        
int width = image.Width;
                        
int height = image.Height;


                        
if (width > MaxWidth || height > MaxHeight)
ExpandedSubBlockStart.gifContractedSubBlock.gif                        
{
                            UpdateIamgesSize(img, MaxWidth, MaxHeight, width, height);
                        }

                    }



                }

            }

        }

        
public static void UpdateIamgesSize(Image image, int maxWidth, int maxHeight, int width, int heigth)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{

            
double widthHeight = (double)width / heigth;
            
double heightWidth = (double)heigth / width;

            
if (width > maxWidth)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                image.Width 
= maxWidth;
                image.Height 
= Unit.Parse((maxHeight * heightWidth).ToString());

            }

            
else if (heigth > maxHeight)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                image.Height 
= maxHeight;
                image.Width 
= Unit.Parse((maxWidth * widthHeight).ToString());
            }



        }

    }

 

用的时候调用一下就oK了,像这样!

PicTool.FindImage(this.Page.Controls, 100, 80);

//这里的100和80就是你想要更改后的图片大小!

当然,这种做法也有局限性!但里面避免了UNit类型的出现!处理图片但遇到Unit类型的朋友,不防从这里找找灵感!!

 

 

转载于:https://www.cnblogs.com/liuwm5000/archive/2008/12/03/1346769.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值