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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.06.2006, 20:39
Iv вне форума Посмотреть профиль Отправить личное сообщение для Iv Посетить домашнюю страницу Iv Найти все сообщения от Iv
  № 11  
Ответить с цитированием
Iv
 
Аватар для Iv

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
Цитата:
Сообщение от iNils
Причем тут это? Надо цвет RGB сначала перегнать в LAB, потом изменить значение L, и обратно перегнать RGB.
- что значит не при чем?! тинт к белому или черному даст нужный результат. Более того, использование именно tint я бы предпочел, даже если в данный момент не стоит задача tint как таковая, поскольку может понадобиться.
Если нужно взять цвет из безопасной поллитры, то можно перегнать результат.

Старый 12.06.2006, 20:42
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 12  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Ив, мы о разных вещах говорим. Ты про манипуляции с цветом клипа, а я с самим цветом.
И вопрос на сколько я понял, был задан именно про сам цвет.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 12.06.2006, 21:02
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 13  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
Код:
class col {
	
	static function toHSB(rgb:Number):Object{
		var r = (rgb >> 16) & 0xFF;
		var g = (rgb >> 8) & 0xFF;
		var b = rgb & 0xFF;
		var hsb = new Object();
		hsb.b = Math.max(Math.max(r, g), b);
		var min = Math.min(Math.min(r, g), b);
		hsb.s = (hsb.b<=0) ? 0 : Math.round(100*(hsb.b-min)/hsb.b);
		hsb.b = Math.round((hsb.b/255)*100);
		hsb.h = 0;
		if ((r == g) && (g == b)) {hsb.h = 0;} 
		else if (r>=g && g>=b) {	hsb.h = 60*(g-b)/(r-b);} 
		else if (g>=r && r>=b) {hsb.h = 60+60*(g-r)/(g-b);} 
		else if (g>=b && b>=r) {hsb.h = 120+60*(b-r)/(g-r);} 
		else if (b>=g && g>=r) {hsb.h = 180+60*(b-g)/(b-r);} 
		else if (b>=r && r>=g) {hsb.h = 240+60*(r-g)/(b-g);} 
		else if (r>=b && b>=g) {hsb.h = 300+60*(r-b)/(r-g);} 
		else {	hsb.h = 0;	}
		hsb.h = Math.round(hsb.h);
		return hsb;
	}
	
	
	static function toRGB(hsb:Object):Number {
		var r,g,b,rgb;
		var h = Math.round(hsb.h);
		var s = Math.round(hsb.s*255/100);
		var v = Math.round(hsb.b*255/100);
		if(s == 0) {
			r = g = b = v;
		} else {
			var t1 = v;	
			var t2 = (255-s)*v/255;	
			var t3 = (t1-t2)*(h%60)/60;
			if(h==360) h = 0;
			if(h<60) {r=t1;	b=t2;	g=t2+t3}
			else if(h<120) {g=t1;	b=t2;	r=t1-t3}
			else if(h<180) {g=t1;	r=t2;	b=t2+t3}
			else if(h<240) {b=t1;	r=t2;	g=t1-t3}
			else if(h<300) {b=t1;	g=t2;	r=t2+t3}
			else if(h<360) {r=t1;	g=t2;	b=t1-t3}
			else {r=0;	g=0;	b=0}
		}
		//trace(r+' '+g+' '+b);
		rgb = r << 16 | g << 8 | b;
		return rgb;
	}

	static function modRGB(rgb:Number, s:Number, b:Number):Number {
		var hsb:Object = col.toHSB(rgb);
		hsb.s+=s; 
		if (hsb.s>100) {hsb.s=100}
		if (hsb.s<0) {hsb.s=0}
		hsb.b+=b;
		if (hsb.b>100) {hsb.b=100}
		if (hsb.b<0) {hsb.b=0}
		return (col.toRGB(hsb));		
	}

}
как использовать:
Код:
var color1=0xEEEEEE;
var color2=col.modRGB(color1, 0, 10);//увеличивает яркость
var color3=col.modRGB(color1, 0, -10);//уменьшает яркость
(что происходит: цвет из ргб конвертируется в HSB, меняется яркость и цвет конвертируется обратно )

кроме того этот класс может менять насыщенность цвета, ну и конвертировать туда и обратно
__________________
Хороший отдых - половина работы.


Последний раз редактировалось artcraft; 12.06.2006 в 21:06.
Старый 12.06.2006, 21:05
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 14  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Кто автор кода? Судя по имени класса, название изменено.

Старый 12.06.2006, 21:19
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 15  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от __etc
Кто автор кода? Судя по имени класса, название изменено.
Похоже на Peter Hall.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 12.06.2006, 22:09
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 16  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
алгоритм конвертирования в HSB не помню где взял - немного поменял и добавил функцию modRGB
__________________
Хороший отдых - половина работы.

Старый 12.06.2006, 22:11
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 17  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
Можно переименовать в "class artcraft.col" или "class cz.artcraft.color.utils"
__________________
Хороший отдых - половина работы.

Старый 12.06.2006, 22:22
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 18  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Отлично! Осталось привести его в порядок, чтобы не стыдно было использовать...

Старый 12.06.2006, 22:33
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 19  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
а что там не так?
__________________
Хороший отдых - половина работы.

Старый 12.06.2006, 22:48
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 20  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Неверное имя класса. Имя с прописной буквы должно начинаться. Отсутствие типизации (местами есть), не объявлен тип метода. И это явно еще не все, это то, что можно увидеть на первый взгляд, без детального разбора.

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:54.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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