コード例 #1
0
ファイル: ColorIndex.cs プロジェクト: Stonefacer/Ext
        private int MinimalRange(Color cl)
        {
            double res   = ColorAndImageFactory.GetColorRangeQ(cl, _Colors[0]);
            int    resId = -1;

            for (int i = 1; i < _Colors.Count; i++)
            {
                var dif = ColorAndImageFactory.GetColorRangeQ(cl, _Colors[i]);
                if (dif < res)
                {
                    res   = dif;
                    resId = i;
                }
            }
            return(resId);
        }
コード例 #2
0
ファイル: ColorIndex.cs プロジェクト: Stonefacer/Ext
        private double MinimalRange(out int color0, out int color1)
        {
            double res = double.MaxValue;

            color0 = 0;
            color1 = 0;
            for (int i = 0; i < _Colors.Count - 1; i++)
            {
                double range = ColorAndImageFactory.GetColorRangeQ(_Colors[i], _Colors[i + 1]);
                if (range < res)
                {
                    res    = range;
                    color0 = i;
                    color1 = i + 1;
                }
            }
            return(res);
        }
コード例 #3
0
        private void OptimizePNGStep0(Bitmap image)
        {
            Color  prev       = Color.White;
            double difference = 1.0 - (double)numericUpDown1.Value / 100.0;

            for (int i = 1; i < image.Height - 1; i++)
            {
                for (int j = 1; j < image.Width - 1; j++)
                {
                    var color = image.GetPixel(j, i);
                    if (ColorAndImageFactory.GetColorRangeQ(prev, color) < difference)
                    {
                        image.SetPixel(j, i, prev);
                    }
                    else
                    {
                        prev = color;
                    }
                }
                _progress.OperationsDone++;
            }
        }