/// ============================================================ /// <summary>找到指定颜色在调色板内的索引位置。</summary> /// <param name="color">颜色</param> /// <returns>索引位置</returns> /// ============================================================ public int FindPaletteIndex(Color color) { color = RQuantizationHelper.ConvertAlpha(color); int redIndex = color.R >> 5; int greenIndex = color.G >> 5; int blueIndex = color.B >> 6; return((redIndex << 5) + (greenIndex << 2) + blueIndex); }
/// ============================================================ /// <summary>增加一个新颜色。</summary> /// <param name="color">颜色</param> /// ============================================================ public void AddColor(Color color) { color = RQuantizationHelper.ConvertAlpha(color); int redIndex = color.R >> 5; int greenIndex = color.G >> 5; int blueIndex = color.B >> 6; _redSlots[redIndex].AddValue(color.R); _greenSlots[greenIndex].AddValue(color.G); _blueSlots[blueIndex].AddValue(color.B); }
/// ============================================================ /// <summary>找到指定颜色在调色板内的索引位置。</summary> /// <param name="color">颜色</param> /// <returns>索引位置</returns> /// ============================================================ public int FindPaletteIndex(Color color) { color = RQuantizationHelper.ConvertAlpha(color); int result; if (!_cache.TryGetValue(color, out result)) { result = RQuantizationHelper.GetNearestColor(_palette, color); _cache[color] = result; } return(result); }
/// ============================================================ /// <summary>增加一个新颜色。</summary> /// <param name="color">颜色</param> /// ============================================================ public void AddColor(Color color) { color = RQuantizationHelper.ConvertAlpha(color); SColorInfo value; if (_colorMap.TryGetValue(color, out value)) { value.IncreaseCount(); } else { SColorInfo colorInfo = new SColorInfo(color); _colorMap.Add(color, colorInfo); } }
/// ============================================================ /// <summary>增加一个新颜色。</summary> /// <param name="color">颜色</param> /// ============================================================ public void AddColor(Color color) { FPopularityColorSlot slot; color = RQuantizationHelper.ConvertAlpha(color); Int32 index = GetColorIndex(color); if (_colorMap.TryGetValue(index, out slot)) { slot.AddValue(color); } else { _colorMap[index] = new FPopularityColorSlot(color); } }
/// ============================================================ /// <summary>找到指定颜色在调色板内的索引位置。</summary> /// <param name="color">颜色</param> /// <returns>索引位置</returns> /// ============================================================ public int FindPaletteIndex(Color color) { color = RQuantizationHelper.ConvertAlpha(color); int result; if (!_cache.TryGetValue(color, out result)) { foreach (FMedianCutCube cube in _cubeList) { if (cube.IsColorIn(color)) { result = cube.PaletteIndex; } } } return(result); }
/// ============================================================ /// <summary>增加一个新颜色。</summary> /// <param name="color">颜色</param> /// ============================================================ public void AddColor(Color color) { color = RQuantizationHelper.ConvertAlpha(color); _colorList.Add(color); }
//============================================================ // <T>增加一个新颜色。</T> // // @param color 颜色 //============================================================ public void AddColor(Color color) { color = RQuantizationHelper.ConvertAlpha(color); _root.AddColor(color, 0, this); }
//============================================================ // <T>找到指定颜色在调色板内的索引位置。</T> // // @param color 颜色 // @return 索引位置 //============================================================ public int FindPaletteIndex(Color color) { color = RQuantizationHelper.ConvertAlpha(color); return(_root.GetPaletteIndex(color, 0)); }