Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Скрипт, изменения размера картинки (https://javascript.ru/forum/dom-window/2011-skript-izmeneniya-razmera-kartinki.html)

soniclord 21.10.2008 05:59

Скрипт, изменения размера картинки
 
Здравствуйте!
Помогите пожалуйста реализовать скрипт который в зависимости от размера слоя, на котором находится картинка, изменяла бы размер картинки. Размер слоя изменяется тоже с помощью скрипта, так что переменные высоты имеются.
Спасибо.

Zibba 21.10.2008 09:18

Думаю данная ссылка сможет Вам помочь http://habrahabr.ru/blogs/javascript/26888/

soniclord 21.10.2008 09:31

Вы меня не поняли. Картинка находится в слое, который уменьшается в зависимости от размера экрана браузера. Мне необходимо просто взять переменные из того слоя (он написан на javascript) и вставить в картинку, чтобы она тоже уменьшалась или увеличивалась параллельно.

вот код:

<script language="JavaScript"> 
<!-- 
w=document.body.clientHeight-220;
d=document.getElementById('res');
d.style.height=w;
if (w >=550) { document.write('<img src="images/3.jpg">'); } 
else if ((w < 550)&&(w>=441)) { document.write('<img src="images/2.jpg">'); } 
else if ((w>=353)&&(w<441)) { document.write('<img src="images/1.jpg">'); } 
else if ((w>=334)&&(w<353)) { document.write('<img src="images/5.jpg">'); }
else if ((w>=265)&&(w<334)) { document.write('<img src="images/4.jpg">'); } 
//--> 
</script>


как видите здесь я просто подставляю одни и те же картинки разных размеров, а мне бы хотелось использовать одну картинку просто ее растягивать.

Kolyaj 21.10.2008 10:27

Ну во-первых, для этого есть CSS (width: 100%, например), во-вторых, если вы будете растягивать картинку, она стремной получится.

alt5000 27.10.2008 15:56

Можно через функции PHP менять размер оригинала каждый раз :). А отображение в браузере через HTML/JS действительно сделает ваше изображение... несколько... несколько иным, скажем так :) Да и загрузка большого изображения будет занимать больше времени, если Вам надо, скажем показать превью огромного плаката... лучше обработайте данные о разрешении экрана и сформируйте копию картинки, которую потом и отправите клиенту, а саму картинку удалите с сервера...

Kolyaj 27.10.2008 16:44

Если изменять размеры с помощью PHP, она получится такой же стремной, как и с помощью браузера.

alt5000 27.10.2008 17:11

Ну, библиотечку там какую прикрутить для изображений. Но это, конечно, не вариант. Генерировать каждый раз само изображение, да еще и с сторонней библиотекой :) Это просто как вариант для дальнейших раздумий.

P.S.: Не думаю, что изображение, обработанное PHP и просто "зажатое" в размерах HTML будут выглядеть одинаково. Больше искажений проявятся при втором способе. Особенно если пиксельная пропорция не 1:1.

Zibba 27.10.2008 22:44

Ну в том примере который я кинул изображение оставляет довольно таки приемлемое качество после обработки JS скриптом. (да и пища для размышления тоже не плохая)

Kolyaj 27.10.2008 23:32

Zibba,
ага, вот только пример абсолютно не в тему.

alt5000 28.10.2008 10:47

Цитата:

Сообщение от Kolyaj (Сообщение 7659)
Zibba,
ага, вот только пример абсолютно не в тему.

Ну, почему же, совсем не в тему. Оттуда ведь тоже можно выдернуть какие-то фрагменты для ресайза. Код не смотрел, но думаю, по общему уровню исполнения, думаю, что там есть чему поучиться... Какие-то идеи, которые можно "благополучно позаимствовать" :)

Kolyaj 28.10.2008 13:28

Цитата:

Сообщение от alt5000
что там есть чему поучиться

Разумеется там можно чему-нибудь поучиться. Вот только к теме топика это не имеет никакого отношения.

Zibba 28.10.2008 14:18

Цитата:

Ну, почему же, совсем не в тему. Оттуда ведь тоже можно выдернуть какие-то фрагменты для ресайза. Код не смотрел, но думаю, по общему уровню исполнения, думаю, что там есть чему поучиться... Какие-то идеи, которые можно "благополучно позаимствовать"
Я это и имел ввиду, просто в том примере нельзя растянуть картинку больше чем ее оригинальный размер (что бы как тут выражались не было гавна), но можно вполне прилично уменьшить. Если посмотрите код того скрипта, то там это реализовано совсем не сложно. Конечно не решение проблемы, но для размышления самое то, хотя бы чтобы топикстартер понял что тупо увеличивать картинку - это не есть гуд.
P.S. Но Вам все же виднее.

Kolyaj 28.10.2008 14:23

Zibba,
чтобы изменить размеры картинки, достаточно написать
img.style.width = '400px;'
Зачем из-за этой строчки посылать человека изучать объемный скрипт?

Zibba 28.10.2008 16:35

Kolyaj,
Поэтому я и говорю
Цитата:

Вам все же виднее.
В следующий раз луше промолчу.

Kolyaj 28.10.2008 16:38

Это вы добавили после моего последнего сообщения :)


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