У меня есть только URL-адрес изображения. Мне нужно определить высоту и ширину этого изображения, используя только JavaScript. Изображение не может быть видно пользователю на странице. Как мне узнать его размеры?
javascript
html
image
JQueeeer
источник
источник
Ответы:
var img = new Image(); img.onload = function(){ var height = img.height; var width = img.width; // code here to use the dimensions } img.src = url;
источник
onload
перед установкой URL-адреса изображения?onload
это слушатель, который будет вызываться асинхронно, если изображение загружено правильно. Если вы установите прослушиватель после установки URL-адреса, изображение может загрузиться непосредственно перед тем, как код достигнет установки самой onload, в результате чего прослушиватель никогда не будет вызван. Используя аналогии, если вы подаете себе стакан с водой, вы сначала наливаете воду, а затем ставите стакан, чтобы наполнить его? Или сначала ставишь стакан, а потом наливаешь воду?Сделайте новый
Image
var img = new Image();
Установить
src
Получите
width
иheight
//img.width //img.height
источник
Это использует функцию и ожидает ее завершения.
http://jsfiddle.net/SN2t6/118/
function getMeta(url){ var r = $.Deferred(); $('<img/>').attr('src', url).load(function(){ var s = {w:this.width, h:this.height}; r.resolve(s) }); return r; } getMeta("http://www.google.hr/images/srpr/logo3w.png").done(function(test){ alert(test.w + ' ' + test.h); });
источник
naturalWidth и naturalHeight
var img = document.createElement("img"); img.onload = function (event) { console.log("natural:", img.naturalWidth, img.naturalHeight); console.log("width,height:", img.width, img.height); console.log("offsetW,offsetH:", img.offsetWidth, img.offsetHeight); } img.src = "image.jpg"; document.body.appendChild(img); // css for tests img { width:50%;height:50%; }
источник
Получить размер изображения с помощью jQuery
function getMeta(url){ $("<img/>",{ load : function(){ alert(this.width+' '+this.height); }, src : url }); }
Получите размер изображения с помощью JavaScript
function getMeta(url){ var img = new Image(); img.onload = function(){ alert( this.width+' '+ this.height ); }; img.src = url; }
Получите размер изображения с помощью JavaScript (современные браузеры, IE9 +)
function getMeta(url){ var img = new Image(); img.addEventListener("load", function(){ alert( this.naturalWidth +' '+ this.naturalHeight ); }); img.src = url; }
Используйте приведенное выше просто как: getMeta (" http://example.com/img.jpg ");
https://developer.mozilla.org/en/docs/Web/API/HTMLImageElement
источник
Аналогичный вопрос задан и ответил с помощью JQuery здесь:
Получить ширину и высоту удаленного изображения из URL
function getMeta(url){ $("<img/>").attr("src", url).load(function(){ s = {w:this.width, h:this.height}; alert(s.w+' '+s.h); }); } getMeta("http://page.com/img.jpg");
источник
если у вас есть файл изображения из формы ввода. вы можете использовать это
let images = new Image(); images.onload = () => { console.log("Image Size", images.width, images.height) } images.onerror = () => result(true); let fileReader = new FileReader(); fileReader.onload = () => images.src = fileReader.result; fileReader.onerror = () => result(false); if (fileTarget) { fileReader.readAsDataURL(fileTarget); }
источник
Следующий код добавляет высоту и ширину атрибута изображения к каждому изображению на странице.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Untitled</title> <script type="text/javascript"> function addImgAttributes() { for( i=0; i < document.images.length; i++) { width = document.images[i].width; height = document.images[i].height; window.document.images[i].setAttribute("width",width); window.document.images[i].setAttribute("height",height); } } </script> </head> <body onload="addImgAttributes();"> <img src="2_01.jpg"/> <img src="2_01.jpg"/> </body> </html>
источник