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;
            }
  • 相关阅读:
    IIC时序和24C02读写字节时序
    Labview-vi的可重入性
    Labview笔记-创建自定义控件
    非院校科研机构如何查阅下载文献?
    【转】经典的图像去噪算法NLM和BM3D算法
    【转载】计算机科学最重要的32个算法
    图像存储方式
    二维物体形状识别方法比较
    论static关键词
    论引用
  • 原文地址:https://www.cnblogs.com/faib/p/754191.html
Copyright © 2011-2022 走看看