网页里的一个<DIV></DIV>的长为L,宽为H,里头要放一个图片长为l,宽为h;
想实现一个图片显示效果,如下说明:
(1)如果图片的长和宽都小于<DIV>的长和宽,那么图片自己原始大小显示在DIV中央;
(2)如果图片的长大于DIV的长,但是宽小于DIV的宽,那么图片显示时候长要等于DIV的长,但是宽要跟长整体比例缩小;
(3)如果图片的宽大于DIV的宽,但是长小于DIV的长,那么图片显示时候宽要等于DIV的宽,但是长要跟宽整体比例缩小;
(4)如果图片的长和宽都大于DIV的长和宽,那么把图片按自己长宽比例缩小到可以适合DIV的长宽大小显示;

解决方案 »

  1.   

    int width=l,height=h;
    if(l>L&&h>H)||(l>L))
    {
      width=L;
      height=h*L/l;
    }
    else if(h>H)
    {
     height =H
     width=l*H/h;
    }
      

  2.   

    其实这样问题,不如让图片直接过滤成缩略图,如果是后台绑上去,拿之前就裁剪下,可以减小页面;
    如果是直接在前台写位置,图片的宽和高你并不知道,只能通过CSS样式来调
      

  3.   

    改一下可以用。 假定你的宽和高分别是400和540
    img.onload=function(){
                if(this.height>540){
                    this.width=this.width*540/this.height;
                    this.height=540; 
                }
                if(this.width>400){
                    this.height=this.height*400/this.width;
                    this.width=400;
                }
      

  4.   


    需求就是图片自适应DIV大小吧。?下面是我代码库中的一段,相信你能看明白。要是不会用下面的。你就在Google里搜一下‘图片按比例缩放’还可以看这篇blog http://hi.baidu.com/feige05/blog/item/d4a90b25811cfd6434a80fed.html这是基于jquery的。参数:
    1.img 你要调整的图片
    2.iw   容器的宽
    3.ih  容器的高autosize: function(img, iw, ih){
                var mw = $(img).width();
                var mh = $(img).height();
                if (mw / mh > iw / ih) {
                    $(img).width(iw);
                    $(img).height(mh * (iw / mw));
                }
                else {
                    $(img).height(ih)
                    $(img).width(mw * (ih / mh));
                }            
            },