J'ai un base64 img encoded
que vous pouvez trouver ici . Comment puis-je obtenir la hauteur et la largeur de celui-ci?
var i = new Image();
i.onload = function(){
alert( i.width+", "+i.height );
};
i.src = imageData;
Pour une utilisation synchrone, intégrez une promesse comme celle-ci:
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
})
}
alors vous pouvez utiliser wait pour obtenir les données dans un style de codage synchrone:
var dimensions = await getImageDimensions(file)
J'ai trouvé que l'utilisation de .naturalWidth et .naturalHeight avait les meilleurs résultats.
var img = new Image();
img.onload = function() {
var imgWidth = img.naturalWidth,
imgHeight = img.naturalHeight;
};
Ceci n'est supporté que par les navigateurs modernes. http://www.jacklmoore.com/notes/naturalwidth-and-naturalheight-in-ie/
Créez un <img>
Caché avec cette image, puis utilisez jquery .width () et. la taille()
$("body").append("<img id='hiddenImage' src='"+imageData+"' />");
var width = $('#hiddenImage').width();
var height = $('#hiddenImage').height();
$('#hiddenImage').remove();
alert("width:"+width+" height:"+height);
Testez ici: [~ # ~] violon [~ # ~]
L'image n'est pas initialement créée masquée. il est créé, puis vous obtenez la largeur et la hauteur, puis supprimez-le. Cela peut entraîner une visibilité très courte dans les images volumineuses. Dans ce cas, vous devez envelopper l'image dans un autre conteneur et rendre ce dernier masqué, pas l'image elle-même.
Un autre Fiddle qui n'ajoute pas à dom selon le gp .'s anser: [~ # ~] ici [~ # ~]