![]() |
Усредненный цвет области изображения
Подскажите, пожалуйста, как получить некое среднее значение цвета в Битмапдате или загруженном изображении?
Т.е, например, есть у меня изображение, и я хочу рамку для него перекрашивать в цвет подходящий для этой фотки. Может кто алгоритмом поможет, может есть уже готовое решение. |
Можно посчитать именно среднее - сложить RGB-значения всех точек в заданной области и поделить на количество точек. До этого можно уменьшить изображение с интерполяцией во временный буфер, чтобы перебирать меньше точек.
|
Можно использовать метод
Код AS3:
Нахождение контрастного цвета - отнимаем от 0xFFFFFF(белый цвет) найденное значение (в нашем случае 0xAABBCC), итоговый цвет - контрастный (у нас он равен 0x554433). Добавлено через 4 минуты http://f.imagehost.org/0373/Colors.png |
вот что у меня получилось методом "тупого" нахождения средних значений цветовых компонент
Код AS3:
Может есть более гармоничный (в плане результирующего цвета) алгоритм? С histogram() идея понятна, но это все таки под 10-ку, пока не очень хочется на нее ориентироваться.... |
Попробуйте всё-же уменьшать изображение перед циклом, а также не перебирать точки в центре изображения (только края некоторой ширины).
|
Можно рисовать битмап в другой, который в 2 раза меньше, потом полученный битмап опять рисовать в уменьшенный в два раза, и т.д. пока не получишь изображение в 1 пиксел =)
|
А можно вообще уменьшить до 1 пикселя и взять его цвет :)
|
>>и т.д. пока не получишь изображение в 1 пиксел =)
а чего не сразу-то Код AS3:
|
mre, silin не, так не сработает, надо постепенно в два раза уменьшать :)
Кстати, в играх так расчитывается средняя освещенность сцены, когда используется HDR с адаптацией Вобще, этот метод имеет смысл использовать если рисование картинки происходит при помощи видяхи, а не процессора. Вроде как в 9 и 10 плеере хардварное рисование, поэтому пусть ГПУ сам считает средний цвет =) |
Цитата:
|
| Часовой пояс GMT +4, время: 15:57. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.