Forum Webscript.Ru
Программирование => JavaScript & JScript => Тема начата: Mog. от 26 Сентября 2002, 16:15:36
-
Подскажите люди, можно ли сделать так (и если да то как).
Должна на страничке показываться картинка с неизвестной шириной(и высотой). И если она меньше чем 800(600), то пусть показывается в родном размере, а ежели ширина (или высота) больше 800 (600 соответственно), тогда картинка
показывается как 800 (а по высоте соответственно 600). Короче, можно ли принять картинку, перед показом проанализировать ее габариты и показать ее с нужными габаритами исходя из анализа габаритов текущих.
-
Можно, все можно...:)
Картинка есть объект Image со свойствами width и height (и не только ;) После загрузки страницы читаешь у объекта свойства, потом проверяешь и изменяешь их нужным образом.
Вот например, если смотришь через MSIE, набери в строке адреса:
javascript:alert(document.images[0].height = 0)
и посмотри, куда делось лого этого сайта :D
В IE можно сделать навороченней: поставить обработчик на OnLoad картинки и сделать то же самое.
-
если смотришь через MSIE
А если у кого другие привязанности :), DOM все чета по разному интерпретируют.
Вообще больше даже не это напрягает, а просто слабое знание явы(читай полное незнание). Вот в этом загвоздка :(
Можно сабж этот на сервере сделать, но там нужны модули Перл дополнительные, в общем напряг еще больший, проще будет яву поизучать.
Дела...
-
Мля! ответ написал, а логин/пароль вроде как бы и не надо вводить :), короче, предыдущий пост писал я , ленивый Mog.
-
Привязанности привязанностями, но Image вроде как и в старых NN работает :)
Дык, а как еще на стороне клиента (форум-то по JS ;))посмотреть параметры картинки, как не скриптом или какой-нить Явой? Яву учить лень, значит - JS. Ну а здесь - только DOM, браузеры и иже с ними... :o
На стороне сервера есть PerlMagick к ImageMagick\'у. Думается мне, там можно найти нужное.
-
На стороне сервера есть
А вот это спорное утверждение, что есть. И что поставить дадут - не факт.
А на стороне клиента, тут ты прав - JS.
Но мне бы хоть приемлимый алгоритмик, а то чета я не вьезжаю, как так принять картинку и до анализа данных ее не показывать. Анализ и показ в принципе понятны даже мне.
-
первичная загрузка скрытая(в невидимом слое иле фрейме), а после анализа загрузить уже то, что надо...
но перв.загрузка таких картинок (>600x800 >= 100k ) будет
заметно тормозить... - стоит пустить вначале "Loading..." с небольшой, но красочной заставкой(дин.эффектом)...
-
А в ПХП есть кул функция getimagesize
-
в ПХП есть кул функция getimagesize
И что она делает? Если не секрет :)
первичная загрузка скрытая(в невидимом слое иле фрейме), а после анализа загрузить уже то, что надо...
грузить 2 раза? это немного не то, я об этом подумывал.
-
первичная загрузка скрытая(в невидимом слое иле фрейме), а после анализа загрузить уже то, что надо...
грузить 2 раза? это немного не то, я об этом подумывал.
Можно грузить один раз, а потом изменять размер и показывать ;)
Кстати, с самого начала здесь есть немного нехороший фактор: если исходная картинка имеет размер, скажем, 1600x1200, а показывать ее надо как 800x600, то лучше ее все-таки предварительно обработать на стороне сервера , иначе пользователь может не дождаться загрузки...
-
А можно просто узнать размер, без загрузки самой картинки? имеется ввиду клиентская сторона. Хотя наверно нет :(.
-
И вообще! Имеет ли смысл ограничивать габариты? Если справа-снизу впринципе пространство ничем не ограничено.
А по поводу большого размера, там будет ограничение файлов, ну скажем, в 200 кб. Да и то сказать, закачиваться картинки будут сторонними юзерами. Не думаю, что ради прикола будут закачивать по 2-4 Мб , да и не получится ни хрена, ограниченный обьем закачки, однако.
Да. Чем дальше в лес - тем больше дров. Так и придется или это дело похерить или модулями заниматься :(
-
Чем дальше в лес
- тем ближе вылез... На стороне сервера все это делается.
-
На стороне сервера все это делается
с помощью модулей, которых там отродясь небывало и, если учитывать, что хостинг бесплатный, никогда и не будет :(
-
Если есть ПХП, то getimagesize тоже есть:)
-
Сложно на примере показать?
$blabla=getimagesize("image.jpg");
echo "";
-
$blabla=getimagesize("image.jpg");
как я понял получает данные, где
$blabla[0]
- ширина, а [1] - высота
и после анализа ширины/высоты мона показать имайдж с соответствующими габаритами?
А как стыковать перл и пхп? Или на пхп все переписать?
-
Пиши все на PHP
или смотри похожую функцию (модуль) в perl