Просмотр полной версии : Определение количества того или иного цвета...
Подскажите пожалуйста возможно ли определение количество того или иного цвета у загружаемой картинки:o:rolleyes:
Zebestov
27.02.2010, 16:52
у картинки есть цвет? это у картинки Малевича есть цвет — черный =) и квадратный...
если я правильно понял и нужно получить процентное содержание пикселей определенного цвета в битмапдате, то можно так
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;
}
Ну может некое среднее по больнице - типа Розовый период Пикассо))))
т.е. оттенки розового преобладают.
Вопрос сложный на самом деле.. тут надо более точно сформулировать ваши требования.
Какое количество цвета по вашему у равномерного градиента от чистокрасного FF00FF к чисто зелёному 00FF00 ?
...от чистокрасного FF00FF...
FF00FF это не красный:)
Добавлено через 43 минуты
например, красно-зеленый градиент 100х100
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%
Очепятался - должно быть 0xFF0000..
я вообще не по поводу getColorPercent спрашивал, а у топикстартера - какое значение он хотел бы получить от градиентной картинки.. Исходя из этого уже придумывать алгоритм..
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.