Javascript JS-从base64代码中获取图像宽度和高度

Javascript JS-从base64代码中获取图像宽度和高度,javascript,jquery,image,base64,dimensions,Javascript,Jquery,Image,Base64,Dimensions,我有一个base64 img编码,你可以找到。如何获取它的高度和宽度?创建一个隐藏的”; 变量宽度=$('#hiddenImage').width(); var height=$('hiddenImage').height(); $('hiddenImage')。删除(); 警报(“宽度:“+宽度+”高度:“+高度”); 在此处测试: 最初创建的图像不是隐藏的。它被创建,然后获得宽度和高度,然后将其删除。这可能会导致在大型图像中的可见性非常短。在这种情况下,您必须将图像包装到另一个容器中,并

我有一个base64 img编码,你可以找到。如何获取它的高度和宽度?

创建一个隐藏的
”;
变量宽度=$('#hiddenImage').width();
var height=$('hiddenImage').height();
$('hiddenImage')。删除();
警报(“宽度:“+宽度+”高度:“+高度”);
在此处测试:

最初创建的图像不是隐藏的。它被创建,然后获得宽度和高度,然后将其删除。这可能会导致在大型图像中的可见性非常短。在这种情况下,您必须将图像包装到另一个容器中,并使该容器隐藏,而不是图像本身


另一个未按照gp's anser添加到dom的小提琴:

我发现使用
.naturalWidth
.naturalHeight
效果最好

const img=new Image();
img.src=https://via.placeholder.com/350x150';
img.onload=函数(){
常数imgWidth=img.naturalWidth;
常数imgHeight=img.自然高度;
log('imgWidth:',imgWidth);
log('imgHeight:',imgHeight);

};
对于同步使用,只需将其包装成如下承诺:

var i = new Image(); 

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

i.src = imageData; 
然后,您可以使用wait以同步编码方式获取数据:

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
  })
}

var i=new Image();i.src=imageData;setTimeout(函数(){alert(“width:+i.width+”height:+i.height);},100);由于JSFIDLE的性质,这只是一个需要的修复程序,您可以将onLoad改为onDomReady,以解决初始的0宽度和高度问题。代码假定您在工作中已加载文档的某个位置调用此函数。我猜您的观点是,不需要向dom添加任何内容即可获得宽度和高度。Wi我将修改答案以反映您的建议。太棒了,检查大小需要一半的时间,非常感谢!太糟糕了,这是一个异步过程。@CoenDamen是的。我也需要同步过程。您太棒了。我还要补充一点,这里的顺序非常重要。如果您这样做的话(src-before-onload)您可能会错过该活动。请参阅:它仍然是异步的。只需使用语法糖。'naturalWidth'和'naturalHeight'是更好的选择。不?确切地说,它是通过
对象匹配调整大小之前图像的原始大小。
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
  })
}
var dimensions = await getImageDimensions(file)