图片上传获取宽高的方法

想要获取图片的宽高首先要知道图片的 url;一般图片上传 UI 组件或自己封装的组件都会获取到图片的 url,知道 url 就好办了,上代码。

1
2
3
4
5
6
var Uploadimgurl = URL; //图片URL地址
var img = new Image(); //创建对象
img.src = Uploadimgurl; //改变图片地址
img.onload = function () {
console.log(img.width + "" + img.height);
};

要在图片加载完后就去获取宽高,不然输出的话是 0。

也可以用计时器循环检测来实现,只要图片宽高任意一项大于 0,就可获取到图片的宽高;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 记录当前时间戳
var time = new Date().getTime();
// 图片地址 后面加时间戳是为了避免缓存
var url = "url" + time;
// 创建对象
var imgObj = new Image();
// 改变图片的src
imgObj.src = url;
// 定时执行获取宽高
var check = function () {
// 只要任何一方大于0
// 表示已经服务器已经返回宽高
if (imgObj.width > 0 || imgObj.height > 0) {
console.log(imgObj.width, imgObj.height);
clearInterval(set);
}
};
var set = setInterval(check, 40);

这种方法比 onload 方法执行效率会快一些.