我有一个获取图像尺寸的功能。我从createObjectURL发送回信。
它在获取尺寸方面效果很好,但我无法获得这些值。我试图获得两个值,但问题似乎是函数内有一个函数。外部函数不知道内部函数中设置的值。当我对一个值进行硬编码时,就像在下面的“qq”中一样。所以我可以看到问题不在回报中,而在价值中。
在这种情况下,您如何阅读这些值?
imgSrc = window.URL.createObjectURL(this.files[0]);
var imgSize = getImgSize(imgSrc);
var newWidth = imgSize.retWidth;
var newHeight = imgSize.retHeight;
alert(newWidth);
alert(newHeight);
function getImgSize(imgSrc) {
var newImg = new Image();
newImg.onload = function() {
var nHeight = newImg.height;
var nWidth = newImg.width;
//alert('The image size is ' + width + '*' + height);
}
newImg.src = imgSrc; //this must be done AFTER setting onload
return {
retWidth: nWidth,
retHeight: 'qq'
};
}
答案 0 :(得分:3)
你无法取回它们,因为#import "MTLModel.h"
是异步的,处理此问题的最简单方法是从加载程序内部调用函数。
.onload
这里我为流程的每个步骤使用一个函数。你有getImage开始这个过程。然后你调用一个实用程序函数,它将一个图像源和一个回调函数作为参数(你可以直接调用useImgSize函数,但是回调允许你使用效用函数来处理多个事情)。最后,您可以对useImgSize函数中的维度执行任何操作。