1

我正在尝试在内存中渲染一个尺寸为 1x16 的 Image 对象。此图像用作平铺背景。渐变本身应该以非线性方式具有 3 种颜色。

像素 1 到 6:渐变颜色 1 到颜色 2

像素 7 到 16:渐变颜色 3 到颜色 4

4

2 回答 2

2

我刚刚发现自己该怎么做。我期待这样的答案:

        Bitmap bmp = new Bitmap(1, 16);
        Graphics g = Graphics.FromImage(bmp);

        System.Drawing.Drawing2D.LinearGradientBrush b1 =
            new System.Drawing.Drawing2D.LinearGradientBrush(
                new Rectangle(0, 0, 1, 6),
                Color1,
                Color2,
                System.Drawing.Drawing2D.LinearGradientMode.Vertical);

        System.Drawing.Drawing2D.LinearGradientBrush b2 =
            new System.Drawing.Drawing2D.LinearGradientBrush(
                new Rectangle(0, 7, 1, 16),
                Color3,
                Color4,
                System.Drawing.Drawing2D.LinearGradientMode.Vertical);

        g.FillRectangle(b1, new Rectangle(0, 0, 1, 6));
        g.FillRectangle(b2, new Rectangle(0, 7, 1, 16));
        g.Dispose();

位图 bmp 现在具有 2 渐变。

于 2009-06-01T12:33:27.320 回答
1

您可以使用GradientFill函数。

对于自定义解决方案,请查看本文是否可以提供帮助。

于 2009-05-31T13:24:20.763 回答