js获取图片原始宽高

使用HTML5属性 (naturalWidth, naturalHeight)获取

提示:适用于Firefox/IE9/Safari/Chrome/Opera浏览器

	var img = document.getElementById("imgDom")
	var width = img.naturalWidth
	var height = img.naturalHeight

使用Image对象异步获取

	let image = new Image();
	image.onload = function () {
	    var width=img.width
		var height=img.height
	};
	image.onerror = function () {
	    console.log("获取失败")
	};
	image.src = "./1.png";

兼容的写法

    // async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数。
    // await 是在等待一个Promise的异步返回
    // 得到图片原始的宽高
    async function getImageSize(img) {
        if (img.naturalWidth) {
            // 适用于Firefox/IE9/Safari/Chrome/Opera浏览器
            return {
                width: img.naturalWidth,
                height: img.naturalHeight
            }
        } else {
            return await getImageSizeByUrl(img.src);
        }
    }
    // 使用Image对象获取图片真实宽高
    function getImageSizeByUrl(url) {
        return new Promise(function (resolve, reject) {
            let image = new Image();
            image.onload = function () {
                resolve({
                    width: image.width,
                    height: image.height
                });
            };
            image.onerror = function () {
                reject(new Error('error'));
            };
            image.src = url;
        });
    }

调用方式

	var img = document.getElementById("imgDom")
	getImageSize(img).then(res=>{
		console.log(res.width,res.height)
	})
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值