Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа с изображением (https://javascript.ru/forum/misc/2704-rabota-s-izobrazheniem.html)

LZD 02.02.2009 20:29

Работа с изображением
 
Здравствуйте!..помогите пожалуйста, блин очень надо..диплом горит.
Надо организовать изменение размера изображения с помощью мышки и его сохранение..нашла похожий пример,но тут все с объектами, мне бы попроще...
Думаю сделать так:узнать размер загруженного изображения и потом с помощью scrolla изменять его значение, но даже это не работает
function wh()
 { 
  var image = new Image();
  image.name = 'main';
  var w=image.width;
  alert(w);
  }

Андрей Параничев 02.02.2009 21:56

Четче сформулируйте задачу, что значит "изменение размера изображения с помощью мышки и его сохранение"?

ZoNT 02.02.2009 21:58

Надо ждать пока изображение загрузится (событие onload у изображения), только после этого смотреть его размеры.

LZD 03.02.2009 00:01

изменение размера скроллом на событии onmouseover у картинки.и сохранение картинки выбранного размера

LZD 03.02.2009 00:01

Zont
я делаю по событию onclick

Gvozd 03.02.2009 00:14

Попытаюсь поясить ваш код
function wh()
 { 
  var image = new Image();// СОЗДАЕТСЯ новый объект типа
  //image/src='http://....';//Вот так обычно делается предзагрузка рисунка
  image.name = 'main';//вы задаете ему свойство name(не знаю что это за свойство)
  var w=image.width;//вы выясняете ширину только что созданного объекта, а не того, на котором вы кликнули.учитывая что в нем нету изоюражения, то ничего адекватного вы не получите
  alert(w);
  }

Таким образом эта функция не имеет ничего общего с рисунком на котором вызвано событие.
правильно было бы написать так
<img src="..." onclick="wh(this)"

function wh(obj)
 { 
  var image = obj;
  //как-то так
  image.name = 'main';//ЧТО это за свойство?расскажите мне кто-нить?
  var w=image.width;
  alert(w);
  }

Андрей Параничев 03.02.2009 00:15

Ну ладно еще с изменением размера по скроллу (хотя перехват скролла, если вы конечно колесико мыши имеете в виду, не работает в Opera), но как вы сохранять то будете? Если вы измените размеры изображения на странице, бинарный код самого файла (который вы будете сохранять) не изменится. В общем еще раз прошу максимально полно описать задачу.

ZoNT 03.02.2009 00:27

Цитата:

Сообщение от Андрей Параничев
хотя перехват скролла, если вы конечно колесико мыши имеете в виду, не работает в Opera

прекрасно работает...
http://forum.htmlbook.ru/index.php?s...ndpost&p=83686

Gvozd 03.02.2009 00:31

Цитата:

Сообщение от Андрей Параничев
(хотя перехват скролла, если вы конечно колесико мыши имеете в виду, не работает в Opera)

странно.
вроде бы работает.
у меня вроде бы был проект, где обрабатывалось.
вот кажется тот кусок кода
//================================================
//-------- for mouse scrolling -------------------
//================================================

function handle(delta)
{
	tmpID = infoID - delta;
	if (tmpID < 1) tmpID = 1;
	if (tmpID > RequestCount) tmpID = RequestCount;
	activeCell = tmpID;
	LoadInfo();
}

function wheel(event)
{
	if (RequestCount == 0) return false;

	var delta = 0;
	if (!event)
			event = window.event;
	if (event.wheelDelta) {
			delta = event.wheelDelta/120;
//			if (window.opera)
//					delta = -delta;
	} else if (event.detail) {
			delta = -event.detail/3;
	}
	if (delta)
			handle(delta);
	if (event.preventDefault)
			event.preventDefault();
	event.returnValue = false;
}

if (window.addEventListener)
	window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;

//================================================
//-------- end for mouse scrolling ---------------
//================================================

КОД не мой, поэтому мог ошибся, но кажется именно этот кусок обрабатывал колесо мыши.
было этог год назад, а проверить не могу,ибо проект привязан к домену, а перегружать денвер для теста, мне сейчас категорически нельзя.
Завтра прочерю этот кусок кода сам, если никто не сделает раньше меня, и в случае своей неправоты извинюсь
PS и опять я подолгу пишу сообщения, которые становтся неактуальными, так как дублируют пост написанный быстрее моего.))))

Андрей Параничев 03.02.2009 00:35

ZoNT,
Gvozd,
Вау, а у меня не работало в опере, как не пытался. И на картах Гугла/Яндекса не приближает колесиком.
Значит настройка какая-нибудь сбилась, или просто глюк.


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