js加载图片获取图片尺寸信息
发布时间:2018-10-03 02:34:59 所属栏目:创业 来源:站长网
导读:假如你碰着不利便从处事器取图片尺寸信息的话,用下面代码就很利便了。 一位大神分享的js获取图片信息要领。 Copy to Clipboard 引用的内容:[www.veryhuo.com]// 更新: // 05.27: 1、担保回调执行次序:error ready load;2、回调函数this指向img自己 //
假如你碰着不利便从处事器取图片尺寸信息的话,用下面代码就很利便了。 一位大神分享的js获取图片信息要领。 Copy to Clipboard引用的内容:[www.veryhuo.com] // 更新:// 05.27: 1、担保回调执行次序:error > ready > load;2、回调函数this指向img自己 // 04-02: 1、增进图片完全加载后的回调 2、进步机能 /** * 图片头数据加载停当变乱 - 更快获取图片尺寸 * @version 2011.05.27 * @see http://blog.phpdr.net/js-get-image-size.html * @param {String} 图片路径 * @param {Function} 尺寸停当 * @param {Function} 加载完毕 (可选) * @param {Function} 加载错误 (可选) * @example imgReady('http://www.google.com.hk/intl/zh-CN/images/logo_cn.png', function () { alert('size ready: width=' + this.width + '; height=' + this.height); }); */ var imgReady = (function () { var list = [], intervalId = null, // 用来执行行列 tick = function () { var i = 0; for (; i < list.length; i++) { list[i].end ? list.splice(i--, 1) : list[i](); }; !list.length && stop(); }, // 遏制全部按时器行列 stop = function () { clearInterval(intervalId); intervalId = null; }; return function (url, ready, load, error) { var onready, width, height, newWidth, newHeight, img = new Image(); img.src = url; // 假如图片被缓存,则直接返回缓存数据 if (img.complete) { ready.call(img); load && load.call(img); return; }; width = img.width; height = img.height; // 加载错误后的变乱 img.onerror = function () { error && error.call(img); onready.end = true; img = img.onload = img.onerror = null; }; // 图片尺寸停当 onready = function () { newWidth = img.width; newHeight = img.height; if (newWidth !== width || newHeight !== height || // 假如图片已经在其他处所加载可行使面积检测 newWidth * newHeight > 1024 ) { ready.call(img); onready.end = true; }; }; onready(); // 完全加载完毕的变乱 img.onload = function () { // onload在按时器时刻差范畴内也许比onready快 // 这里举办搜查并担保onready优先执行 !onready.end && onready(); load && load.call(img); // IE gif动画会轮回执行onload,置空onload即可 img = img.onload = img.onerror = null; }; // 插手行列中按期执行 if (!onready.end) { list.push(onready); // 无论何时只应承呈现一个按时器,镌汰赏识器机能消费 if (intervalId === null) intervalId = setInterval(tick, 40); }; }; })(); imgReady('http://www.google.com.hk/intl/zh-CN/images/logo_cn.png', function () { alert('size ready: width=' + this.width + '; height=' + this.height); }); (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读