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

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

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

Регистрация: Mar 2009
Адрес: Екатеринбург
Сообщений: 30
Отправить сообщение для Maraekb с помощью ICQ
По умолчанию Определение количества того или иного цвета...

Подскажите пожалуйста возможно ли определение количество того или иного цвета у загружаемой картинки


Последний раз редактировалось Maraekb; 27.02.2010 в 16:08. Причина: безграматность:rolleyes:
Старый 27.02.2010, 16:52
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
у картинки есть цвет? это у картинки Малевича есть цвет — черный =) и квадратный...
__________________
Поймай яблоко 2!

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
если я правильно понял и нужно получить процентное содержание пикселей определенного цвета в битмапдате, то можно так

Код AS3:
function getColorPercent(bmd:BitmapData, sColor:uint):Number
{
	var w:int = bmd.width;
	var h:int = bmd.height;
	var totalPixels:int = w * h;
	var count:int;
 
	for(var i:int = 0; i < w; i++){
		for(var j:int = 0; j < h; j++){
			var col:uint = bmd.getPixel(i, j);
			if(col == sColor)count++;
		}
	}
 
	return count * 100 / totalPixels;
}
__________________
freelance | Раздор

Старый 01.03.2010, 10:45
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 4  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Ну может некое среднее по больнице - типа Розовый период Пикассо))))
т.е. оттенки розового преобладают.
Вопрос сложный на самом деле.. тут надо более точно сформулировать ваши требования.
Какое количество цвета по вашему у равномерного градиента от чистокрасного FF00FF к чисто зелёному 00FF00 ?
__________________
Отряд Котовскага

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Цитата:
Сообщение от Котяра Посмотреть сообщение
...от чистокрасного FF00FF...
FF00FF это не красный

Добавлено через 43 минуты
например, красно-зеленый градиент 100х100

Код AS3:
var shape:Shape = new Shape();
 
shape.graphics.beginGradientFill('linear', [0xff0000, 0x00ff00, 0x00ff00], [1, 1, 1], [140, 250, 255]);
shape.graphics.drawRect(0, 0, 100, 100);
shape.graphics.endFill();
 
var bmd:BitmapData = new BitmapData(shape.width, shape.height)
bmd.draw(shape);
 
function getColorPercent(bmd:BitmapData, sColor:uint):Number
{
	var w:int = bmd.width;
	var h:int = bmd.height;
	var totalPixels:int = w * h;
	var count:int;
 
	for(var i:int = 0; i < w; i++){
		for(var j:int = 0; j < h; j++){
			var col:uint = bmd.getPixel(i, j);
			if(col == sColor)count++;
		}
	}
 
	return count * 100 / totalPixels;
}
 
var redPercent:Number = getColorPercent(bmd, 0xff0000);
trace("содержание чистого красного = " + redPercent + " %"); // 11%
var greenPercent:Number = getColorPercent(bmd, 0x00ff00);
trace("содержание чистого зеленого = " + greenPercent + " %"); // 4%
__________________
freelance | Раздор

Старый 02.03.2010, 10:17
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 6  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Очепятался - должно быть 0xFF0000..
я вообще не по поводу getColorPercent спрашивал, а у топикстартера - какое значение он хотел бы получить от градиентной картинки.. Исходя из этого уже придумывать алгоритм..
__________________
Отряд Котовскага

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

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

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


 


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


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