JS控制图片按比例缩放并不超过一定宽度和高度

1.如何使用,html页面代码(此处定义一个图片图片按照(宽170px或者高120px缩放))

<img οnlοad="javascript:DrawImage(this,170,120)" src="http://center.blueidea.com/data/avatar/000/20/31/26_avatar_small.jpg">


2.js通用方法

//JS控制图片按比例缩放并不超过一定宽度和高度
//图片按比例缩放
function DrawImage(ImgD, iwidth, iheight) {
    var flag = false;
    var image = new Image();
    //var iwidth = 620;            //定义允许图片宽度,当宽度大于这个值时等比例缩小
    //var iheight = 360;            //定义允许图片高度,当宽度大于这个值时等比例缩小
    var minwidth = iwidth  //图片最小宽度小于定义百分比;
    var minheight = iheight //图片最小高度小于定义百分比
    image.src = ImgD.src;
    if (image.width > 0 && image.height > 0) {         //假如图片长宽都不为零
        flag = true;
        if (image.height / image.width >= iheight / iwidth) {       //通过正弦值判断图片缩放后是否偏高
            if (image.height > iheight) {        //如果图片比设定的要高
                ImgD.height = iheight;
                ImgD.width = (image.width * iheight) / image.height;
            } else {

                //假如图片width<70%(设定)&&heitht<70%(设定)
                if (image.height < minheight) {

                    ImgD.height = minheight;
                    ImgD.width = (image.width * minheight) / image.height;
                }
                else {
                    ImgD.width = image.width;
                    ImgD.height = image.height;
                }

            }

            //                    ImgD.alt = image.width + "×" + image.height;
        }

        else {           //如果图片比例 小于 设定的比例
            if (image.width > iwidth) {
                ImgD.width = iwidth;
                ImgD.height = (image.height * iwidth) / image.width;
            } else {

                //假如图片width<70%(设定)&&heitht<70%(设定)
                if (image.width <= minwidth) {

                    ImgD.width = minwidth;
                    ImgD.height = (image.height * minwidth) / image.width;
                }
                else {
                    ImgD.width = image.width;
                    ImgD.height = image.height;
                }

            }
            //                    ImgD.alt = image.width + "×" + image.height;
        }
    }
}


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值