Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: Oxy в May 23, 2011, 17:17



Титла: JAVA, RGB + малко математика
Публикувано от: Oxy в May 23, 2011, 17:17
Здравейте! Преди няколко дни се сблъсках с интересен проблем, който не знам как да реша...
Сценария е следния:
В джава чета някакво ПНГ с 24 битови цветове(тоева са по 8 бита на цвят зелен/червен/син) тоест по 256 комбинации...  + алфа канал сега въпроса е как да сметна цвета от 8 битово червено в 3 битово червено...
въпроса е по-скоро математически, тъй като ргб пространството е 3д, тоест даден цвят = (червена стойност, зелена стойност, синя стойност)
разстоянието между 2 точки мога да го намеря, но не мога да намаля дълбочината на цветовете.. формулата за превръщане от 8бит червен канал  в 1 битов червен канал е следната:

int r = (c.getRed() + 128) / 256 * 255;
като c e обект class Color и после това връща 2 стойности 0 или 255, това съответно е едно битова стойност на канала...
някакви идеи за математиката на това чудо?