2009-09-29 23 views
5

¿Cómo puedo crear una imagen de degradado (con una altura dada & ancho, color de inicio y color final) con C#? ¿Alguien tiene un simple fragmento de muestra? ¡Gracias!C# Crear imagen de degradado

Respuesta

10

Puede hacerlo usando LinearGradientBrush. Por ejemplo

// 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 es tu amigo aquí:

 

    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(); 
 
0
protected override void OnPaintBackground(PaintEventArgs e) 
{ 
    using (Brush b = new LinearGradientBrush(ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.ForwardDiagonal)) 
     e.Graphics.FillRectangle(b, ClientRectangle); 
} 

eso es tan simple como usted puede hacerlo.

Cuestiones relacionadas