【发布时间】:2009-09-29 17:31:28
【问题描述】:
如何使用 C# 创建渐变图像(具有给定的高度和宽度、起始颜色和结束颜色)?有人有简单的样本sn-p吗?谢谢!
【问题讨论】:
如何使用 C# 创建渐变图像(具有给定的高度和宽度、起始颜色和结束颜色)?有人有简单的样本sn-p吗?谢谢!
【问题讨论】:
您可以使用LinearGradientBrush 执行此操作。例如
// using System.Drawing;
// using System.Drawing.Imaging;
// using System.Drawing.Drawing2D;
public static void OutputGradientImage()
{
using (Bitmap bitmap = new Bitmap(100, 100)) // 100x100 pixels
using (Graphics graphics = Graphics.FromImage(bitmap))
using (LinearGradientBrush brush = new LinearGradientBrush(
new Rectangle(0, 0, 100, 100),
Color.Blue,
Color.Red,
LinearGradientMode.Vertical))
{
brush.SetSigmaBellShape(0.5f);
graphics.FillRectangle(brush, new Rectangle(0, 0, 100, 100));
bitmap.Save("gradientImage.jpg", ImageFormat.Jpeg);
}
}
【讨论】:
LinearGradientBrush 是你的朋友:
Bitmap bmp = new Bitmap(Width, Height);
Graphics g = Graphics.FromImage(bmp);
LinearGradientBrush lgb = new LinearGradientBrush(new Point(0, 0), new Point(Width, Height), Color.Black, Color.Red);
g.FillRectangle(lgb, 0, 0, Width, Height);
bmp.Save("FileName");
lgb.Dispose();
g.Dispose();
bmp.Dispose();
【讨论】:
protected override void OnPaintBackground(PaintEventArgs e)
{
using (Brush b = new LinearGradientBrush(ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.ForwardDiagonal))
e.Graphics.FillRectangle(b, ClientRectangle);
}
这就是你可以做到的最简单的事情。
【讨论】: