图片等比缩放到指定区域

经常会遇到将图片等比缩放到某个特定大小的区域内,比如,预览图片、图片全屏显示等等,自己写了一个方法直接返回适应后的图片大小。

function getimagesize(imgSrc, imgW, imgH) {

    // 定义返回的大小
    var imgNewSize = {};
    //获取图片
    // 定义新的宽高
    var neww = 0,newh = 0,mt = 0,ml = 0;
    // 获取原本宽高
    var imgLayerW = imgSrc.width;
    var imgLayerH = imgSrc.height;


    var rateW = imgW / imgLayerW,rateH = imgH / imgLayerH;
    if(rateW < rateH){
        neww = imgLayerW * rateW;
        newh = imgLayerH * rateW
        mt = (imgH - newh) / 2;
    } else{
        neww = imgLayerW * rateH;
        newh = imgLayerH * rateH;
        ml = (imgW - neww) / 2;
    }

    imgNewSize["w"] = neww;
    imgNewSize["h"] = newh;
    imgNewSize["mt"] = mt;
    imgNewSize["ml"] = ml;
    return imgNewSize;
}

  

第一个参数imgSrc,代表要设置等比缩放的图片对象;第二个参数imgW,代表特定区域的宽度;第三个参数imgH,代表特定区域的高度。返回值是一个数组对象,w:新的宽度;h:新的高度;mt:等比缩放后的margin-top值,为了垂直方向
居中;ml:等比缩放后margin-left值,为了水平方向居中,然后再将这四个样式值应用到图片上就可以了。
这样无论你的图片和指定区域是怎样比例的矩形都能够等比展示出来,不压缩,不拉伸。

转载于:https://www.cnblogs.com/superior0325/p/8194098.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值