Javascript 获取通过文件读取器加载的图像的宽度和高度

Javascript 获取通过文件读取器加载的图像的宽度和高度,javascript,jquery,Javascript,Jquery,我有一个通过文件阅读器创建的图像: var fileReader = new FileReader(); var deferred = $.Deferred(); fileReader.onload = function(event) { deferred.resolve(event.target.result); }; fileReader.onerror = function() { deferred.reject(

我有一个通过
文件阅读器创建的图像:

    var fileReader = new FileReader();
    var deferred = $.Deferred();

    fileReader.onload = function(event) {
        deferred.resolve(event.target.result);
    };

    fileReader.onerror = function() {
        deferred.reject(this);
    };

    fileReader.readAsDataURL(file);

    return deferred.promise();
这将返回一个base64编码字符串,我将其用于:

var img = $('<img src="' + fileB64 + '">');

但我希望获得其原始宽度和高度。

我认为确定图像宽度和高度的唯一方法是实际创建图像元素,然后从中获取尺寸:

var img = new Image();
img.src = fileB64;
var width = img.width;
var height = img.height;
我假设(即,我没有检查)将
数据:
URL加载到图像的
src
属性中会导致它同步加载。否则使用
img.onload


在屏幕外创建了这样的元素,然后,您可以将完全相同的元素添加到页面中。

您可以向图像中添加一个
onload
事件,并在回调中检查高度和宽度。这不是重复的-我在询问图像的原始宽度和高度。@user3729576它是的重复。@Jack不,不是。我想要查询对象的原始宽度,查询对象的原始宽度?这到底是什么意思?你能举一个更清楚的例子说明你需要什么吗?然后我如何将图像添加到页面中?我以后需要在另一个类中获得维度,一旦它被添加到页面中。只需使用普通的jQuery工具,例如
$(document.body)。append(img)
,那么如何获得图像的原始宽度和高度?如果它已经在页面中,只需阅读元素的
宽度
高度
属性,或者在插入元素之前,您是否以某种方式修改了元素的大小?如果是这样的话,那么这个问题就完全是在转移注意力。在现代浏览器上,您可能可以使用
naturalWidth
naturalHeight
属性。
var img = new Image();
img.src = fileB64;
var width = img.width;
var height = img.height;