Color.FromArgb Method (Int32, Color)

 

Creates a Color structure from the specified Color structure, but with the new specified alpha value. Although this method allows a 32-bit value to be passed for the alpha value, the value is limited to 8 bits.

Namespace:   System.Drawing
Assembly:  System.Drawing (in System.Drawing.dll)

public static Color FromArgb(
	int alpha,
	Color baseColor
)

Parameters

alpha
Type: System.Int32

The alpha value for the new Color. Valid values are 0 through 255.

baseColor
Type: System.Drawing.Color

The Color from which to create the new Color.

Return Value

Type: System.Drawing.Color

The Color that this method creates.

Exception Condition
ArgumentException

alpha is less than 0 or greater than 255.

To create an opaque color, set alpha to 255. To create a semitransparent color, set alpha to any value from 1 through 254.

The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. The code performs the following actions:

  1. Creates Color structures from the three color component values (red, green, blue). Three Color structures are created, one for each primary color.

  2. Iterates through a range of alpha values, changing the alpha value of a color.

  3. During each iteration, sets the color of a brush to the modified color and paints a rectangle to show the color.

  4. Repeats steps 2 and 3 for each primary color.

The alpha value is never fully opaque and the rectangles overlap so you get color-combination effects.

public void FromArgb3(PaintEventArgs e)
{
    Graphics     g = e.Graphics;

    // Opaque colors (alpha value defaults to 255 -- max value).
    Color red = Color.FromArgb(255, 0, 0);
    Color green = Color.FromArgb(0, 255, 0);
    Color blue = Color.FromArgb(0, 0, 255);

    // Solid brush initialized to red.
    SolidBrush  myBrush = new SolidBrush(red);
    int alpha;

    // x coordinate of first red rectangle
    int x = 50;         

    // y coordinate of first red rectangle
    int y = 50;         

    // Fill rectangles with red, varying the alpha value from 25 to 250.
    for (alpha = 25; alpha <= 250; alpha += 25)
    {
        myBrush.Color = Color.FromArgb(alpha, red);
        g.FillRectangle(myBrush, x, y, 50, 100);
        g.FillRectangle(myBrush, x, y + 250, 50, 50);
        x += 50;
    }
    // x coordinate of first green rectangle
    x = 50;             

    // y coordinate of first green rectangle
    y += 50;            

    // Fill rectangles with green, varying the alpha value from 25 to 250.
    for (alpha = 25; alpha <= 250; alpha += 25)
    {
        myBrush.Color = Color.FromArgb(alpha, green);
        g.FillRectangle(myBrush, x, y, 50, 150);
        x += 50;
    }
    // x coordinate of first blue rectangle.
    x = 50; 

     // y coordinate of first blue rectangle
    y += 100;           


    // Fill rectangles with blue, varying the alpha value from 25 to 250.
    for (alpha = 25; alpha <= 250; alpha += 25)
    {
        myBrush.Color = Color.FromArgb(alpha, blue);
        g.FillRectangle(myBrush, x, y, 50, 150);
        x += 50;
    }
}

.NET Framework
Available since 1.1
Return to top
Show: