Java で my color エディターを実装しようとしました。シンプルなソフトウェアである必要があります。ユーザーは 16 進数の RGB で色を入力します (例: 0xFF00FF)。色相、彩度、彩度、明度を計算する方法は知っていますが、この特定の色に色相値を加算または減算する方法は? これが謎です。
使用するアルゴリズムまたは数式はありますか?
今はこの方法を使っていますが、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;
}