Burada bulabileceğiniz kodlanmış bir base64 img var . Yüksekliğini ve genişliğini nasıl öğrenebilirim?
Yanıtlar:
var i = new Image();
i.onload = function(){
alert( i.width+", "+i.height );
};
i.src = imageData;
Senkronize kullanım için, bunu şöyle bir söze sarın:
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
})
}
veriyi eşzamanlı kodlama stilinde almak için await'i kullanabilirsiniz:
var dimensions = await getImageDimensions(file)
Bunu kullanarak buldum .naturalWidth
ve .naturalHeight
en iyi sonuçları aldım .
const img = new Image();
img.src = 'https://via.placeholder.com/350x150';
img.onload = function() {
const imgWidth = img.naturalWidth;
const imgHeight = img.naturalHeight;
console.log('imgWidth: ', imgWidth);
console.log('imgHeight: ', imgHeight);
};
Dokümanlar:
Bu yalnızca modern tarayıcılarda desteklenir. http://www.jacklmoore.com/notes/naturalwidth-and-naturalheight-in-ie/
<img>
Bu görüntüyle bir gizli oluşturun ve ardından jquery .width () ve. yükseklik()
$("body").append("<img id='hiddenImage' src='"+imageData+"' />");
var width = $('#hiddenImage').width();
var height = $('#hiddenImage').height();
$('#hiddenImage').remove();
alert("width:"+width+" height:"+height);
Burada test edin: FIDDLE
Görüntü başlangıçta gizli olarak oluşturulmaz. yaratılır, sonra genişlik ve yükseklik elde edersiniz ve sonra onu kaldırırsınız. Bu, büyük görüntülerde çok kısa bir görünürlüğe neden olabilir, bu durumda görüntüyü başka bir kaba sarmanız ve bu kabı görüntünün kendisini değil, gizlemeniz gerekir.
Gp.'s anser'a göre dom'a eklenmeyen başka bir Fiddle: BURAYA