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
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