JS等比例缩放图片

function DrawImage(ImgD, iwidth, iheight) {
            
var image = new Image();
            image.src 
= ImgD.src;
            
if (image.width > 0 && image.height > 0) {
                flag 
= true;
                
if (image.width / image.height >= iwidth / iheight) {
                    
if (image.width > iwidth) {
                        ImgD.width 
= iwidth;
                        ImgD.height 
= image.height * iwidth / image.width;
                    } 
else {
                        ImgD.width 
= image.width;
                        ImgD.height 
= image.height;
                    }
                    ImgD.alt 
= image.width + "×" + image.height;
                }
                
else {
                    
if (image.height > iheight) {
                        ImgD.height 
= iheight;
                        ImgD.width 
= image.width * iheight / image.height;
                    } 
else {
                        ImgD.width 
= image.width;
                        ImgD.height 
= image.height;
                    }
                    ImgD.alt 
= image.width + "×" + image.height;
                }
            }
        }

 优化以后

 

function DrawImage(ImgD, iwidth, iheight) {
            var image = new Image();
            image.src = ImgD.src;
            if (image.width > 0 && image.height > 0) 
            {             
                if (image.width / iwidth  > image.height / iheight) {
                    if (image.width > iwidth) 
                    {
                        ImgD.width = iwidth;
                        ImgD.height = image.height * iwidth / image.width;
                    } else 
                    {
                        ImgD.width =  iwidth;
                        ImgD.height = image.height * image.width / iwidth;
                    }                    
                }
                else if(image.width / iwidth  < image.height / iheight)
                {
                    if (image.height > iheight) 
                    {
                        ImgD.height = iheight;
                        ImgD.width = image.width * iheight / image.height;
                    } else 
                    {
                        ImgD.height= image.width;
                        ImgD.width = image.width * image.height / iheight
                    }                   
                }else
                {
                    ImgD.width = iwidth;
                    ImgD.height = iheight;
                }
            }
        }

 

 

posted @ 2011-05-23 22:31  再快一点  阅读(372)  评论(0编辑  收藏  举报