【发布时间】:2010-10-30 05:50:17
【问题描述】:
我正在尝试在内存中呈现尺寸为 1x16 的 Image 对象。此图像用作平铺背景。渐变本身应该以非线性方式具有 3 种颜色。
像素 1 到 6:渐变颜色 1 到颜色 2
像素 7 到 16:渐变颜色 3 到颜色 4
【问题讨论】:
标签: winforms graphics gdi+ gdi
我正在尝试在内存中呈现尺寸为 1x16 的 Image 对象。此图像用作平铺背景。渐变本身应该以非线性方式具有 3 种颜色。
像素 1 到 6:渐变颜色 1 到颜色 2
像素 7 到 16:渐变颜色 3 到颜色 4
【问题讨论】:
标签: winforms graphics gdi+ gdi
我刚刚发现自己该怎么做。我期待这样的答案:
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 个渐变。
【讨论】:
您可以使用GradientFill 函数。
对于自定义解决方案,请查看article 是否可以提供帮助。
【讨论】: