Drawing Transparent Graphics Objects

Sometimes we need to draw objects on top of imagesand these objects may need to be transparent. As we discussed earlier, color in GDI+ has four components: alpha, red, green, and blue. The value of each component varies from 0 to 255. The alpha component represents the transparency in GDI+ color. Zero represents a fully transparent color; 255, a fully opaque color.

An application must create transparent pens and brushes to draw transparent graphics objects. An application can use the Color.FromArgb method to specify the ratio of all four components in a color. For example, the following code snippet creates a fully opaque green pen and brush.


 
Pen solidPen =
 new Pen(Color.FromArgb(255, 0, 255, 0), 10);
SolidBrush solidColorBrush =
 new SolidBrush(Color.FromArgb(255, 0, 255, 0));

 

The following code snippet creates semitransparent colors and brushes.


 
Pen transPen =
 new Pen(Color.FromArgb(128, 0, 255, 0), 10);
SolidBrush semiTransBrush =
 new SolidBrush(Color.FromArgb(60, 0, 255, 0));

 

Listing 7.24 views an image and draws lines and a rectangle with different transparencies.

Listing 7.24 Drawing transparent graphics objects

private void Form1_Paint(object sender,
 System.Windows.Forms.PaintEventArgs e)
{
 Graphics g = e.Graphics;
 // Create an image from a file
 Image curImage = Image.FromFile("myphoto.jpg");
 // Draw image
 g.DrawImage(curImage, 0, 0,
 curImage.Width, curImage.Height);
 // Create pens with different opacity
 Pen opqPen =
 new Pen(Color.FromArgb(255, 0, 255, 0), 10);
 Pen transPen =
 new Pen(Color.FromArgb(128, 0, 255, 0), 10);
 Pen totTransPen =
 new Pen(Color.FromArgb(40, 0, 255, 0), 10);
 // Draw Graphics object using transparent pens
 g.DrawLine(opqPen, 10, 10, 200, 10);
 g.DrawLine(transPen, 10, 30, 200, 30);
 g.DrawLine(totTransPen, 10, 50, 200, 50);
 SolidBrush semiTransBrush =
 new SolidBrush(Color.FromArgb(60, 0, 255, 0));
 g.FillRectangle(semiTransBrush, 20, 100, 200, 100);
}

Figure 7.39 shows the output from Listing 7.24.

Figure 7.39. Drawing transparent graphics objects

graphics/07fig39.jpg

GDI+: The Next-Generation Graphics Interface

Your First GDI+ Application

The Graphics Class

Working with Brushes and Pens

Colors, Fonts, and Text

Rectangles and Regions

Working with Images

Advanced Imaging

Advanced 2D Graphics

Transformation

Printing

Developing GDI+ Web Applications

GDI+ Best Practices and Performance Techniques

GDI Interoperability

Miscellaneous GDI+ Examples

Appendix A. Exception Handling in .NET



GDI+ Programming with C#
GDI+ Programming with C#
ISBN: 073561265X
EAN: N/A
Year: 2003
Pages: 145

Flylib.com © 2008-2020.
If you may any questions please contact us: flylib@qtcs.net