LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
26.05.2012, 11:16:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Как обесцветить изображения на сайте?  (Прочитано 1516 раз)
0 Пользователей и 1 Гость смотрят эту тему.
7Rei
Давно я тут
****

Репутация: +20/-0
Offline Offline

Пол: Мужской
Сообщений: 358


« : 22.07.2010, 20:31:34 »

Добрый вечер.
Необходимо на сайте все изображения сделать черно-белыми, и чтобы при наведении они становились цветными.
Вариант, с подстановкой заранее подготовленных изображений через ксс не подходит, так как изображений много.

В поиске нашел такой вариант:
<a href="http://fantasyflash.ru">
<img src="http://fantasyflash.ru/avatar/ava_cat/image/cat31.jpg"
style="filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)"
onmouseout="this.style.filter='progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)'"
onmouseover="this.style.filter='progid:DXImageTransform.Microsoft.BasicImage(grayscale=0)'">
</a>

К сожалению работает только в ие.
Кто нибудь стакивался с подобной задачей?

Спасибо. С Ув.
Записан
AlterEgo
Осваиваюсь на форуме
***

Репутация: +39/-2
Offline Offline

Пол: Мужской
Сообщений: 100



« Ответ #1 : 24.07.2010, 08:15:26 »

Для остальных можно использовать canvas
Вот пример:_http://deer.org.ua/2009/11/15/1/
Или поискать в Google по ключевым словам: javascript grayscale image
Есть ещё решения на основе SVG и VML. Но там свои ограничения.
Записан
strannik-yura
Завсегдатай
*****

Репутация: +40/-1
Offline Offline

Пол: Мужской
Сообщений: 562


:)


« Ответ #2 : 24.07.2010, 11:11:41 »

Для остальных можно использовать canvas
Вот пример:_http://deer.org.ua/2009/11/15/1/
Или поискать в Google по ключевым словам: javascript grayscale image
Есть ещё решения на основе SVG и VML. Но там свои ограничения.

этот тоже работает только в IE
Записан
volod3000
Давно я тут
****

Репутация: +48/-0
Offline Offline

Пол: Мужской
Сообщений: 361


Чтобы ничего не делать, нужно многое сделать.


« Ответ #3 : 24.07.2010, 11:12:23 »

Вот готовое решение в виде плагина
Записан
AlterEgo
Осваиваюсь на форуме
***

Репутация: +39/-2
Offline Offline

Пол: Мужской
Сообщений: 100



« Ответ #4 : 24.07.2010, 11:41:17 »

этот тоже работает только в IE
Когда это canvas стал работать только в ie? Насчет фильтра grayscale не спорю. Поэтому и предлагается совместить оба метода.
Записан
volod3000
Давно я тут
****

Репутация: +48/-0
Offline Offline

Пол: Мужской
Сообщений: 361


Чтобы ничего не делать, нужно многое сделать.


« Ответ #5 : 24.07.2010, 13:19:36 »

Вот способ работает на все 100:

Создаем два php файла 1.php и 2.php

1.php :

Код
function show_grayscale($filename){
 $img_size = GetImageSize($filename);
 $width = $img_size[0];
 $height = $img_size[1];
 $img = imageCreate($width,$height);
 for ($c = 0; $c < 256; $c++) {
   ImageColorAllocate($img, $c,$c,$c);
 }
 $img2 = ImageCreateFromJpeg($filename);
 ImageCopyMerge($img,$img2,0,0,0,0, $width, $height, 100);
 
 header("Content-type: image/jpeg");
 imagejpeg($img);
 
 imagedestroy($img);
}
 
echo $mim = show_grayscale("77.jpeg");

2.php :

Код
echo '<script type="text/javascript">
function chen_sec()
   {
      document.images.myimage.src = "77.jpeg";
}
function chen_fir()
   {
      document.images.myimage.src = "1.php";
}
</script>'
;
 
 
echo '<img id="myimage" src="1.php"  onmouseover="chen_sec()" onmouseout="chen_fir()" />';
 

Файл 1.php делает изображение черно-белым, а файл 2.php совершает подмену.
« Последнее редактирование: 24.07.2010, 13:27:07 от volod3000 » Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet