基于c#中的css渐变设置生成渐变

时间:2011-08-02 13:38:45

标签: c# gradient system.drawing.color

我想基于css设置生成渐变。 示例:我有css渐变,如-moz-linear-gradient(top,#ECFFEF 19%,#788300 83%)-webkit-gradient版本。

我想获得System.Drawing.Image对象,它表示与显示浏览器相同的图像。图像大小100x100。

换句话说:我需要带参数的函数 - color1(#ECFFEF),color2(#788300),fromPercent(19%),toPercent(83),gradientMode(Vertical或Horizo​​ntal)和size(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;

0 个答案:

没有答案