最近写了个程序通过流去ftp服务器上去读取一张图片,然后显示出来。由于我读取这个图片之后,要获取这个图片的宽度和高度。但是由于获取图片要一定的时间,图片没有获取完就直接取其高度和宽度。这样显示的宽度和高度都不对。所以需要在图片完全加载完之后再获取。看代码:
/**
等待图片加载完成
*/
function imgLoadEvent(callback, url) {//圖片事件加載
var img = new Image();
img.onreadystatechange = function () {
if (this.readyState == "complete") {
callback({ "w": img.width, "h": img.height });
}
}
img.onload = function () {
if (this.complete == true) callback({ "w": img.width, "h": img.height });
}
img.onerror = function () {
callback({ "w": 0, "h": 0 });
//current.autoSetImgSize(current,img,obj);
}
img.src = url;
}
加载图片
imgLoadEvent(function (obj) {
w = parseInt(obj["w"]);//图片的宽度
h = parseInt(obj["h"]); //图片的高度
}, imageUrl);//imageURL图片的URL
这样保证图片完全加载完成。