![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Подскажите пожалуйста возможно ли определение количество того или иного цвета у загружаемой картинки
![]() ![]() Последний раз редактировалось Maraekb; 27.02.2010 в 16:08. Причина: безграматность:rolleyes: |
|
|||||
|
Lorem ipsum
|
у картинки есть цвет? это у картинки Малевича есть цвет — черный =) и квадратный...
__________________
Поймай яблоко 2! |
|
|||||
|
если я правильно понял и нужно получить процентное содержание пикселей определенного цвета в битмапдате, то можно так
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; } |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Ну может некое среднее по больнице - типа Розовый период Пикассо))))
т.е. оттенки розового преобладают. Вопрос сложный на самом деле.. тут надо более точно сформулировать ваши требования. Какое количество цвета по вашему у равномерного градиента от чистокрасного FF00FF к чисто зелёному 00FF00 ?
__________________
Отряд Котовскага |
|
|||||
|
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% |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Очепятался - должно быть 0xFF0000..
я вообще не по поводу getColorPercent спрашивал, а у топикстартера - какое значение он хотел бы получить от градиентной картинки.. Исходя из этого уже придумывать алгоритм..
__________________
Отряд Котовскага |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|