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); }
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); }
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++; } }