Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Узнать размеры картинки jQuery (https://javascript.ru/forum/misc/31727-uznat-razmery-kartinki-jquery.html)

skillful 02.10.2015 22:32

Я автор данной темы. Создал ее еще 3 года назад.

psfdek, тот код который Вы предложили будет работать только если картинка уже отображалась ранее в браузере, т.е. была кэширована.
Об этом кстати я и написал в первом сообщении 3 года назад.
Правильно будет так:

var href = "http://upload.wikimedia.org/wikipedia/ru/8/8d/ImageComicsLogo.gif";
var img = new Image();
img.onload = function()
{
    var intImageWidth = this.width;
    var intImageHeight = this.height;

    alert(intImageWidth + "px; " + intImageHeight + "px;");
}
img.src = href;

just_do_it 10.08.2016 01:03

Подскажите почему так происходит
function imgSize(href){
		        var img = new Image();
		        img.src = href;
		        
		        img.onload = function() {
		            return img;
		        };
		        return img;
		    }

		    y=URL.createObjectURL(files[index]);
		    var imgZz = imgSize(y);

		    alert();
		    console.log(imgZz.width);
		    console.log(imgZz.height);


Если из кода убрать - alert();, тогда размеры не выводяться. НО! если поставить alert();, тогда размеры выводятся как положено и их можно передавать дальше.
У меня проблема в том что размеру нужны для дальнейшей работы с изображением, а не просто для их вывода. А выводить alert(); после каждого изображение не есть выход.
может есть какой-то аналог alert(); или событие которое должно произойти, после чего я смогу получить размеры

Подскажите пжлста

рони 10.08.2016 01:22

just_do_it,
в 6 строке вы получите размер. алерт нужен чтоб вы дождались ответа сервера. мыслить асинхронно.

just_do_it 10.08.2016 01:32

Цитата:

Сообщение от рони (Сообщение 424865)
just_do_it,
в 6 строке вы получите размер. алерт нужен чтоб вы дождались ответа сервера. мыслить асинхронно.

спасибо,
но как мне добиться получения размеров в 15 и 16 строках без алерта?:thanks:

warren buffet 10.08.2016 07:30

Размер ты получишь не раньше, чем загрузится картинка. Следовательно только когда она загрузится, можно получить размер. Иными словами когда картинка загрузится, ты получишь размер, то есть не раньше чем она загрузится, ибо до этого момента измерять нечего. Дошло?

img.onload = function(){
    console.log(this.width);
    console.log(this.height);
};

just_do_it 10.08.2016 11:21

warren buffet, все теперь понял)), спс


Часовой пояс GMT +3, время: 17:41.