【问题标题】:C# Create Gradient ImageC# 创建渐变图像
【发布时间】:2009-09-29 17:31:28
【问题描述】:

如何使用 C# 创建渐变图像(具有给定的高度和宽度、起始颜色和结束颜色)?有人有简单的样本sn-p吗?谢谢!

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    您可以使用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);
        }
    }
    

    【讨论】:

      【解决方案2】:

      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();

      【讨论】:

        【解决方案3】:
        protected override void OnPaintBackground(PaintEventArgs e)
        {
            using (Brush b = new LinearGradientBrush(ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.ForwardDiagonal))
                e.Graphics.FillRectangle(b, ClientRectangle);
        }
        

        这就是你可以做到的最简单的事情。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-05
          • 1970-01-01
          • 2019-05-14
          • 2018-10-30
          • 1970-01-01
          相关资源
          最近更新 更多