Ejemplo n.º 1
0
        /// <summary>
        /// See <see cref="BaseColorCache.OnGetColorPaletteIndex"/> for more details.
        /// </summary>
        protected override void OnGetColorPaletteIndex(Color color, out Int32 paletteIndex)
        {
            BucketInfo bucket     = GetBucket(color);
            Int32      colorCount = bucket.Colors.Count();

            paletteIndex = 0;

            if (colorCount == 1)
            {
                paletteIndex = bucket.Colors.First().Key;
            }
            else
            {
                Int32 index      = 0;
                Int32 colorIndex = ColorModelHelper.GetEuclideanDistance(color, ColorModel, bucket.Colors.Values.ToList());

                foreach (Int32 colorPaletteIndex in bucket.Colors.Keys)
                {
                    if (index == colorIndex)
                    {
                        paletteIndex = colorPaletteIndex;
                        break;
                    }

                    index++;
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// See <see cref="BaseColorCache.OnGetColorPaletteIndex"/> for more details.
        /// </summary>
        protected override void OnGetColorPaletteIndex(TextureBitmap.Color color, out Int32 paletteIndex)
        {
            Dictionary <Int32, TextureBitmap.Color> candidates = root.GetPaletteIndex(color, 0);

            paletteIndex = 0;
            Int32 index      = 0;
            Int32 colorIndex = ColorModelHelper.GetEuclideanDistance(color, ColorModel, candidates.Values.ToList());

            foreach (Int32 colorPaletteIndex in candidates.Keys)
            {
                if (index == colorIndex)
                {
                    paletteIndex = colorPaletteIndex;
                    break;
                }

                index++;
            }
        }
 /// <summary>
 /// See <see cref="BaseColorCache.OnGetColorPaletteIndex"/> for more details.
 /// </summary>
 protected override void OnGetColorPaletteIndex(Color color, out Int32 paletteIndex)
 {
     paletteIndex = ColorModelHelper.GetEuclideanDistance(color, ColorModel, palette);
 }