Понижение градации цветов.
Уважаемые, не подскажите, какие алгоритмы можно использовать и/или где найти их описание в инете для понижения градации цветов на картинке/рисунке/фотогрфии (т.е. скажем фотку из 16 млн цветов сделать 256)? Или подскажите, пожалуйста, в каком направлении двигаться.
Приветствую!
Уважаемые, не подскажите, какие алгоритмы можно использовать и/или где найти их описание в инете для понижения градации цветов на картинке/рисунке/фотогрфии (т.е. скажем фотку из 16 млн цветов сделать 256)? Или подскажите, пожалуйста, в каком направлении двигаться.
Если делать это "ручками", то я бы внес все в массив [x][y], т.е. в каждом э-те массива(int) хранится цвет пикселя. Потом создал бы второй массив [x][y], но уже (byte), куда и кладу конечные данные.
Второй этап можно провести просто, а можно понапридумывать кучу всяких размазываний и все такое. Итак:
1. Смотрим, к какому из 256 цветов в каждом пикселе первого массива соответствует данный. Найденный цвет вводим во второй массив в соответствующую ячейку. Такой метод прост, но дает на гладких и переливчатых изображениях жуткий полосочный эффект!
2. Сложный вариант. На самом деле похож на первый, но разница - рассматривается не оди пиксел за шаг, а тот, на котором "курсор" и по 3 вокруг него, например. Берешь усредненное значения для каждого квадрата [2х2], и если цвет по середине между теми, что в палитре на 256, то делаешь 2 пиксела одним, 2 другим (по диагонали).
Последняя технология достаточно сложна, поэтому лучше если для себя, то пользоваться Photoshop, там же есть свои макросы :)