0
이 코드는이 포럼에서 발견되었지만 코드에는 의심의 여지가 있습니다. 이 코드에 HSV/RGB 색상 공간 변환
- "안녕 = INT Convert.ToInt32 (Math.Floor (색조/60)) 6 %;" 왜 완전 역은 6에 의한 모듈러스인가? (% 6)
왜 "값 = 값 * 255"값에 255가 곱해 집니까?
이 연구 보고서 (p-15, p-16)를 참조하면 동일한 알고리즘이 논의되지만 이러한 차이점을 발견했습니다.
INT 대하여
http://www.poynton.com/PDFs/coloureq.pdf
public static Color ColorFromHSV(double hue, double saturation, double value) { int hi = Convert.ToInt32(Math.Floor(hue/60)) % 6; double f = hue/60 - Math.Floor(hue/60); value = value * 255; int v = Convert.ToInt32(value); int p = Convert.ToInt32(value * (1 - saturation)); int q = Convert.ToInt32(value * (1 - f * saturation)); int t = Convert.ToInt32(value * (1 - (1 - f) * saturation)); if (hi == 0) return Color.FromArgb(255, v, t, p); else if (hi == 1) return Color.FromArgb(255, q, v, p); else if (hi == 2) return Color.FromArgb(255, p, v, t); else if (hi == 3) return Color.FromArgb(255, p, q, v); else if (hi == 4) return Color.FromArgb(255, t, p, v); else return Color.FromArgb(255, v, p, q); } public void convertToHSV(Color color, out double hue, out double saturation, out double value) { int max = Math.Max(color.R, Math.Max(color.G, color.B)); int min = Math.Min(color.R, Math.Min(color.G, color.B)); hue = color.GetHue(); saturation = (max == 0) ? 0 : 1d - (1d * min/max); value = max/255d; }
는 무엇입니까? 친구들이 나를 도와 주네. –