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;