Я хочу генерировать градиент на основе настроек CSS.Пример: у меня есть градиент css, такой как -moz-linear-gradient(top,#ECFFEF 19%,#788300 83%)
или в версии -webkit-gradient
.
Я хочу получить объект System.Drawing.Image, представляющий то же изображение, что и браузер.Размер изображения 100x100.
Другими словами: мне нужна функция с параметрами - color1 (#ECFFEF), color2 (# 788300), fromPercent (19%), toPercent (83), градиентный режим (вертикальный или горизонтальный) иразмер (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;