我有一个base64 img编码,可以在这里找到。如何获得高度和宽度?
Answers:
var i = new Image();
i.onload = function(){
alert( i.width+", "+i.height );
};
i.src = imageData;
对于同步使用,只需将其包装成如下这样的承诺:
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)
我发现,使用.naturalWidth
和.naturalHeight
有最好的结果。
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);
};
仅现代浏览器支持此功能。http://www.jacklmoore.com/notes/naturalwidth-and-naturalheight-in-ie/
<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的小提琴: 这里