Как определить РЕАЛЬНЫЙ размер изображения на JavaScript

dimm_mds

Новичок
Как определить РЕАЛЬНЫЙ размер изображения на JavaScript

Всем привет!
Собственно сабж.
Только одни нюанс. Есть картинка предположим РЕАЛЬНЫМ размером 100х100 пикс., в свойствах я ей указывааю размер 50х50 (<img src="..." height=50 width=50 />).
Таким образом, на страничке отображается рисунок размером 50х50, хотя реальный 100х100.
Так вот, как определить на javascript именно эти 100х100? ф-ия getHeight() и значение height (для высоты соответственно) возврящает занчение 50, т.к. берет их со стиля. А как реальные размеры узнать я не нашел...

Может кто подскажет?

П.С. Когда я стиль сбрасываю(ф-ия removeProperties('width','height')) - я могу узнать реальный размер, но тогда и сам рисунок на страничке изменяется до реальных размеров.

П.С.2 Решение на PHP не предлагать, все должно работать на стороне клиента без участия сервера.

Заранее благодарен!
 

Adelf

Administrator
Команда форума
Простое решение влоб.
var im = new Image();
im.src = getElementById(...).src;
alert(im.width);
Изза кеширования грузить еще раз вроде не должно.
 

dimm_mds

Новичок
Тут с кешем кто его знает, вдруг страничка закрыта для кеширования? А если это целая галерея....

Делаю вот так (применяю mootools)
w = $('myfoto').width;
h = $('myfoto').height;
var new_img = $('myfoto').clone();
new_img.removeProperties('width','height');
alert (new_img.height);

Но я не уверен, что это правильный подход. Просто сомневаюсь, что в javascript не предусмотрена ф-ия для получения реального размера....
 

Adelf

Administrator
Команда форума
Ну у меня вот в Фаерфоксе сработало - document.getElementById('img12').naturalHeight

Не уверен что сработает в других. Тебе надо - сам тести :)
 

Adelf

Administrator
Команда форума
dimagolov
вроде недолго.

Не знаю где там ерунда, но оба мои решения вроде работают, в указанных мною ограничениях.

А вот твой пост возможно слегка не в тему, ибо телепатия. Причем тут загрузка картинки? ТС нигде не говорит, что данный скрипт должен работать при загрузке страницы.
 

dimagolov

Новичок
Adelf, если картинки уже загружены, то нет проблем создавать new Image() и там смотреть width/height (возьмется из кеша). НО картинка ДОЛЖНА быть загружена, а это в общем случае не очевидно даже после загрузки всей страницы. Поэтому этот факт нужно или проверять, или смотреть width/height ПОСЛЕ того, как убедились, что картинка загрузилась. Поэтому моя ссылка как раз в тему. А вот naturalHeight это ерунда, так как для не ФФ потребуется костыль, который по факту смотрит те же width/height после загрузки картинки. Причем при таких раскладах совершенно лишний.

ут с кешем кто его знает, вдруг страничка закрыта для кеширования? А если это целая галерея....
dimm_mds, ЕМНИП, то картинки падают в кеш браузера при любых раскладах (при не уникальности ссылки на картинку), и беспокоится о таком не стоит. Если очень нечего делать, то попробуй добиться такого поведения хотья бы от отдного браузера, а потом уже думай как это обойти.
 
Сверху