У меня есть img в кодировке base64, который вы можете найти здесь . Как я могу узнать его высоту и ширину?
javascript
jquery
image
base64
dimensions
напыщенный
источник
источник
Для синхронного использования просто оберните его в обещание, подобное этому:
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)
источник
Я нашел это, используя
.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
Изображение изначально не создается скрытым. он создается, затем вы получаете ширину и высоту, а затем удаляете его. Это может привести к очень короткой видимости в больших изображениях, в этом случае вам нужно обернуть изображение в другой контейнер и сделать этот контейнер скрытым, а не само изображение.
Еще одна скрипка, которая не добавляет к dom в соответствии с anser gp.: ЗДЕСЬ
источник