Генерация градиента на основе настроек градиента CSS в C#

Я хочу генерировать градиент на основе настроек CSS. Пример: у меня есть градиент CSS, как это -moz-linear-gradient(top,#ECFFEF 19%,#788300 83%) или в -webkit-gradient версия.

Я хочу получить объект System.Drawing.Image, представляющий то же изображение, что и браузер. Размер изображения 100х100.

Другими словами: мне нужна функция с параметрами - color1(#ECFFEF), color2(#788300), fromPercent(19%), toPercent(83), GradientMode(вертикальный или горизонтальный) и размером (100x100). Эта функция возвращает объект System.Drawing.Image.

Я написал что-то:

using (Bitmap bitmap = new Bitmap(100, 100))
            using (Graphics graphics = Graphics.FromImage(bitmap))
            using (LinearGradientBrush brush = new LinearGradientBrush(
                new Rectangle(0, 0, 100, 100),
                color1,
                color2,
                gradientMode))
            {
                brush.SetSigmaBellShape(0);// I am stuck at this place
                graphics.FillRectangle(brush, new Rectangle(0, 0, 100, 100));
            }

Я застрял в brush.SetSigmaBellShape(0); что такое правильные настройки формы градиента? Или я ищу не в том месте?

РЕДАКТИРОВАТЬ: Я нашел правильные настройки. Я заменил линию brush.SetSigmaBellShape(0); со следующими строками кода:

Blend blend = new Blend();
                blend.Factors = new float[] {0.0f, 0.0f, 0.5f, 1.0f, 1.0f};
                blend.Positions = new float[]
                                      {
                                          0.0f, (float) fromPercent/100, (float) (fromPercent+ toPercent)/200,
                                          (float) toPercent/100, 1.0f
                                      };

                brush.Blend = blend;

1 ответ

Решение

Я полагаю, вы должны посмотреть здесь.

Другие вопросы по тегам