Показать сообщение отдельно
Старый 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 | Раздор