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

时间:2013-07-21 17:24:42

标签: javascript jquery image base64 dimensions

我有base64 img encoded您可以找到here。我怎样才能得到它的高度和宽度?

4 个答案:

答案 0 :(得分:114)

var i = new Image(); 

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

i.src = imageData; 

答案 1 :(得分:18)

对于同步使用,只需将其包装成这样的承诺:

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

然后你可以使用await来获取同步编码风格的数据:

var dimensions = await getImageDimensions(file)

答案 2 :(得分:3)

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

var img = new Image();

img.onload = function() {
    var imgWidth = img.naturalWidth,
        imgHeight = img.naturalHeight;
};

仅在现代浏览器中支持此功能。 http://www.jacklmoore.com/notes/naturalwidth-and-naturalheight-in-ie/

答案 3 :(得分:1)

使用该图像创建隐藏的<img>,然后使用jquery .width()和。高度()

$("body").append("<img id='hiddenImage' src='"+imageData+"' />");
var width = $('#hiddenImage').width();
var height = $('#hiddenImage').height();
$('#hiddenImage').remove();
alert("width:"+width+" height:"+height);

在这里测试: FIDDLE

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


根据gp。的另一个小提琴不会添加到dom中: HERE