首页 新闻 会员 周边

对于上传图片的处理

0
悬赏园豆:20 [已解决问题] 解决于 2008-10-20 12:00

正在做一个类似于拍拍的项目,遇到这样一个问题:

用户上传 商品图片的时候 图片的高宽比例不确定,显示到网页上的图片宽*高 是固定的比如:150*120,这样 有的图片就会变形本来是个“高图”,显示出来就成了矮图。

我看了一下拍拍的,它的那个图片好像是有一个固定寛高的白色背景,然后把上传的图片放到背景上,然后生成一个图片,这样上传的图片就不会被拉扯,只是生成的图片可能会有个白边。

那位大侠做过类似的东西,能否给些提示 ,最好能有代码。本人新手中的新手,不慎感激。

就像这两个图片

问题补充: 分不多了,请见谅!
谢T的主页 谢T | 初学一级 | 园豆:17
提问于:2008-10-07 09:32
< >
分享
最佳答案
0

<script>

function zoom(it,hlen,wlen,divheight){
        setTimeout(function(){
        myw = 1;
        if(it.height>=hlen && it.width>=wlen){
            if((hlen/it.height)<(wlen/it.width)){
                myw = hlen/it.height;
                it.style.height =it.height*hlen/it.height+"px";
                it.style.width = it.width*hlen/it.height+"px";
            }
            else{
                myw=wlen/it.width;
                it.style.height =it.height*wlen/it.width+"px";
                it.style.width = it.width*wlen/it.width+"px";
            }
        }
        if(it.height>=hlen && it.width<wlen){
            myw=hlen/it.height;
            it.style.height =it.height*hlen/it.height+"px";
            it.style.width = it.width*hlen/it.height+"px";
        }
        if(it.height<hlen && it.width>=wlen){
            myw=wlen/it.width; 
            it.style.height =it.height*wlen/it.width+"px";
            it.style.width = it.width*wlen/it.width+"px";  
        }
        if(it.height<hlen && it.width<wlen){
            myw=1;
            it.style.height =it.height+"px";
            it.style.width = it.width+"px";  
        }
        it.style.marginTop=parseInt((divheight-it.height)/2,10)+"px";
        },100);
    }
</script>

调用

<img src="..." onload="zoom(this,高,宽,外围边框高度)"/>

poplau | 初学一级 |园豆:59 | 2008-10-08 10:34
其他回答(3)
0

先计算长宽比,然后锁定长宽比进行缩放,将长或宽相对较大的那一个缩放到你需要的程度,然后将画布设置为你需要的宽度,背景填充白色即可

或者把缩放过的图片写到另一张白色的图片上面去,都可以

丁学 | 园豆:18730 (专家六级) | 2008-10-07 09:58
0

表格中嵌入图片时,就有边框,笔者在做cnblogs首页时就碰到了这个问题,最后的语句是:

<table rules= all border="1" bordercolor="#D6D6D6"><tr><td>
<img src="http://images.cnblogs.com/cnblogs_com/hulihui/MyPhoto2.gif">
</td></tr></table>

注意,rules=all。如果省略,则有黑色左边和上边框,不美观。上图中看不出是否是用表格做的边框,可以具体测试比较。另,笔者首页上也没有用到背景图片,也没有设定图片具体的尺寸大小。

hulihui | 园豆:210 (菜鸟二级) | 2008-10-07 19:21
0

刚好做过类似的问题?我用js控制图片的大小,先判断图片的大小,然后把容器的宽度付给图片,这样就不会变形了

孤星赏月 | 园豆:125 (初学一级) | 2008-10-07 22:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册