2011-09-16 44 views
6

是否可以使用JavaScript(即不是DOM的一部分的圖像)在文件系統中獲取圖像的高度和寬度?或者,我是否必須使用JavaScript將圖像插入到DOM中並以這種方式獲取尺寸?是否可以獲取不在DOM中的圖像的高度/寬度?

我問,因爲我正在寫一個JavaScript方法來渲染一個由Raphaël生成的UI組件,它將三個圖像路徑作爲方法參數的一部分。這些被用來渲染上述UI組件,並且我需要用於定位的圖像尺寸。

在此先感謝。

回答

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'; 
+0

我在console.log中獲取寬度和高度,但是當我嘗試使用JSON.stringify()時,它不打印出來。該對象在控制檯中看起來很完美,但我無法檢索它 – user2734550

-5

是否可以使用JavaScript(即不是DOM的一部分的圖像)在文件系統中獲取圖像的高度和寬度?

  • 沒有

否則我將不得不使用JavaScript注入圖像到DOM和搶尺寸呀?

+2

哎呀,這是不正確的。詳情請參閱所有其他答案。 – Malvolio

+0

我想我所說的(訪問文件系統)是不可能的,但我應該說網址。 –

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"; 
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」?

相關問題