Tengo un img en base64 codificado que puedes encontrar aquí . ¿Cómo puedo obtener la altura y el ancho?
Tengo un img en base64 codificado que puedes encontrar aquí . ¿Cómo puedo obtener la altura y el ancho?
Respuestas:
var i = new Image();
i.onload = function(){
alert( i.width+", "+i.height );
};
i.src = imageData;
Para uso sincrónico, simplemente envuélvalo en una promesa como esta:
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
})
}
luego puede usar await para obtener los datos en estilo de codificación síncrona:
var dimensions = await getImageDimensions(file)
Descubrí que el uso .naturalWidth
y obtuve .naturalHeight
los mejores resultados.
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);
};
Esto solo es compatible con los navegadores modernos. http://www.jacklmoore.com/notes/naturalwidth-and-naturalheight-in-ie/
Cree un hidden <img>
con esa imagen y luego use jquery .width () y. altura()
$("body").append("<img id='hiddenImage' src='"+imageData+"' />");
var width = $('#hiddenImage').width();
var height = $('#hiddenImage').height();
$('#hiddenImage').remove();
alert("width:"+width+" height:"+height);
Prueba aquí: FIDDLE
La imagen no se crea inicialmente oculta. se crea, luego obtienes ancho y alto y luego lo eliminas. Esto puede causar una visibilidad muy corta en imágenes grandes, en este caso, debe envolver la imagen en otro contenedor y hacer que ese contenedor esté oculto, no la imagen en sí.
Otro violín que no se suma a dom según la respuesta de gp.: AQUÍ