2013-07-21 17 views

cevap

86
var i = new Image(); 

i.onload = function(){ 
alert(i.width+", "+i.height); 
}; 

i.src = imageData; 
+0

sadece harika, boyutu kontrol etmek için yarım zaman alır, çok teşekkür ederim! – bombastic

+2

çok kötü bir zaman uyumsuz bir süreçtir. –

+0

@CoenDamen yep. Eşzamanlı sürece ihtiyacım var. –

3

Bu resmi içeren bir gizli <img> oluşturun ve ardından jquery .width() ve. Burada yükseklik()

$("body").append("<img id='hiddenImage' src='"+imageData+"' />"); 
var width = $('#hiddenImage').width(); 
var height = $('#hiddenImage').height(); 
$('#hiddenImage').remove(); 
alert("width:"+width+" height:"+height); 

Testi: FIDDLE

Görüntü başlangıçta gizli oluşturulmaz. o oluşturulur, sonra genişlik ve yükseklik alırsınız ve sonra kaldırın. Bu, büyük görüntülerde çok kısa bir görünüme neden olabilir. Bu durumda, görüntüyü başka bir kapsayıcıya sarmanız ve bu kapsayıcının görüntüyü gizlememesi gerekir.


gp en anser göre dom eklemez Başka Fiddle:. HERE

+0

çok teşekkür ederim:

function getImageDimensions(file) { return new Promise (function (resolved, rejected) { var i = new Image() i.onload = function(){ resolved({w: i.width, h: i.height}) }; i.src = file }) } 

o zaman senkron kodlama tarzı veri almak için bekliyor verisimi kullanabilirsiniz bana küçük bir örnek plazayı mı gösteriyorsun? – bombastic

+0

, fiddle – Desu

+0

ile düzenlenmiştir, teşekkürler, şimdi açık: D – bombastic

0

senkron kullanımı sadece bu gibi bir söz haline kaydırmak için: can,

var dimensions = await getImageDimensions(file)