我試圖用Java實現我的顏色編輯器。它應該是一個簡單的軟件。用戶將以十六進制RGB輸入顏色,例如:0xFF00FF。我知道如何計算色調,色度,飽和度和亮度,但是如何將Hue值添加或減去該給定顏色?這是個謎。如何以編程方式將Hue添加到給定顏色?
是否有任何算法或公式可供使用?
現在我使用這種方法,但我認爲結果與Adobe Photoshop有所不同。
public void addHue(float addHue) {
float c = getChroma();
addHue %= 6;
if (addHue < 2) {
float n = 1 - green;
green = green + addHue * n;
} else if (addHue < 4) {
addHue -= 2;
float n = 1 - blue;
blue = blue + addHue * n;
} else if (addHue < 6) {
addHue -=4;
float n = 1 - red;
red = red + addHue * n;
}
if (green > 1) green = 1;
else if (green < 0) green = 0;
if (red > 1) red = 1;
else if (red < 0) red = 0;
if (blue > 1) blue = 1;
else if (blue < 0) blue = 0;
}
你爲什麼要添加色相?你想達到什麼目的?這是一個用戶控件嗎? – 2011-03-22 09:20:42