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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.11.2010, 18:54
MyChemic вне форума Посмотреть профиль Отправить личное сообщение для MyChemic Найти все сообщения от MyChemic
  № 1  
Ответить с цитированием
MyChemic

Регистрация: Jan 2007
Сообщений: 91
По умолчанию определение темный пиксел под мышкой или светлый

Есть функция, которая распознает цвет пикселя под мышкой, как мне определить к светлым или темным тонам относится цвет, естественно надо программно определить?

Старый 09.11.2010, 19:21
TWETTI вне форума Посмотреть профиль Отправить личное сообщение для TWETTI Найти все сообщения от TWETTI
  № 2  
Ответить с цитированием
TWETTI
 
Аватар для TWETTI

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
Функция называется getPixel(). Возвращает целое число в формате RGB. Яркость определяют по формуле (0.2126*R) + (0.7152*G) + (0.0722*B).

Старый 09.11.2010, 19:23
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 3  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Да, цвет под мышкой можно узнать. При клике тогда нужно отрисовать сцену в битмапДату и применить к ней метод getPixel(x,y). - выводит цвет пиксела.

Добавлено через 58 секунд
Цитата:
Сообщение от TWETTI Посмотреть сообщение
Яркость определяют по формуле (0.2126*R) + (0.7152*G) + (0.0722*B).
Про яркость спасибо, не знал!!!

Старый 09.11.2010, 19:27
TWETTI вне форума Посмотреть профиль Отправить личное сообщение для TWETTI Найти все сообщения от TWETTI
  № 4  
Ответить с цитированием
TWETTI
 
Аватар для TWETTI

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
samana, а ты знаешь как из RGB выделить отдельные цвета R,G и B?

Старый 09.11.2010, 19:56
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 5  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Сообщение от TWETTI Посмотреть сообщение
samana, а ты знаешь как из RGB выделить отдельные цвета R,G и B?
Код AS3:
r = (color >> 16) & 0xFF;
g = (color >> 8) & 0xFF;
b = color & 0xFF;

Старый 09.11.2010, 21:56
MyChemic вне форума Посмотреть профиль Отправить личное сообщение для MyChemic Найти все сообщения от MyChemic
  № 6  
Ответить с цитированием
MyChemic

Регистрация: Jan 2007
Сообщений: 91
Да как цвет пикселя узнать я знаю, меня именно интересует принадлежность цвета к темным оттенкам или светлым. То есть у меня есть 2 стейта объекта: черный и белый, этот объект инициализируется когда я вожу мышкой по некоторому полю, если поле имеет темный цвет, то объект принимает светлый стейт, иначе темный. Вот я хочу диапазон цветов узнать, до которого светлые, после которого темные. Как если бы взял шкалу от белого до черного и разделил бы пополам, до 50% я бы брал один стейт, после другой

Старый 09.11.2010, 22:31
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 7  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
и чем вас не устроил предложенный вариант?

Старый 09.11.2010, 22:33
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 8  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
При клике тогда нужно отрисовать сцену в битмапДату
Всю сцену - дороговато, зато можно сделать BitmapData размером 1x1 и отрисовывать туда stage со смещением, равным координатам мыши.
И просто анализировать цвет этого единственного пикселя.

Старый 09.11.2010, 23:38
TWETTI вне форума Посмотреть профиль Отправить личное сообщение для TWETTI Найти все сообщения от TWETTI
  № 9  
Ответить с цитированием
TWETTI
 
Аватар для TWETTI

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
Вот код:
Код AS3:
package
{
	import flash.display.Bitmap;
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.net.URLRequest;
 
	public class Main extends Sprite
	{
		private var loader:Loader;
 
		public function Main()
		{
			loader = new Loader();
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
			loader.load(new URLRequest("img.jpg"));
 
			stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
		}
 
		private function onMove(e:MouseEvent):void 
		{
			var color:uint = (loader.content as Bitmap).bitmapData.getPixel(mouseX, mouseY);
			var r:uint = (color >> 16) & 0xFF;
			var g:uint = (color >> 8) & 0xFF;
			var b:uint = color & 0xFF;
			var light:Number = (0.2126*r) + (0.7152*g) + (0.0722*b);
			// от 0 черный до 255 белый
			if (light >= 127.5) trace("светлый");
			else trace("темный");
		}
 
		private function onComplete(e:Event):void 
		{
			addChild(loader.content);
		}
	}
}

Старый 10.11.2010, 00:15
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 10  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от TWETTI Посмотреть сообщение
samana, а ты знаешь как из RGB выделить отдельные цвета R,G и B?
Вижу что за меня уже ответили, но отвечу - да знаю, у меня была записана эта "формула" в книжке.

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

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

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


 


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


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