是否可以使用JavaScript(即不属于DOM的图像)获取文件系统中图像的高度和宽度?或者我是否必须使用JavaScript将图像注入DOM并以这种方式获取尺寸?
我问,因为我正在编写一个JavaScript方法来快速渲染由Raphaël生成的UI组件,它将三个图像路径作为方法参数的一部分。然后将它们用于渲染上述UI组件,我需要图像的尺寸以用于定位目的。
提前致谢。
答案 0 :(得分:9)
我认为只要图像已加载就可以获取宽度和高度 - 您不应该将其注入DOM中。例如:
var tmp = new Image();
tmp.onload = function() {
console.log(tmp.width + ' x ' + tmp.height);
}
tmp.src = 'http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=4';
答案 1 :(得分:4)
您无法访问“文件系统”,但您可以这样做:
v = new Image();
v.onload = function() {
alert("size: " + String(v.width) + 'x' + String(v.height));
};
v.src = "http://www.gravatar.com/avatar/96269f5a69115aa0e461b6334292d651?s=32&d=identicon&r=PG";
你会把它算作“添加到DOM”吗?
答案 2 :(得分:1)
您可以使用以下代码下载图片:
var img=new Image(),imgWidth,imgHeight;
img.onerror=img.onload=function(ev) {
ev=ev||event;
if(ev.type==="error") {
imgWidth=imgHeight=-1; // error loading image resourse
}
else {
imgWidth=this.width; // orimgWidth=img.width
imgHeight=this.height; // imgHeight=img.height
}
}
img.src="url_to_image_file";
答案 3 :(得分:-5)
是否可以使用JavaScript(即不属于DOM的图像)获取文件系统中图像的高度和宽度?
或者我是否必须使用JavaScript将图像注入DOM并以这种方式获取尺寸?