Generate Color Gradient in C#

后端 未结 6 842
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-08 19:50

My question here is similar to the question here, except that I am working with C#.

I have two colors, and I have a predefine steps. How to retrieve a list of C

6条回答
  •  独厮守ぢ
    2020-12-08 20:22

        public static List GetGradientColors(Color start, Color end, int steps)
        {
            return GetGradientColors(start, end, steps, 0, steps - 1);
        }
    
        public static List GetGradientColors(Color start, Color end, int steps, int firstStep, int lastStep)
        {
            var colorList = new List();
            if (steps <= 0 || firstStep < 0 || lastStep > steps - 1)
                return colorList;
    
            double aStep = (end.A - start.A) / steps;
            double rStep = (end.R - start.R) / steps;
            double gStep = (end.G - start.G) / steps;
            double bStep = (end.B - start.B) / steps;
    
            for (int i = firstStep; i < lastStep; i++)
            {
                var a = start.A + (int)(aStep * i);
                var r = start.R + (int)(rStep * i);
                var g = start.G + (int)(gStep * i);
                var b = start.B + (int)(bStep * i);
                colorList.Add(Color.FromArgb(a, r, g, b));
            }
    
            return colorList;
        }
    

提交回复
热议问题