Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: Mog. от 26 Сентября 2002, 16:15:36

Название: Анализ и изменение размеров картинки перед показом
Отправлено: Mog. от 26 Сентября 2002, 16:15:36
Подскажите люди, можно ли сделать так (и если да то как).
Должна на страничке показываться картинка с неизвестной шириной(и высотой). И если она меньше чем 800(600), то пусть показывается в родном размере, а ежели ширина (или высота) больше 800 (600 соответственно), тогда картинка
показывается как 800 (а по высоте соответственно 600). Короче, можно ли принять картинку, перед показом проанализировать ее габариты и показать ее с нужными габаритами исходя из анализа габаритов текущих.
Название: Анализ и изменение размеров картинки перед показом
Отправлено: mike от 26 Сентября 2002, 16:39:43
Можно, все можно...:)

Картинка есть объект Image со свойствами width и height (и не только ;) После загрузки страницы читаешь у объекта свойства, потом проверяешь и изменяешь их нужным образом.

Вот например, если смотришь через MSIE, набери в строке адреса:

javascript:alert(document.images[0].height = 0)

и посмотри, куда делось лого этого сайта :D
В IE можно сделать навороченней: поставить обработчик на OnLoad картинки и сделать то же самое.
Название: Анализ и изменение размеров картинки перед показом
Отправлено: Ленивый гость от 26 Сентября 2002, 17:30:20
Цитировать
если смотришь через MSIE

А если у кого другие привязанности :), DOM все чета по разному интерпретируют.
Вообще больше даже не это напрягает, а просто слабое знание явы(читай полное незнание). Вот в этом загвоздка :(
Можно сабж этот на сервере сделать, но там нужны модули Перл дополнительные, в общем напряг еще больший, проще будет яву поизучать.
Дела...
Название: Анализ и изменение размеров картинки перед показом
Отправлено: Mog. от 26 Сентября 2002, 17:32:57
Мля! ответ написал, а логин/пароль вроде как бы и не надо вводить :), короче, предыдущий пост писал я , ленивый Mog.
Название: Анализ и изменение размеров картинки перед показом
Отправлено: mike от 26 Сентября 2002, 17:59:25
Привязанности привязанностями, но Image вроде как и в старых NN работает :)

Дык, а как еще на стороне клиента  (форум-то по JS ;))посмотреть параметры картинки, как не скриптом или какой-нить Явой? Яву учить лень, значит - JS. Ну а здесь - только DOM, браузеры и иже с ними... :o

На стороне сервера есть PerlMagick к ImageMagick\'у. Думается мне, там можно найти нужное.
Название: Анализ и изменение размеров картинки перед показом
Отправлено: Mog. от 26 Сентября 2002, 19:15:09
Цитировать
На стороне сервера есть

А вот это спорное утверждение, что есть. И что поставить дадут - не факт.

А на стороне клиента, тут ты прав - JS.
Но мне бы хоть приемлимый алгоритмик, а то чета я не вьезжаю, как так принять картинку и до анализа данных ее не показывать. Анализ и показ в принципе понятны даже мне.
Название: Анализ и изменение размеров картинки перед показом
Отправлено: Jslab от 26 Сентября 2002, 20:48:51
первичная загрузка скрытая(в невидимом слое иле фрейме), а после анализа загрузить уже то, что надо...
но перв.загрузка таких картинок (>600x800 >= 100k ) будет
заметно тормозить... - стоит пустить вначале "Loading..."  с небольшой, но красочной заставкой(дин.эффектом)...
Название: Анализ и изменение размеров картинки перед показом
Отправлено: Доктор от 27 Сентября 2002, 06:06:15
А в ПХП есть кул функция getimagesize
Название: Анализ и изменение размеров картинки перед показом
Отправлено: Mog. от 27 Сентября 2002, 07:54:15
Цитировать
в ПХП есть кул функция getimagesize

И что она делает? Если не секрет :)
Цитировать
первичная загрузка скрытая(в невидимом слое иле фрейме), а после анализа загрузить уже то, что надо...

грузить 2 раза? это немного не то, я об этом подумывал.
Название: Анализ и изменение размеров картинки перед показом
Отправлено: mike от 27 Сентября 2002, 11:23:07
Цитировать

первичная загрузка скрытая(в невидимом слое иле фрейме), а после анализа загрузить уже то, что надо...

грузить 2 раза? это немного не то, я об этом подумывал.


Можно грузить один раз, а потом изменять размер и показывать ;)

Кстати, с самого начала здесь есть немного нехороший фактор: если исходная картинка имеет размер, скажем, 1600x1200, а показывать ее надо как 800x600, то лучше ее все-таки предварительно обработать на стороне сервера , иначе пользователь может не дождаться загрузки...
Название: Анализ и изменение размеров картинки перед показом
Отправлено: Mog. от 27 Сентября 2002, 16:09:24
А можно просто узнать размер, без загрузки самой картинки? имеется ввиду клиентская сторона. Хотя наверно нет :(.
Название: Анализ и изменение размеров картинки перед показом
Отправлено: Mog. от 27 Сентября 2002, 16:17:53
И вообще! Имеет ли смысл ограничивать габариты? Если справа-снизу впринципе пространство ничем не ограничено.
А по поводу большого размера, там будет ограничение файлов, ну скажем, в 200 кб. Да и то сказать, закачиваться картинки будут сторонними юзерами. Не думаю, что ради прикола будут закачивать по 2-4 Мб , да и не получится ни хрена, ограниченный обьем закачки, однако.

Да. Чем дальше в лес - тем больше дров. Так и придется или это дело похерить или модулями заниматься :(
Название: Анализ и изменение размеров картинки перед показом
Отправлено: rembo от 27 Сентября 2002, 18:19:21
Цитировать
Чем дальше в лес
- тем ближе вылез... На стороне сервера все это делается.
Название: Анализ и изменение размеров картинки перед показом
Отправлено: Mog. от 29 Сентября 2002, 07:47:12
Цитировать
На стороне сервера все это делается

с помощью модулей, которых там отродясь небывало и, если учитывать, что хостинг бесплатный, никогда и не будет :(
Название: Анализ и изменение размеров картинки перед показом
Отправлено: Доктор от 29 Сентября 2002, 15:41:43
Если есть ПХП, то getimagesize тоже есть:)
Название: Анализ и изменение размеров картинки перед показом
Отправлено: AlieN от 29 Сентября 2002, 16:46:00
Сложно на примере показать?

$blabla=getimagesize("image.jpg");
echo "";
Название: Анализ и изменение размеров картинки перед показом
Отправлено: Mog. от 29 Сентября 2002, 18:40:13
Цитировать
$blabla=getimagesize("image.jpg");

как я понял получает данные, где
Цитировать
$blabla[0]
- ширина, а  [1] - высота
и после анализа ширины/высоты мона показать имайдж с соответствующими габаритами?
А как стыковать перл и пхп? Или на пхп все переписать?
Название: Анализ и изменение размеров картинки перед показом
Отправлено: Oak от 30 Сентября 2002, 02:31:40
Пиши все на PHP
или смотри похожую функцию (модуль) в perl