ошибка вычисления image.width
кто знает в чем отличие между
gg=100 file="http://kachay.ucoz.org/"+gg+".jpg"; и file="http://kachay.ucoz.org/100.jpg"; в первом случае image.width не вычисляется? |
Нет никакой разницы.
|
да. теоретически всё должно быть одинаково. и там и там строка..
|
тем не менее:
---------------------------------------- <!-- g=Math.round(Math.random()*200000) +1 gg=400000+g var image = new Image(); //file="http://www.irk.kp.ru/upimg/38fd25d0148fde2be07a6b7b4f6431b14dc82cf0/523088.jpg"; file="http://www.irk.kp.ru/upimg/38fd25d0148fde2be07a6b7b4f6431b14dc82cf0/"+gg+".jpg"; image.src =file; w=image.width; h=image.height; document.write("Размер фото:"+file+"/"+w +"/"+h); //--> ------------------------------------------ w=0 h=0 а это не правильно, если подставлять готовый url, то все работает |
Пока картинка не загружена, ее размеры не узнать.
img.onload = function() { alert([img.width, img.height]); }; img.src = file; |
file="http://www.irk.kp.ru/upimg/38fd25d0148fde2be07a6b7b4f6431b14dc82cf0/"+gg+".jpg";
image.src =file; <-- это что по вашему? w=image.width; h=image.height; |
g=Math.round(Math.random()*200000) +1
gg=400000+g var image = new Image(); file="http://www.irk.kp.ru/upimg/38fd25d0148fde2be07a6b7b4f6431b14dc82cf0/523088.jpg"; file="http://www.irk.kp.ru/upimg/38fd25d0148fde2be07a6b7b4f6431b14dc82cf0/"+gg+".jpg"; image.src =file; w=image.width; h=image.height; img.onload = function() { document.write("Размер фото:"+file+"/"+w +"/"+h); } ------------- на экране пусто |
Цитата:
Цитата:
|
с вашей подачи)
не надо умничать, просто напишите код, если знаете, при котором у file="http://www.irk.kp.ru/upimg/38fd25d0148fde2be07a6b7b4f6431b14dc82cf0/"+gg+".jpg" определяются размеры картинки, если уж вы подписались под обсуждение этого вопроса |
Цитата:
Цитата:
Цитата:
|
"Ну дык не надо писать глупости с умным видом, типа"
Я пишу глупости, потому что не разбираюсь в этом вопросе, потому и спрашиваю, в чем мои ошибки. "сделайте "alert" мне надо следующее =========================== image.onload = function() { alert(this.width+","+this.height); } image.src = file; -------------------------- значения картинки this.width и this.height определяются в alert, но не работают в конструкции типа if ((this.width>0)&(this.height>0)) { document.write(...); } ======================== как это победить задача такая, если картинка маленькая или отсутствует - ищем другую методом случайного перебора (random) |
Цитата:
image.src =file; <-- это что по вашему?и image.src =file; <-- я же вот здесь устанавливаюКак почувствуете, вам сразу на форумах отвечать охотнее будут. Цитата:
|
при чем здесь document.write
если не проходит if ((this.width>0)&(this.height>0)) { кто-нибудь полный код решения задачи в состоянии прописать? |
Сталкивался примерно с той же самой проблемой - писал функцию просмотра фоток, где нужно было уместить фотку произвольного размера в отведенное место. Простое принудительное указание width не проходило - т.к. фотки могли быть разных пропорций, а в случае маленьких изображений происходил бы принудительный апскейлинг, что не есть хорошо.
Т.е. нужно было посмотреть ее реальный размер, вычислить коээфициент уменьшения, и если он >1, то уменьшить размер картинки - вроде бы все просто. Однако несмотря на примитивность задачи, долбался я очень долго - в зависимости от ситуации width получался либо 1, либо соответсвовал предыдущей загруженной картинке, либо еще как (а порой и соотвествовал тому, что надо, но было это совершенно непредсказуемо). Проблема решилась очень просто. Все вычисления пришлось выполнять в функции, вызываемой по onload картинки. Только так удалось добиться того, что значения ее размеров в свойстве width соответсвуют реальности вне зависимости от браузера, скорости соединения итд. Уверен, что и вашем случае такое пройдет. Удачи! Валентин http://vgvozdev.narod.ru |
Цитата:
|
Все! Удалось решить задачу. Аж, двумя спослбами. Исходники и реализацию можно посмотреть на
http://kachay.ucoz.org/rend_foto_dosug2.htm http://kachay.ucoz.org/rend_foto_forum2.htm |
Часовой пояс GMT +3, время: 20:42. |