Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 07.08.2008, 00:23
Division вне форума Посмотреть профиль Отправить личное сообщение для Division Найти все сообщения от Division
  № 9  
Ответить с цитированием
Division
 
Аватар для Division

Регистрация: Jul 2008
Адрес: Украина, Херсон
Сообщений: 635
Отправить сообщение для Division с помощью ICQ
Внесу небольшие поправки, может кому-то пригодится
Цитата:
Сообщение от Волгоградец
matrix = matrix.concat([0.4, 0.4, 0.4, 0, 0]);
matrix = matrix.concat([0.4, 0.4, 0.4, 0, 0]);
matrix = matrix.concat([0.4, 0.4, 0.4, 0, 0]);
matrix = matrix.concat([0, 0, 0, 1, 0]);
Картинки то станут серыми, но видимо это не совсем корректно.
Наткнулся на сайт:
http://www.microsoft.com/Rus/Msdn/Ac.../Data/439.mspx

Оттуда видно что в grayscale цвет расчитывается как
GrayScale = (77 * R + 150 * G + 28 * B)/ 255

То есть матрица должна принять такой вид:
Код:
matrix = matrix.concat([77/255, 150/255, 25/255, 0, 0]);
matrix = matrix.concat([77/255, 150/255, 25/255, 0, 0]);
matrix = matrix.concat([77/255, 150/255, 25/255, 0, 0]);
matrix = matrix.concat([0, 0, 0, 1, 0]);
Зная это можно легко делать анимацию перехода из grayscale в нормальные цвета и наоборот.
Вот код, может кому пригодится:
Код:
	private function MakeGray() {
		var matrix:Array = new Array();
		var r = 77/255;
		var g = 150/255;
		var b = 25/255;

		matrix = matrix.concat([r*zerokoef+1-zerokoef, g*zerokoef, b*zerokoef, 0, 0]);
		matrix = matrix.concat([r*zerokoef, g*zerokoef+1-zerokoef, b*zerokoef, 0, 0]);
		matrix = matrix.concat([r*zerokoef, g*zerokoef, b*zerokoef+1-zerokoef, 0, 0]);
		matrix = matrix.concat([0, 0, 0, 1, 0]);
		
		var filter:BitmapFilter = new ColorMatrixFilter(matrix);
		this.filters = new Array(filter);		
	}
zerokoef изменяется от 0 до 1.
Если 1 - изображение grayscale. Чем ближе к 0 - тем оно "цветнее".
__________________
while(1) {}


Последний раз редактировалось Division; 07.08.2008 в 00:32.
Создать новую тему   Часовой пояс GMT +4, время: 06:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 06:16.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.