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;
            }
  • 相关阅读:
    java常见异常总结
    敏捷开发的七种主流方法
    转:一位10年Java工作经验的架构师聊Java和工作经验
    Map遍历
    Mybatis中的模糊查询
    Mybatis中动态SQL多条件查询
    J2EE,LAMP和ASP.NET三者比较
    关于加密
    Md5Hash的测试
    CentOS7 修改默认时区为 北京时间
  • 原文地址:https://www.cnblogs.com/faib/p/754191.html
Copyright © 2011-2022 走看看