base64 img encoded
here. Yüksekliğini ve genişliğini nasıl alabilirim?JS - resim genişlik ve yükseklikten base64 koduna bakın
cevap
var i = new Image();
i.onload = function(){
alert(i.width+", "+i.height);
};
i.src = imageData;
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
ç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
, fiddle – Desu
ile düzenlenmiştir, teşekkürler, şimdi açık: D – bombastic
Ben .naturalWidth ve .naturalHeight kullanarak en iyi sonuçları olduğunu bulmuşlardır.
var img = new Image();
img.onload = function() {
var imgWidth = img.naturalWidth,
imgHeight = img.naturalHeight;
};
Bu yalnızca modern tarayıcılarda desteklenir. http://www.jacklmoore.com/notes/naturalwidth-and-naturalheight-in-ie/
senkron kullanımı sadece bu gibi bir söz haline kaydırmak için: can,
var dimensions = await getImageDimensions(file)
sadece harika, boyutu kontrol etmek için yarım zaman alır, çok teşekkür ederim! – bombastic
çok kötü bir zaman uyumsuz bir süreçtir. –
@CoenDamen yep. Eşzamanlı sürece ihtiyacım var. –