zoukankan      html  css  js  c++  java
  • Asp.Net中图片大小的缩放

    在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;
            }
  • 相关阅读:
    窗体控件随窗体大小改变(包括字体大小)
    Silverlight数据加载时,等待图标显示与隐藏(Loading)
    鼠标经过时,地图上的每个城市变颜色并且有提示框
    开始博客生活
    光纤
    静态路由配置(Static Routing)
    对称加密与非对称加密
    RIP Debug 过程
    WORD 固定表头自动生成/在Word表格接续页加上重复表格标题
    RIP路由
  • 原文地址:https://www.cnblogs.com/faib/p/754191.html
Copyright © 2011-2022 走看看