public static Color GetColorFromHSV(FastPixelHSV pixel) { int R = 0, G = 0, B = 0; HsvToRgb(pixel.GetHue(), pixel.GetSaturation() / 100.0, pixel.GetValue() / 100.0, out R, out G, out B); return(Color.FromArgb(R, G, B)); }
public static FastPixelHSV GetAverageColor(FastBitmapHSV bitmap, Rectangle bounds) { float hueAcc = 0.0f; float satAcc = 0.0f; float valAcc = 0.0f; float scale = 1.0f / bounds.Width; for (int idx = 0; idx < bounds.Width; idx++) { FastPixelHSV testPx = bitmap.GetPixel(bounds.X + idx, bounds.Y); hueAcc += testPx.GetHue(); satAcc += testPx.GetSaturation(); valAcc += testPx.GetValue(); } FastPixelHSV avgPx = new FastPixelHSV(); avgPx.SetHSV((int)(hueAcc * scale), (int)(satAcc * scale), (int)(valAcc * scale)); return(avgPx); }