[C#]RGBtoHVS

Vector3 RGB2HSV(float r, float g, float b)
{
Vector3 vHVS; //x,y,z;
float min, max, delta;

min = Mathf.Min(r, g, b);
max = Mathf.Max(r, g, b);

vHVS.y = max / 255.0f * 100.0f; // v
delta = max - min;

if (max != 0)
vHVS.z = delta / max * 100.0f; // s

else {
// r = g = b = 0 // s = 0, v is undefined
vHVS.z = 0; //s
vHVS.x = -1; //h
return vHVS;
}

if (r == max)
vHVS.x = (g - b) / delta; // between yellow & magenta //h
else if (g == max)
vHVS.x = 2 + (b - r) / delta; // between cyan & yellow //h
else
vHVS.x = 4 + (r - g) / delta; // between magenta & cyan //h

vHVS.x *= 60; // degrees //h

if (vHVS.x < 0)
vHVS.x += 360; //h

return vHVS;
}

댓글

이 블로그의 인기 게시물

[gpt/gpt와 대화/번역]이미지생성형ai와 인공지능에 대하여

[AI요약/퍼플렉시티]게임산업의 침체와 한국게임업계의 희망

[C#]CS1612: 'List.this[int]'은(는) 변수가 아니므로 해당 반환 값을 수정할 수 없습니다.