Winforms 如何使用GDI(+;)在内存中渲染渐变

Winforms 如何使用GDI(+;)在内存中渲染渐变,winforms,graphics,gdi+,gdi,Winforms,Graphics,Gdi+,Gdi,我试图在内存中渲染一个尺寸为1x16的图像对象。此图像用作平铺背景。渐变本身应该以非线性方式具有3种颜色 像素1到6:渐变颜色1到颜色2 像素7到16:渐变色3到颜色4您可以使用该功能 对于自定义解决方案,请查看这是否有帮助。我刚刚找到了自己的方法。我期待着这样的回答: Bitmap bmp = new Bitmap(1, 16); Graphics g = Graphics.FromImage(bmp); System.Drawing.Draw

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

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

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

您可以使用该功能


对于自定义解决方案,请查看这是否有帮助。

我刚刚找到了自己的方法。我期待着这样的回答:

        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个渐变。

谢谢提示。我更多的是寻找一个管理的GDI(更好的)C#解决方案。