2013-01-11 65 views
13

如何找到以base64圖像的寬度和高度如何找到的base64圖像的寬度和高度

<img id="thumb0" width="200" height="200" 
src="data:image/png;base64, ................"> 

圖像屬性寬度和高度不變,因爲我需要向他們展示拇指指甲,但其中的原圖像屬性不同。

我需要獲取原始圖像的高度和寬度。

假設我的原始圖像的高度和寬度都750×500

我想這樣的,但得到的財產寬度和高度

$("#thumb0").width(); 

值。

請幫助如何獲得圖像的原始寬度和高度。

+1

圖片(在Firefox至少)有naturalWidth/height屬性,所以你可以使用img.naturalWidth得到原始寬度 –

+0

嘗試在Firefox中的螢火蟲它說undefined – vvr02

+1

其在Firefox和Chrome中爲我工作..請注意,該圖像必須完全加載使用naturalWidth/naturalHeight屬性.. –

回答

16

你可以建一個圖像元素,並得到其大小:

var img = new Image(); 
img.src = $('#thumb0').attr('src'); 
var originalWidth = img.width; 
+3

但我認爲它會爲了拍攝巨大的圖像,我們需要在創建之後銷燬? – vvr02

+0

不,它會非常快,特別是因爲沒有要求發佈。而且你沒有破壞:只要你離開函數聲明的地方,它就被清理了。 –

+0

@dystroy它不能在android ~~~工作,任何方式使其工作? – MichaelLuthor

6

在dystroy的回答中提到的Image() constructor for HTMLImageElements是正確的道路要走,但有一點需要注意:構造函數實際上是異步的!因此,您在某些瀏覽器中可能會遇到意外的行爲;在我的有限實驗中,dystroy的代碼將在Chrome中100%的時間內運行,但有時僅在Firefox和Safari中運行。不瞭解別人。

做正確的做法似乎是with an onload handler,如:

var img = new Image(); 
img.src = some_base64_image_source; 
console.log(img.width);  // This might print out 0! 
img.onload = function() { 
    console.log(img.width); // This will print out the width. 
}