js实现自定义宽高等比例缩放图片

/**
 * @param imgObj 缩放图片源对象
 * @param maxWidth 允许缩放的最大宽度
 * @param maxHeight 允许缩放的最大高度
 * @usage 使用方式,在img标签中加入onload事件
 * http://www.baidu.com/test.jpg 是图片地址,拼接上?t=Math.random()是为了避免图片缓存问题
 * <img src="http://www.baidu.com/test.jpg?t=Math.random()"  onload="javascript:drawImage(this,300,150)">
 */
function drawImage(imgObj, maxWidth, maxHeight) {
    var image = new Image();
    // 图片的地址
    image.src = imgObj.src;
    // 用于设定图片的宽度和高度
    var tempWidth;
    var tempHeight;
    if (image.width > 0 && image.height > 0) {
        // 原图片的宽高 大于 自定义的宽高
        if (image.width / image.height >= maxWidth / maxHeight) {
            if (image.width > maxWidth) {
                tempWidth = maxWidth;
                // 按原图片的比例进行缩放
                tempHeight = (image.height * maxWidth) / image.width;
            } else {
                tempWidth = image.width;
                tempHeight = image.height;
            }
        } else {
            if (image.height > maxHeight) {
                tempHeight = maxHeight;
                // 按原图片的比例进行缩放
                tempWidth = (image.width * maxHeight) / image.height;
            } else {
                tempWidth = image.width;
                tempHeight = image.height;
            }
        }
        // 设置该img图片的宽和高
        imgObj.height = tempHeight;
        imgObj.width = tempWidth;
        // 提示图片原来的大小
        imgObj.alt = image.width + "x" + image.height;
    }
}

前端页面上的标签进行调用的写法
img标签的src可以进行动态赋值

<div>
    <img id="previewPicture" src="#" alt="" onload="javascript:drawImage(this,300,150)"/>
</div>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值